Greenplum DBとHadoop連携の例とメリット
Greenplum DBはバージョン4.1でHadoopとの連携機能をサポートしました。以下では、Greenplum DBをHadoopと連携して利用することのメリットと、具体的な連携方法について解説します。
上で述べたようにリレーショナルデータベースとHadoopでは、データの扱いに関するアプローチが大きく異なるため、対象の処理の性質に応じてうまく使い分けていくことが重要です。
まず1つの見方として、処理対象のデータの形式による使い分けが考えられます。データソースが既存システムのデータベースで、すでに構造化されているデータをデータウェアハウスに統合するというケースであれば、データ構造をそのまま利用できるGreenplum DBを利用することでデータ移行のコストやリスクを減らすことができます。Webアプリケーションのログや画像のような、通常のデータベースでは扱いにくい完全には構造化されていないデータであれば、Hadoopにファイルとして格納して柔軟なデータ加工や抽出処理を行うことが適するケースも多いでしょう。
別の見方としては、ユーザーの使い勝手の観点からの使い分けも考えられます。Hadoopは急速に普及を拡大している技術ではありますが、現時点では対応ツールや既存システムとの連携手段が十分に整っていない状況です。また、Hadoopアプリケーション開発は自由度が高く様々な処理を記述できる反面、データ構造の定義や性能の最適化など開発者にゆだねられる部分も多く難易度は高いです。一方、Greenplum DBの実行エンジンは、長年の稼働実績と進化の歴史を経た技術をベースとしており、データ構造やデータの内容をもとに分散配置が行われるためデータベースエンジンに性能の最適化を任せることができます。
このように、リレーショナルデータベースとHadoopにはそれぞれ得意とする領域がありますが、両者を連携させることでお互いを補完する柔軟性の高いシステムになります。
図2にGreenplum DBとHadoopを連携させた情報系システムの例を示します。ここではGreenplum DBを企業の情報システムの中心となるデータウェアハウスとして利用しています。業務系のデータは、企業内の各部門で管理している複数のデータベースからロードされてGreenplum DB内に格納されますが、これらのデータはすでに構造化されているため直接ロードすることが可能です。これに加え、自社のWebサービスを利用するユーザーの行動履歴を広告・マーケティングに使うことを目的としてWebログの活用を考える場合、ログは非定型のフォーマットで不要な情報も含まれているため、まずはHadoopに格納してデータを加工・抽出することとします。そしてHadoop上での処理を経て構造化されたデータをGreenplum DBに取り込むことで、業務系データと合わせた横断的な分析の準備が整います。分析に使用するBIツールやSQLベースのアプリケーションはGreenplum DBに接続して様々な分析やレポーティング処理を実行する一方で、一部のWebアプリケーションなどはHadoopプラットフォームにアクセスして柔軟性の高いデータ処理基盤を直接利用することもあるかもしれません。