Pigとは?:Hadoop上で稼動するスクリプト環境|データ分析用語を解説

AUTHOR :   ギックス

本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)

Hadoopプラットフォーム上でのデータ操作をJavaより簡単にプログラムしたい

本日は「Pig」という言葉を解説します。PigはHadoopによる高速なビッグデータ処理をより簡単に利用する為の「Hadoop上で動作するソフトウェア」です。
以前の記事で「Hadoop(ハドゥープ)」とは、

  • 巨大データの取り扱いを目的とした分散処理のフレームワークである
  • 分散処理によってビッグデータを高速に処理することができる
  • Hadoopの利用者は自作したデータ処理のプログラムや他者が開発したツールプログラムをHadoop内に組み込んでビッグデータ処理を行う

と説明させていただきました。Hadoopの登場や広まりによってビッグデータ分析処理は劇的に効率化され、多くのデータ分析業務に携わるみなさんがその恩恵を受けています。
しかしここで、Hadoopを利用するユーザはさらに贅沢な要求をHadoopに対して抱き始めます。それは、

  1. Hadoopそのものはフレームワークにすぎないので、実際にデータを操作する場合は、Hadoop上で具体的なデータ操作を行う「Hadoopアプリケーション」を開発しなければならない。これが面倒くさい!
  2. しかもこの「Hadoopアプリケーション」はJavaで開発しなければならないがJavaは難しい。Shellスクリプトのようなコマンド感覚でHadoop内のデータ処理をプログラミングできないのか?
  3. ならば、「Hadoopのデータ操作に最適なスクリプト」を誰かが共通的に作ってオープンソースで公開してくれたらみんな幸せなのに!

というモノでした。
そしてこれらを満たすために生まれたのがPigなのです。Pigは初めYahooによって開発されました。現在ではApacheプロジェクトの一部として活動が行われています。Pigは「Hadoopアプリケーション」としてHadoop上で稼動し、利用者に「Pigによるデータ操作プログラミング環境」を提供します。またこの際のスクリプト言語には独自に開発されたPig言語が用いられます。Hadoop上でPigが稼動することにより、利用者はプログラマブルにでデータの操作を行う事ができます。このPig言語にはSQLに近い文法を持つコマンドも用意されており、利用者はSQLを使用する感覚でHadoop上のデータを操作することも可能になっています。もちろんその際にHadoopの分散処理機構が持つ高速なデータ処理機能が利用できることはいうまでもありません。

関連記事:

データ分析用語:索引

SERVICE