etc...
=> ダイレクトメモリ JavaHeap外に確保される
データが載り切らない場合には
一部のデータをディスク上に一時的に退避
CREATE VIEW view_name AS (SELECT ...);
SELECT ... FROM view_name WHERE xxx ORDER BY yyy;
実体はSQLが書かれたファイル
CREATE TABLE table_name AS (SELECT ...);
SELECT ... FROM table_name WHERE xxx ORDER BY yyy;
実体はファイル
デフォルトで, parquetという
列指向データフォーマットで保存
https://github.com/yohei224/drill-http-json
HTTP URL をデータソースとして jsonデータを取得
FileSystem
全取得後、Drillがfilter, sort, group
=> 今回のはこちら。解析結果をDrillに渡すだけ
JDBC / mongo etc
pushdownと呼ばれる最適化
Drillが受取ったクエリを変換し外部DBへ投げる
=> 省メモリ, 高速化
Storage / Format Plugin
/* jdbc */
SELECT * FROM mysql.{db_name}.{table_name};
/* local */
SELECT 1 FROM (VALUES(1));
/*
{ "user": { "name": "yohei.yamana", "mail": "xxxxx@xxxx.com" } }
*/
SELECT t.`user`.name AS name, t.`user`.mail AS mail
FROM dfs.`/tmp/users.json` t
WHERE T.`user`.name = 'yamana'