Pig の生き方
Pig になるとはどういうことか?
Pig プロジェクトでは、システムを今後どのように育てていくかを開発者が理解しやすいように、いくつかの基本原則を定めています。このページでは、これらの原則について簡単に説明します。
Pig は何でも食べる
メタデータの有無にかかわらず、Pig はデータを操作できます。
リレーショナルデータ、入れ子になったデータ、非構造化データであっても、Pig はデータを操作できます。
Pig はどこでも生きていける
Pig は、並列データ処理用言語となることを目指しています。Pig は、ある特定の並列フレームワークに縛られることはありません。Pig は最初に Hadoop 上で実装されましたが、Hadoop 上の実装だけで済ませるつもりはありません。
Pig は家畜である
Pig は、ユーザーが制御・修正しやすいように設計されています。
Pig は可能な場所ならどこでもユーザーコードを取り込むことができるので、現在ではユーザー定義のフィールド変換関数、ユーザー定義の集計、ユーザー定義のグループ化関数、およびユーザー定義の条件判定がサポートされています。将来的には、上記のすべてを Java 以外の言語でサポートし、さらにストリーミング、ユーザー定義の型、ユーザー定義の分割もサポートするつもりです。
現在のところ Pig にはオプティマイザがないので、処理順序の並べ替えは行われません。将来この機能が追加された場合も、ユーザーは処理順序の並べ替えを無効にすることができるので、Pig はユーザーから指定された順序で指定された処理を言われたとおりに実行します。
Pig は空を飛ぶ
Pig はデータを高速に処理します。パフォーマンスの改善には今後も一貫して取り組み、Pig が飛べなくなるような重い機能は実装しません。


