| パラダイム | 機能的 |
|---|---|
| デザイン: | ヴーク・エルツェゴヴァツ ( Google ) |
| 初登場 | 2008年10月9日 |
| 安定版リリース | 0.5.1 / 2010年7月12日 |
| 実装言語 | ジャワ |
| OS | クロスプラットフォーム |
| ライセンス | Apache ライセンス2.0 |
| Webサイト | code.google.com/p/jaql/m |
| 主な実装 | |
| IBM ビッグインサイト | |
Jaql (発音は「ジャッカル」) は、ビッグ データに対するJSONクエリ処理に最もよく使用される関数型データ処理およびクエリ言語です。
これはGoogle [1]のオープンソースプロジェクトとして始まりましたが、最新のリリースは2010年7月12日でした。IBM [2]はこれをHadoopソフトウェアパッケージBigInsightsの主要なデータ処理言語として採用しました。
JSON用に開発されていますが、CSV、TSV、XMLなどのさまざまなデータ ソースもサポートしています。
PIG LatinやHive QLなどの他のビッグデータクエリ言語との比較[3]は、これらのテクノロジーのパフォーマンスと使いやすさの側面を示しています。
Jaqlは[4] 遅延評価をサポートしているため、式は必要なときにのみ実現されます。
構文
Jaqlの基本的なコンセプトは
ソース->演算子(パラメータ) ->シンク;
ここで、シンクは下流のオペレータのソースになることができます。したがって、通常、Jaql プログラムは、データ処理グラフを表現する次の構造を持つ必要があります。
ソース->演算子1 (パラメーター) ->演算子2 (パラメーター) ->演算子2 (パラメーター) ->演算子3 (パラメーター) ->演算子4 (パラメーター) ->シンク;
最も一般的には、読みやすさの理由から、Jaql プログラムは矢印の後で改行されます。これは、Twitter Scalding でも一般的な慣用句です。
ソース->演算子1 (パラメーター) ->演算子2 (パラメーター) ->演算子2 (パラメーター) ->演算子3 (パラメーター) ->演算子4 (パラメーター) ->シンク;
コアオペレーター
出典: [5]
拡大する
EXPAND 式を使用して、ネストされた配列をフラット化します。この式は、ネストされた配列の配列 [ [ T ] ] を入力として受け取り、各ネストされた配列の要素を最上位の出力配列に昇格させることにより、出力配列 [ T ] を生成します。
フィルター
FILTER 演算子を使用して、指定された入力配列から要素をフィルターします。この演算子は、T 型の要素の配列を入力として受け取り、述語が true と評価される要素を保持したまま同じ型の配列を出力します。これは、SQL WHERE句に相当する Jaql です。例:
data = [ { name : "Jon Doe" 、所得: 20000 、マネージャー: false }, { name : "Vince Wayne" 、所得: 32500 、マネージャー: false }, { name : "Jane Dean" 、所得: 72000 、マネージャー: true }, { name : "Alex Smith" 、所得: 25000 、マネージャー: false } ];
データ->フィルター$ . manager ;
[
{ "収入" : 72000 , "マネージャー" : true , "名前" : "ジェーン・ディーン" } ]
データ->フィルター$ . income < 30000 ;
[
{ "収入" : 20000 、"マネージャー" : false 、"名前" : "ジョン・ドゥ" }, { "収入" : 25000 、"マネージャー" : false 、"名前" : "アレックス・スミス" } ]
グループ
GROUP 式を使用して、グループ化キーで 1 つ以上の入力配列をグループ化し、グループごとに集計関数を適用します。
参加する
JOIN 演算子を使用して、2 つ以上の入力配列間の結合を表現します。この演算子は、自然結合、左外部結合、右外部結合、外部結合など、複数の種類の結合をサポートします。
選別
SORT 演算子を使用して、入力を 1 つ以上のフィールドで並べ替えます。
トップ
TOP 式は、入力の最初の k 要素を選択します。比較演算子が指定されている場合、出力は、入力をソートしてから最初のk要素を選択することと意味的に同等になります。
変身
TRANSFORM 演算子を使用して、投影を実現したり、出力のすべての項目に関数を適用したりします。
参照
参考文献
外部リンク
- JAQL言語の定義
- JAQL の紹介
- HIVEとPIGとの比較
- Jaql でのユーザー定義集計の適応処理
