Jaql

Jaql (JAQL) はJSONで格納されたビッグデータに対する問い合わせ処理を目的とした、関数型データ処理およびクエリ言語で…

Jaql
Jaql
パラダイム 関数型プログラミング
登場時期 2008年10月9日 (17年前) (2008-10-09)
設計者 Vuk Ercegovac (Google)
最新リリース 0.5.1/ 2010年7月12日 (16年前) (2010-07-12)
主な処理系 IBM BigInsights
プログラミング言語 Java
プラットフォーム Cross-platform
ライセンス Apache License 2.0
ウェブサイト code.google.com/p/jaql/m
テンプレートを表示

Jaql (JAQL) はJSONで格納されたビッグデータに対する問い合わせ処理を目的とした、関数型データ処理およびクエリ言語である。

Google[1]のオープンソースプロジェクトとして開始されたが、最新のリリースは2010年7月12日. IBM[2]BigInsightsというHadoopソフトウェア・パッケージの処置言語として、Jaqlを採用した。

また、JSON のみならず CSVTSVXMLなどにも対応する。

A[3] によると、PIG Latin and Hive QL などの他の問い合わせ言語に比べても、遜色のないパフォーマンスを打ち出している。

JAQLは[4] 遅延評価を採用している。

文法

JAQLの基本的な文法

source -> operator(parameter) -> sink ;

ここでsinkは演算元ともなり得る。 したがって、通常、JAQLプログラムは、データ処理グラフを表現して、次の構造をとる必要がある。

source -> operator1(parameter) -> operator2(parameter) -> operator2(parameter) -> operator3(parameter) -> operator4(parameter) -> sink ;

一般的には以下のように、矢印の後にJAQLプログラムを改行させて読みやすくする。これはTwitter SCALDINGの共通のイディオムでもあります。

source -> operator1(parameter)
-> operator2(parameter)
-> operator2(parameter)
-> operator3(parameter)
-> operator4(parameter)
-> sink ;

基本的な演算[5]

EXPAND

EXPAND式を使用して、ネストされた配列をフラット化します。 この式は、ネストされた配列Tの配列を入力として受け取り、各ネストされた配列の要素を最上位の出力配列に昇格させることによって出力配列[T]を生成します。

FILTER

FILTER演算子を使用して、指定された入力配列から要素を除外します。 この演算子は、型Tの要素の配列を入力として受け取り、同じ型の配列を出力し、述語が真と評価される要素を保持します。 これは、SQL言語のWHERE句に相当します。 例:

data = [
 {name: "Jon Doe", income: 20000, mgr: false},
 {name: "Vince Wayne", income: 32500, mgr: false},
 {name: "Jane Dean", income: 72000, mgr: true},
 {name: "Alex Smith", income: 25000, mgr: false}
];

data -> filter $.mgr;

[
  {
    "income": 72000,
    "mgr": true,
    "name": "Jane Dean"
  }
]

data -> filter $.income < 30000;

[
  {
    "income": 20000,
    "mgr": false,
    "name": "Jon Doe"
  },
  {
    "income": 25000,
    "mgr": false,
    "name": "Alex Smith"
  }
]

GROUP

GROUP式を使用して、1つまたは複数の入力配列をグループ化キーにグループ化し、グループごとに集計関数を適用します。

JOIN

JOIN演算子を使用して、2つ以上の入力配列間の結合を表現します。 この演算子は、naturalleft-outerright-outerouter joinsを含む複数のタイプの結合をサポートします。

SORT

入力を1つ以上のフィールドでソートするにはSORT演算子を使用します。

TOP

TOP式は、入力の最初の個の要素を選択します。 コンパレータが提供されている場合、出力は入力をソートし、最初の個の要素を選択することと意味的に同じです。

TRANSFORM

TRANSFORM演算子を使用すると、プロジェクションを実現したり、出力のすべての項目に関数を適用できます。

参照

外部リンク

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.