In-Database分析に利用できるGreenplum DBのビルトイン関数
近年データウェアハウス/BIの領域で注目される技術のひとつに、In-Database分析があります。In-Database分析とは、データベース内部に高度な分析に必要なロジックを組み込むことにより、データ処理をデータベース上で実行可能にする技術です。従来であればデータベースから別の分析アプリケーション上にデータをロードして、分析後にデータベースに書き戻す必要があった処理が、In-Database分析ではこのデータ移動のプロセスがなくなるため、全体の分析処理時間を短縮することが可能です。
また、Greenplum DBのようなMPPアーキテクチャのIn-Database分析基盤では、処理ノードの追加によって分析ロジックの処理性能も向上していくため、独立した分析アプリケーション用のサーバで処理を行う場合と比較して大幅な性能向上が見込まれます。
さらに、分析対象のデータをデータベース外部へ移動する必要がなくなるため、セキュリティ面でのメリットもあります。
ではIn-Database分析で用いられる分析機能にはどのようなものがあるでしょうか。一般によく利用されるものとしては、次のようなものが挙げられます。
- 数値計算・特殊関数
- 単変量解析・多変量解析
- 時系列分析
- OLAP
- 機械学習
- 統計計算
- テキスト解析
- 地理空間計算
Greenplum DBもIn-database分析のための基本的な関数を備えており、行列定義、行列計算、線形回帰、Naive Bayes分類、地理空間計算などの関数をSQLから利用することが可能です。
In-Database分析のためのオープンソースライブラリMADlib
MADlibは、In-Database分析のためのオープンソースライブラリです。2012年2月にバージョン0.3がリリースされました。下記のサイトがMADlibのオープンソースプロジェクトのサイトです。
MADlibの「MAD」の綴りは、「Magnetic(磁石のように引きつける)」「Agile(迅速な)」「Deep(深い)」の頭文字からとられています。MADlibはもともとGreenplum DBの開発エンジニアやデータサイエンティスト、カリフォルニア大学バークレー校の研究者が中心となり、「スケーラブルなIn-Database分析の新しいアプローチとはどうあるべきか」という議論から生まれたプロジェクトです。ストレージの容量あたりのコストが劇的に下がり、数多くのデータソースから桁違いの情報が集まるようになった現在、データ分析のやり方も従来のデータウェアハウス/BIアプリケーションで見られる、あらかじめ定められたデータソースから得られたデータに対する定型的な分析から、「多くのデータソースからデータ形式を気にせずデータを引きつけ(Magnetic)、迅速かつ動的にデータを展開・処理し(Agile)、サンプリングされていない生のデータに対して高度な分析アルゴリズムを適用することにより深い分析を行う(Deep)」というアプローチが重要になるという提言がなされました。
この取り組みの成果は2009年に行われた大規模データベースに関する国際学会VLDBで論文として発表され、上記のような新しい分析のテクニックは「MAD Skills」として紹介されました。同時にこの考えに基づいた分析ライブラリをオープンソースとして開発するMADlibのプロジェクトも進められて行きました。
MADlibはPostgreSQLおよびGreenplum DBに対応しており、高度な分析に必要な機能を利用することができます。表1にMADlibがサポートする主な分析機能を示します。
その他の分析機能の利用 —— SAS, R, MapReduce
Greenplum DBにはこれ以外にも、データベースに格納したデータを対象にMapReduceフレームワークを利用して分析する機能や、統計解析ソフトSASとの連携、PL/Rを利用したオープンソース統計解析ライブラリRの呼び出しなどの機能も備えています。
MapReduceはHadoopプラットフォームで使われる分析フレームワークとして有名ですが、Greenplum DBではセグメントサーバで動作する並列実行エンジンがHDFS上のファイルの代わりにデータベース上のテーブルやセグメントサーバ上のファイルを入力として、並列にデータを処理するしくみを持っています。MapやReduceの処理ロジックはPerl、Python、Cで記述し、YAML形式で記述された処理の定義をgpmapreduceコマンドに渡すことで処理が実行されます。
SASは1976年にノースカロライナ州立大学で開発がスタートした統計解析ツールで、現在は米SAS Instituteが世界的に展開しており、商用製品としてはデファクト・スタンダードの地位を占めています。統計解析だけではなく、予測分析、意思決定支援、マーケティング分析、経営管理、管理会計、サプライチェーン最適化、リスク管理といった様々なソリューションが幅広い業界向けに用意されています。
SASの様々な分析機能をIn-Database技術を利用して高速化するソリューションとして、SAS In-Databaseという製品があります。従来からTeradataのデータウェアハウス・アプライアンスで利用可能でしたが、2011年後半にGreenplum DBでも同様に利用可能になりました。また、インメモリ処理の活用でさらに処理性能を高めたSAS High-Performance Analyticsという分析基盤製品もリリースされる予定です。大量のデータに対して、データベース内部で直接SASの高度な分析機能を適用できるため、事前のサンプリングを不要にし、分析にかかる時間を大幅に短縮することでより正確な予測モデルの開発・管理が可能となります。
統計解析ソフトウェアの分野でSASが商用製品のスタンダードであるとすると、Rはオープンソース製品のデファクト・スタンダードです。Greenplum DBはRの各種機能をSQLからプロシージャとして呼び出すインターフェースPL/Rを利用して、Rの備える様々な機能を利用してデータベース上のデータを分析することができます。
以上、連載8回に渡りGrennplum DBの様々な機能や技術背景、目指すところを解説してきました。「ビッグデータ」活用をめぐり、各企業の取り組みはまだまだ始まったばかりで、今後も大きな流れとなって新しい技術の登場や画期的な活用事例が増えてくることに疑いの余地はありません。Greenplum DBも次世代の統合分析基盤を支える製品としてさらなる進化への道を進み始めています。ぜひ今後ともGreenplum DBに注目していただければと思います。
その他の分析機能の利用 —— SAS, R, MapReduce
Greenplum DBにはこれ以外にも、データベースに格納したデータを対象にMapReduceフレームワークを利用して分析する機能や、統計解析ソフトSASとの連携、PL/Rを利用したオープンソース統計解析ライブラリRの呼び出しなどの機能も備えています。
MapReduceはHadoopプラットフォームで使われる分析フレームワークとして有名ですが、Greenplum DBではセグメントサーバで動作する並列実行エンジンがHDFS上のファイルの代わりにデータベース上のテーブルやセグメントサーバ上のファイルを入力として、並列にデータを処理するしくみを持っています。MapやReduceの処理ロジックはPerl、Python、Cで記述し、YAML形式で記述された処理の定義をgpmapreduceコマンドに渡すことで処理が実行されます。
SASは1976年にノースカロライナ州立大学で開発がスタートした統計解析ツールで、現在は米SAS Instituteが世界的に展開しており、商用製品としてはデファクト・スタンダードの地位を占めています。統計解析だけではなく、予測分析、意思決定支援、マーケティング分析、経営管理、管理会計、サプライチェーン最適化、リスク管理といった様々なソリューションが幅広い業界向けに用意されています。
SASの様々な分析機能をIn-Database技術を利用して高速化するソリューションとして、SAS In-Databaseという製品があります。従来からTeradataのデータウェアハウス・アプライアンスで利用可能でしたが、2011年後半にGreenplum DBでも同様に利用可能になりました。また、インメモリ処理の活用でさらに処理性能を高めたSAS High-Performance Analyticsという分析基盤製品もリリースされる予定です。大量のデータに対して、データベース内部で直接SASの高度な分析機能を適用できるため、事前のサンプリングを不要にし、分析にかかる時間を大幅に短縮することでより正確な予測モデルの開発・管理が可能となります。
統計解析ソフトウェアの分野でSASが商用製品のスタンダードであるとすると、Rはオープンソース製品のデファクト・スタンダードです。Greenplum DBはRの各種機能をSQLからプロシージャとして呼び出すインターフェースPL/Rを利用して、Rの備える様々な機能を利用してデータベース上のデータを分析することができます。
以上、連載8回に渡りGrennplum DBの様々な機能や技術背景、目指すところを解説してきました。「ビッグデータ」活用をめぐり、各企業の取り組みはまだまだ始まったばかりで、今後も大きな流れとなって新しい技術の登場や画期的な活用事例が増えてくることに疑いの余地はありません。Greenplum DBも次世代の統合分析基盤を支える製品としてさらなる進化への道を進み始めています。ぜひ今後ともGreenplum DBに注目していただければと思います。