Pig LatinはPigプログラムの言語です。 PigラテンスクリプトをHadoopクラスタ内で実行できるMapReduceジョブに変換します。ブタのラテンに着くとき、開発チームは次の3つの重要な設計原則に従いました:
-
簡単に保つ 。 Pig Latinは、Java MapReduceとやりとりするための合理的なメソッドを提供します。言い換えれば、データフローと分析のためのHadoopクラスタ上の並列プログラムの作成を簡素化する抽象化です。複雑なタスクは、相互に関連する一連のデータ変換を必要とする場合があります。そのようなシリーズは、データフローシーケンスとしてエンコードされます。 <! Java MapReduceプログラムの代わりにPig Latinスクリプトとしてデータ変換とフローを書くことで、これらのプログラムの作成、理解、および保守がより簡単になります。これは、a)Javaでジョブを書く必要がないため、b )MapReduceに関して考える必要はありません。また、豊富なデータ型をサポートするカスタムコードを用意する必要はありません。
Pig Latinは、Hadoopクラスターを活用するための簡単な言語を提供するため、より多くの人々がHadoopのパワーをより簡単に活用し、より早く生産的になることが容易になります。<! - 2 - >
スマートにしましょう。
Pig Latin Programmerは、Pig Latinプログラムを一連のJava MapReduceジョブに変換する作業を行います。このトリックは、コンパイラがこれらのJava MapReduceジョブの実行を自動的に最適化できるようにして、ユーザがデータの最適化とアクセスの方法ではなくセマンティクスに集中できるようにすることです。 -
SQLのタイプについては、このディスカッションはよく知られているようです。 SQLは、RDBMSに格納された構造化データにアクセスするために使用する宣言的なクエリとして設定されます。 RDBMSエンジンは、最初にクエリをデータアクセスメソッドに変換し、次に統計を調べ、一連のデータアクセス手法を生成します。コストベースのオプティマイザは、最も効率的な実行方法を選択します。 <! - 3 - >
開発を制限しないでください。
開発者が特定のビジネス上の問題に対処するための機能を追加できるように、Pigを拡張可能にします。 -
従来のRDBMSデータウェアハウスでは、ETLデータ処理パターンを使用して、外部ソースからデータを抽出し、必要に応じて変換し、 運用データストア、データウェアハウス、またはデータベースの別のバリアントのいずれであっても、それを最終ターゲットに入れることができます。
しかし、大きなデータでは、移動しているデータの量を減らしたいので、処理自体がデータそのものになります。 Pigデータフローの言語は、古いETLアプローチをパスし、ELTを使用します。 E さまざまなソースからデータを取得します。 l oadそれをHDFSに挿入し、さらに分析のためにデータを準備するためにそれを必要に応じて変換する。