Jaqlのソースを表示
←
Jaql
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''Jaql''' (JAQL) はJSONで格納されたビッグデータに対する問い合わせ処理を目的とした、関数型データ処理およびクエリ言語である。 Google<ref>[https://code.google.com/p/jaql/ Original Jaql project]</ref>のオープンソースプロジェクトとして開始されたが、最新のリリースは2010年7月12日. IBM<ref>[http://www.vldb.org/pvldb/vol4/p1272-beyer.pdf Initial Publication]</ref>は[http://www.ibm.com/software/data/infosphere/biginsights/ BigInsights]という[[Hadoop]]ソフトウェア・パッケージの処置言語として、Jaqlを採用した。 また、[[JSON]] のみならず [[Comma-separated values|CSV]]、[[Tab-separated values|TSV]]、[[XML]]などにも対応する。 A<ref>[https://link.springer.com/chapter/10.1007/978-3-642-24151-2_5 Comparing High Level MapReduce Query Languages, 9th International Symposium of Advanced Parallel Processing Technologies 2011, Shanghei, China]</ref> によると、[[Pig (programming tool)|PIG Latin]] and [[Apache Hive|Hive QL]] などの他の問い合わせ言語に比べても、遜色のないパフォーマンスを打ち出している。 JAQLは<ref>[http://www.havlena.net/en/tag/jaql/ JAQL in Hadoop, a brief introduction]</ref> [[遅延評価]]を採用している。 ==文法== JAQLの基本的な文法 <syntaxhighlight lang="javascript"> source -> operator(parameter) -> sink ; </syntaxhighlight> ここでsinkは演算元ともなり得る。 したがって、通常、JAQLプログラムは、[[非循環グラフ|データ処理グラフ]]を表現して、次の構造をとる必要がある。 <syntaxhighlight lang="javascript"> source -> operator1(parameter) -> operator2(parameter) -> operator2(parameter) -> operator3(parameter) -> operator4(parameter) -> sink ; </syntaxhighlight> 一般的には以下のように、矢印の後にJAQLプログラムを改行させて読みやすくする。これはTwitter [https://github.com/twitter/scalding SCALDING]の共通のイディオムでもあります。 <syntaxhighlight lang="javascript"> source -> operator1(parameter) -> operator2(parameter) -> operator2(parameter) -> operator3(parameter) -> operator4(parameter) -> sink ; </syntaxhighlight> ===基本的な演算<ref>[http://pic.dhe.ibm.com/infocenter/bigins/v2r0/index.jsp?topic=%2Fcom.ibm.swg.im.infosphere.biginsights.jaql.doc%2Fdoc%2Fc0057482.html IBM BigInsights Documentation]</ref>=== ====<code>EXPAND</code>==== <code>EXPAND</code>式を使用して、ネストされた配列をフラット化します。 この式は、ネストされた配列[[T]]の配列を入力として受け取り、各ネストされた配列の要素を最上位の出力配列に昇格させることによって出力配列[T]を生成します。 ====<code>FILTER</code>==== <code>FILTER</code>演算子を使用して、指定された入力配列から要素を除外します。 この演算子は、型Tの要素の配列を入力として受け取り、同じ型の配列を出力し、述語が真と評価される要素を保持します。 これは、SQL言語の<code>WHERE</code>句に相当します。 例: <syntaxhighlight lang="javascript"> 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" } ] </syntaxhighlight> ====<code>GROUP</code>==== <code>GROUP</code>式を使用して、1つまたは複数の入力配列をグループ化キーにグループ化し、グループごとに集計関数を適用します。 ====<code>JOIN</code>==== <code>JOIN</code>演算子を使用して、2つ以上の入力配列間の結合を表現します。 この演算子は、<code>natural</code>、<code>left-outer</code>、<code>right-outer</code>、<code>outer joins</code>を含む複数のタイプの結合をサポートします。 ====<code>SORT</code>==== 入力を1つ以上のフィールドでソートするには<code>SORT</code>演算子を使用します。 ====<code>TOP</code>==== <code>TOP</code>式は、入力の最初の<math>k</math>個の要素を選択します。 コンパレータが提供されている場合、出力は入力をソートし、最初の<math>k</math>個の要素を選択することと意味的に同じです。 ====<code>TRANSFORM</code>==== <code>TRANSFORM</code>演算子を使用すると、プロジェクションを実現したり、出力のすべての項目に関数を適用できます。 ==参照== {{Reflist|2}} ==外部リンク== *[http://searchdatamanagement.techtarget.com/definition/JAQL-json-query-language Definition of the JAQL language] *[http://www.havlena.net/en/programming/jaql-in-hadoop-a-brief-introduction/ JAQL Introduction] *[http://www.hadoopsphere.com/2012/07/pig-hive-or-jaql-take-your-pick.html Comparison against HIVE and PIG] *[http://sites.computer.org/debull/A11dec/adaptivemr2.pdf Adaptive Processing of User-Defined Aggregates in Jaql] [[Category:問い合わせ言語]] [[Category:JSON]]
このページで使用されているテンプレート:
テンプレート:Reflist
(
ソースを閲覧
)
Jaql
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報