2010年12月17日、Hadoop上のデータを効率良く扱えるスクリプト言語「Pig」のバージョン0.8がリリースされました。Apache PigはHadoopと同じく米Yahoo!が中心となって開発しており、最初はHadoopのサブプロジェクトでしたが2010年9月にApacheトッププロジェクトに昇格しました。同様のアプローチを行うプロダクトとしてFacebookが開発しているHiveがあります。
今回のリリースでいろいろな機能が追加されました。まずPigにカスタムの関数追加が行えるUDFというユーザ定義関数の機能が、今回のバージョンからJavaでなくPythonで記述することが可能になりました。内部でJythonエンジンを呼び出しており、今までJavaで長いコードを書いてJAR(Java Archive)を作らなければならなかったのに対し、非常に記述量が減り気軽にUDFを作成できるようになりました。もちろんJRubyやGroovyなどJVMで動作するほかの言語もサポートさせることができますが、そのためのインタフェースは別途用意しないといけません。
次に挙げる新機能としてPigUnitがあります。名前から想像できるとおり、Pigスクリプトのユニットテストを実現するものです。通常のJUnitのユニットテストクラスを作成し、テストしたいPigスクリプトと入力を与え、assertOutputメソッドにて期待する出力が得られるかをテストします。テスト実行はローカル環境ではもちろん、Hadoopを使ったクラスタ環境でも可能です(リスト1)。
ほかにもHBaseストレージにアクセスできるインタフェースの追加や、カスタムのパーティショナを指定できるようになるなどの改善が行われています。米Yahoo!ではHadoopアプリケーションの約6割はPigスクリプトで書かれているそうです。Hadoopを使ったデータ解析を容易にしてくれるツールですので、使ったことのない人はぜひ試してみてください。
URL:http://pig.apache.org/