Categories: 未分類

アパッチピッグ

Apache_Pig

Apache Pig は、ApacheHadoopで実行されるプログラムを作成するための高レベルのプラットフォームです。このプラットフォームのための言語が呼ばれる豚ラテン語。豚におけるそのHadoopのジョブを実行することができるのMapReduce、アパッチTEZ、またはApacheのスパーク。ブタラテンからプログラミング抽象化のJavaと同様の高いレベル、プログラミングのMapReduceを行う表記にMapReduceのイディオムをSQLためのリレーショナルデータベース管理システム。Pig Latinは、ユーザーがJava、Python、で記述できるユーザー定義関数(UDF)を使用して拡張できます。JavaScript、Ruby、またはGroovy を使用して、言語から直接呼び出します。
アパッチピッグ
開発者
Apache Software Foundation、Yahoo Research
初回リリース
2008年9月11日; 13年前 (2008-09-11)
安定リリース
0.17.0 / 2017年6月19日 ; 4年前  (2017-06-19)
リポジトリ
svn .apache .org / repos / asf / pig /
オペレーティング・システム
Microsoft Windows、OS X、Linux
タイプ
データ分析
ライセンス
Apacheライセンス2.0
Webサイト
pig .apache .org

コンテンツ
1 歴史
1.1 ネーミング
2 例
3 PigとSQL
4 も参照してください
5 参考文献
6 外部リンク

歴史
Apache Pigは元々、研究者が非常に大きなデータセットでMapReduceジョブを作成および実行するためのアドホックな方法を持つために2006年頃にYahooResearchで開発されました。2007年に、Apache SoftwareFoundationに移されました。
バージョン オリジナルのリリース日 最新バージョン リリース日
古いバージョン、メンテナンスされていません: 0.1 2008-09-11 0.1.1 2008-12-05
古いバージョン、メンテナンスされていません: 0.2 2009-04-08 0.2.0 2009-04-08
古いバージョン、メンテナンスされていません: 0.3 2009-06-25 0.3.0 2009-06-25
古いバージョン、メンテナンスされていません: 0.4 2009-08-29 0.4.0 2009-08-29
古いバージョン、メンテナンスされていません: 0.5 2009-09-29 0.5.0 2009-09-29
古いバージョン、メンテナンスされていません: 0.6 0.6 2010-03-01 0.6.0 2010-03-01
古いバージョン、メンテナンスされていません: 0.7 2010-05-13 0.7.0 2010-05-13
古いバージョン、メンテナンスされていません: 0.8 2010-12-17 0.8.1 2011-04-24
古いバージョン、メンテナンスされていません: 0.9 2011-07-29 0.9.2 2012-01-22
古いバージョン、メンテナンスされていません: 0.10 2012-01-22 0.10.1 2012-04-25
古いバージョン、メンテナンスされていません: 0.11 2013-02-21 0.11.1 2013-04-01
古いバージョン、メンテナンスされていません: 0.12 2013-10-14 0.12.1 2014-04-14
古いバージョン、メンテナンスされていません: 0.13 2014-07-04 0.13.0 2014-07-04
古いバージョン、メンテナンスされていません: 0.14 2014-11-20 0.14.0 2014-11-20
古いバージョン、メンテナンスされていません: 0.15 2015-06-06 0.15.0 2015-06-06
古いバージョン、メンテナンスされていません: 0.16 2016-06-08 0.16.0 2016-06-08
現在の安定バージョン: 0.17 2017-06-19 0.17.0 2017-06-19
伝説:
古いバージョン
古いバージョン、まだ維持されています
最新バージョン
最新のプレビューバージョン
将来のリリース

ネーミング
Pigプログラミング言語の命名に関しては、覚えやすく、綴りが簡単で、目新しさがあるため、名前は任意に選択され、付けられました。
プロジェクトに取り組んでいる研究者たちは当初、プロジェクトを単に「言語」と呼んでいたという話が最終的に彼らはそれを何かと呼ぶ必要がありました。ある研究者は頭のてっぺんからPigを提案しましたが、名前は固まりました。それは風変わりでありながら記憶に残り、綴りが簡単です。名前が恥ずかしがり屋またはばかげているように聞こえるとほのめかす人もいますが、言語のPig Latin、シェルのGrunt、CPANのような共有リポジトリのPiggyBankなどの面白い命名法を提供してくれました。— 
Alan Gates、Daniel Dai、「What Is Pig?」、Programming Pig、第2版


以下は、PigLatinの「WordCount」プログラムの例です。
input_lines = LOAD ‘/ tmp / my-copy-of-all-pages-on-internet’ AS ( line:chararray ); -各行から単語を抽出してピッグバッグに入れます -データ型、次にバッグをフラット化して各行に1つの単語を取得し ますwords = FOREACH input_lines GENERATE FLATTEN (TOKENIZE ( line )) AS word; -空白だけの単語をすべて 除外しますfiltered_words = FILTER words BY word MATCHES ‘\ w +’ ; -各単語のグループを作成 word_groups = GROUPのfiltered_words BYワード; -各グループのエントリをカウントします word_count = FOREACH word_groups GENERATE COUNT ( filtered_words ) AS count 、 group AS word; -レコードをカウント順に並べ替えます ordered_word_count = ORDER word_count BY count DESC ; STOREのordered_word_countのINTO 「/ tmpに/数のワード・オン・インターネット」;
上記のプログラムは、Hadoopクラスター内の複数のマシンに分散して、インターネット上のすべてのWebページなどのデータセット内の単語数をカウントできる並列実行可能タスクを生成します。

PigとSQL
SQLと比較して、Pig
ネストされたリレーショナルモデルがあり、
遅延評価を使用し、
用途は、抽出、変換、ロード(ETL)、
パイプライン中の任意の時点でデータを保存できます。
実行計画を宣言し、
パイプライン分割をサポートしているため、ワークフローは厳密にシーケンシャルなパイプラインではなく、DAGに沿って進めることができます。
一方、DBMSは、データがロードされるとMapReduceシステムよりも大幅に高速であると主張されていますが、データベースシステムではデータのロードにかなり長い時間がかかります。また、RDBMSは、列ストレージ、圧縮データの操作、効率的なランダムデータアクセスのためのインデックス、およびトランザクションレベルのフォールトトレランスをすぐにサポートできると主張されています。
Pig Latinは手続き型であり、パイプラインパラダイムに非常に自然に適合しますが、SQLは宣言型です。SQLでは、ユーザーは2つのテーブルのデータを結合する必要があることを指定できますが、使用する結合実装は指定できません(SQLでJOINの実装を指定できるため、「…多くのSQLアプリケーションでは、クエリ作成者は十分な知識を持っていない可能性が適切な結合アルゴリズムを指定するためのデータまたは十分な専門知識。」)。Pig Latinを使用すると、ユーザーは、スクリプトの実行に使用する1つまたは複数の実装をいくつかの方法で指定できます。事実上、Pig Latinプログラミングはクエリ実行プランの指定に似ており、プログラマーがデータ処理タスクのフローを明示的に制御するのを容易にします。
SQLは、単一の結果を生成するクエリを対象としています。SQLはツリーを自然に処理しますが、データ処理ストリームを分割し、各サブストリームに異なる演算子を適用するためのメカニズムは組み込まれPig Latinスクリプトは、パイプラインではなく、有向非巡回グラフ(DAG)を記述します。
パイプラインの任意の時点でユーザーコードを含めるPigLatinの機能は、パイプラインの開発に役立ちます。SQLを使用する場合は、最初にデータをデータベースにインポートしてから、クレンジングおよび変換プロセスを開始できます。

も参照してください Apache Hive Sawzall —Googleの同様のツール

参考文献
^ “Hadoop:ApachePig” 。
^ ” Pig onSparkの初期実装-ASFJIRA”。issues.apache.org 。
^ 「Pigユーザー定義関数」。
^ 「YahooBlog:Pig –Hadoopの効率的な高級言語への道」。
^ 「ApacheSoftwareFoundationでのPigintoIncubation」。
^ 「ApachePigリリース」。Apache 。
^ 「1。豚とは何ですか?-プログラミング豚、第2版」。www.oreilly.com 。2021-08-01を取得。
^ ゲイツ、アラン(2016)。プログラミングピッグ。ダニエルダイ(第2版)。カリフォルニア州セバストポル。ISBN  978-1-4919-3706-8。OCLC  964523786。
^ ゲイツ、アラン(2021-07-27)。「豚のマスコットの質問」。Pigユーザーメーリングリスト(メーリングリスト)。
^ 「ACMの通信:MapReduceと並列DBMS:味方か敵か?」(PDF)。2015年7月1日にオリジナル(PDF)からアーカイブされました。
^ 「YahooPig開発チーム:データ処理パイプラインを構築するためのPigLatinとSQLの比較」。
^ 「ACMSigMod08:Pig Latin:データ処理のためのそれほど外国語ではない言語」(PDF)。

外部リンク
公式サイト

admin

Share
Published by
admin

Recent Posts

アルトゥーリ・アールト

Artturi_Aalto 見…

2日 ago

アーサーシャレット

Arthur_Shallett…

2日 ago

Artyom Bogucharsky

Artyom_Boguchar…

2日 ago

アーツカタリスト

Arts_Catalyst A…

2日 ago

Asamardhuni Jivayatra

Asamardhuni_Jiv…

2日 ago