ApachePig-概要
Apache Pigとは何ですか?
Apache Pigは、MapReduceを抽象化したものです。これは、データフローとしてそれらを表すより大きなデータセットを分析するために使用されるツール/プラットフォームです。豚は一般的にHadoop; Apache Pigを使用して、Hadoopですべてのデータ操作操作を実行できます。
データ分析プログラムを作成するために、Pigは次のような高級言語を提供しています。 Pig Latin。この言語は、プログラマーがデータの読み取り、書き込み、および処理のための独自の関数を開発できるさまざまな演算子を提供します。
を使用してデータを分析するには Apache Pig、プログラマーはピッグラテン語を使用してスクリプトを書く必要があります。これらのスクリプトはすべて、内部でMapタスクとReduceタスクに変換されます。Apache Pigには、Pig Engine これは、Pig Latinスクリプトを入力として受け入れ、それらのスクリプトをMapReduceジョブに変換します。
なぜApachePigが必要なのですか?
Javaがあまり得意ではないプログラマーは、通常、特にMapReduceタスクを実行しているときに、Hadoopでの作業に苦労していました。Apache Pigは、そのようなすべてのプログラマーにとって恩恵です。
使用する Pig Latin、プログラマーは、Javaで複雑なコードを入力しなくても、MapReduceタスクを簡単に実行できます。
ApachePigは multi-query approach、それによってコードの長さを短縮します。たとえば、Javaで200行のコード(LoC)を入力する必要がある操作は、ApachePigでわずか10LoCと入力するだけで簡単に実行できます。最終的に、ApachePigは開発時間をほぼ16分の1に短縮します。
ピッグラテンは SQL-like language また、SQLに精通していれば、ApachePigを簡単に学ぶことができます。
Apache Pigは、結合、フィルター、順序付けなどのデータ操作をサポートするための多くの組み込み演算子を提供します。さらに、MapReduceにないタプル、バッグ、マップなどのネストされたデータ型も提供します。
豚の特徴
Apache Pigには、次の機能があります-
Rich set of operators −結合、ソート、ファイラーなどの操作を実行するための多くの演算子を提供します。
Ease of programming − Pig LatinはSQLに似ており、SQLが得意であれば、Pigスクリプトを簡単に作成できます。
Optimization opportunities − Apache Pigのタスクは実行を自動的に最適化するため、プログラマーは言語のセマンティクスのみに集中する必要があります。
Extensibility −既存の演算子を使用して、ユーザーはデータの読み取り、処理、および書き込みを行う独自の関数を開発できます。
UDF’s − Pigは、作成する機能を提供します User-defined Functions Javaなどの他のプログラミング言語で、それらを呼び出したり、Pigスクリプトに埋め込んだりします。
Handles all kinds of data− Apache Pigは、構造化および非構造化の両方のあらゆる種類のデータを分析します。結果をHDFSに保存します。
ApachePigとMapReduce
以下にリストされているのは、ApachePigとMapReduceの主な違いです。
アパッチピッグ | MapReduce |
---|---|
ApachePigはデータフロー言語です。 | MapReduceはデータ処理パラダイムです。 |
それは高級言語です。 | MapReduceは低レベルで、堅固です。 |
ApachePigで結合操作を実行するのは非常に簡単です。 | MapReduceでは、データセット間で結合操作を実行することは非常に困難です。 |
SQLの基本的な知識を持っている初心者プログラマーなら誰でも、ApachePigを簡単に使用できます。 | Javaへの露出は、MapReduceと連携する必要があります。 |
Apache Pigはマルチクエリアプローチを使用しているため、コードの長さが大幅に短縮されます。 | MapReduceは、同じタスクを実行するためにほぼ20倍の行数を必要とします。 |
コンパイルする必要はありません。実行時に、すべてのApachePigオペレーターは内部でMapReduceジョブに変換されます。 | MapReduceジョブには長いコンパイルプロセスがあります。 |
ApachePigとSQL
以下にリストされているのは、ApachePigとSQLの主な違いです。
豚 | SQL |
---|---|
ピッグラテンは procedural 言語。 | SQLは declarative 言語。 |
Apache Pigでは、 schemaオプションです。スキーマを設計せずにデータを保存できます(値は$ 01、$ 02などとして保存されます) | SQLではスキーマは必須です。 |
ApachePigのデータモデルは nested relational。 | SQLで使用されるデータモデル is flat relational。 |
Apache Pigは、 Query optimization。 | SQLではクエリを最適化する機会が増えます。 |
上記の違いに加えて、Apache Pig Latin −
- パイプラインでの分割を許可します。
- 開発者がパイプラインのどこにでもデータを保存できるようにします。
- 実行計画を宣言します。
- ETL(抽出、変換、およびロード)機能を実行するための演算子を提供します。
ApachePigとHive
Apache PigとHiveの両方を使用して、MapReduceジョブを作成します。また、場合によっては、HiveはApachePigと同様の方法でHDFS上で動作します。次の表に、ApachePigをHiveと区別するいくつかの重要なポイントを示します。
アパッチピッグ | ハイブ |
---|---|
Apache Pigは、 Pig Latin。もともとはで作成されましたYahoo。 | Hiveはと呼ばれる言語を使用します HiveQL。もともとはで作成されましたFacebook。 |
PigLatinはデータフロー言語です。 | HiveQLはクエリ処理言語です。 |
Pig Latinは手続き型言語であり、パイプラインパラダイムに適合します。 | HiveQLは宣言型言語です。 |
Apache Pigは、構造化データ、非構造化データ、および半構造化データを処理できます。 | Hiveは主に構造化データ用です。 |
ApachePigのアプリケーション
Apache Pigは通常、アドホック処理とラピッドプロトタイピングを含むタスクを実行するためにデータサイエンティストによって使用されます。ApachePigが使用されています-
- Webログなどの巨大なデータソースを処理するため。
- 検索プラットフォームのデータ処理を実行します。
- 時間に敏感なデータのロードを処理します。
Apache Pig –歴史
に 2006、Apache Pigは、特にすべてのデータセットでMapReduceジョブを作成および実行するために、Yahooの研究プロジェクトとして開発されました。に2007、ApachePigはApacheインキュベーターを介してオープンソース化されました。に2008、ApachePigの最初のリリースが出ました。に2010、ApachePigはApacheトップレベルプロジェクトとして卒業しました。