目次


エンタープライズデータウェアハウスと Apache Spark 統合の価値

IBM Db2 Warehouse(旧:IBM dashDB Local)In-Database Analytics for Apache Spark

Comments

はじめに

現在のデータ分析プラットフォームの多くはリレーショナルデータ(構造化データ)を管理するデータウェアハウス(DWH)が主流であり、多くのユーザーは BI、分析アプリケーションから DWH に蓄積されたデータから新たな知見や洞察を得てビジネス上の意思決定を行っています。しかしここ数年の流れより、ビジネス事業部門のユーザーが、R や Python、Spark といったオープンソースのアナリティクス、ビックデータ技術を分析プロジェクトで活用するケースが増えてきています。ビジネスの現場ではより他社との差別化を図る上でデータ分析の重要性が増していることから、データ分析環境自体もより迅速に提供される必要性がでてきています。ただこれらの要求に対し、IT 部門が適切に応えることができないと、ユーザーが個別の分析環境を持つことで、データのサイロ化が急増し、データに対する制御が失われていく危険性があることも事実です。

この課題に対し IBM はソフトウェア定義環境(SDE)としてプライベートクラウド用に最適化されたコンテナベースの DWH ソフトウェアアプライアンスである IBM Db2 Warehouse を発表しました。 IBM Db2 Warehouse はエンタープライズデータウェアハウスと Apache Spark スタックを統合し、既に確立されたデータウェアハウス運用を継続しながら、Apache Spark ベースの新しい分析ワークロードを単一基盤で実現できる次世代のデータ分析プラットフォームです。

エンタープライズデータウェアハウスと Spark 統合の価値

この密接に統合された Apache Spark 環境では、IBM Db2 Warehouse システムのリソース全体を活用することができます。これは MPP スケールアウト構成でも当てはまり、独自のデータパーティションを持つ各 IBM Db2 Warehouse ノードには、各ノード内での Apache Spark エグゼキュータ・プロセスと連携して実行されます。 IBM Db2 Warehouse クラスタの既存データパーティションは、Spark のデータフレームとして暗黙的に処理されます。したがって、このデータに対して Spark を活用した分散並列処理を行うことができるのです。

図 1. IBM Db2 Warehouse と Spark 統合アーキテクチャ

Spark の実行エンジンをデータベースエンジンを統合環境として構成することで、データへのアクセスのレイテンシを最小限に抑え、最適化された共有メモリ(プロセス間通信)を利用したデータを転送を実現できます。このアーキテクチャの利点は、Spark の標準的な機械学習アルゴリズムを IBM Db2 Warehouse のデータに適用すると明らかになります。リモートの Spark クラスタセットアップと同じ場所に配置されたセットアップを比較すると、これらのアルゴリズムは速度が大幅に向上することがわかっております。これには、IBM Db2 Warehouse の各データベース・パーティションに 1 つのパラレル・タスクでデータを読み取るリモート・データアクセスの最適化技術も含まれています。つまりこの統合アーキテクチャーにより、パフォーマンスの優位性が導かれます。これはより大きなデータセットを Spark アプリケーションと DB 間で処理するようなケースで大きなメリットになります。

加えて Spark 対応のデータウェアハウスエンジンは、それ単体では不可能だった多くのことがすぐに実行できるようになります。下記に主要な特長を説明します。

インタラクティブなデータの探索と可視化

IBM は IBM Db2 Warehouse コンテナに加えて、ノートブックに入力された対話型コードを実行するために IBM Db2 Warehouse コンテナを Spark カーネルとして使用するように構成された Jupyter ノートブック・コンテナを提供しています。このコンテナを使用することで、データサイエンティストは、Jupyter ノートブックのインタラクティブなユーザーエクスペリエンスと Python または Scala で利用可能な豊富なビジュアライゼーションライブラリを活用して、IBM Db2 Warehouse 内のデータをすぐに探索、分析することができます。ユーザーは、Spark のスケーラブルなフレームワークを利用することで、データを素早く分析することができます。

 

 

Spark アプリケーションを 1 クリックでデプロイ

データサイエンティストがノートブックを使用して分析フローを作成、検証した後、それをどのように運用していくか?という問題が浮上します。 IBM Db2 Warehouse の Jupyter ノートブックコンテナは、オープンノートブックのコードセルを IBM Db2 Warehouse コンテナ内でコンパイルおよびデプロイを行い、Spark アプリケーションへ変換する作業をワンクリックで実現できます。デプロイメントが正常終了すると、デプロイされたアプリケーションを呼び出すことが可能です。また開発環境を使用して Spark アプリケーションを作成し、提供される spark-submit.sh ツールまたは Db2 Warehouse REST API を通じて IBM Db2 Warehouse にデプロイすることも可能となっています。ノートブックを ZIP 形式の開発プロジェクトにエクスポートすることも、さらなるカスタム開発のためのクイックスタートとしても活用可能です。

 

 

Spark アプリケーションのホスティング環境としての IBM Db2 Warehouse

Spark アプリケーションを IBM Db2 Warehouse にデプロイすると、コマンドラインやスクリプト、REST API、SQL(DB プロシージャ)の 3 つの方法で呼び出すことができます。 spark-submit.sh コマンドラインツールを使用すると、コマンドラインまたはスクリプトをリモート環境から実行することができます。このツールは、Spark の標準的な spark-submit tool を基に作成されており、IBM Db2 Warehouse とその統合された Spark 環境とのあらゆる種類の通信をサポートします。Spark-submit.sh は呼び出すデプロイ済みのクラスとメソッド名を指定するだけで実行でき、 IBM Db2 Warehouse サーバー名と認証情報は環境変数を経由して情報が提供されます。

REST API を使用してアプリケーションを呼び出すことは、IBM Db2 Warehouse とやりとりの作業を簡略化し、ソリューションスタックのどこからでも Spark ロジックを呼び出すことがでるようになります。加えて IBM Db2 Warehouse は DB ストアドプロシージャを使用して Spark アプリケーションを呼び出すことができます。これにより既存の SQL ベースのアプリケーションを Spark ロジックと連携させることで簡単に拡張できます。

 

 

DWH から実行可能な Spark ベースの機械学習アルゴリズム

IBM Db2 Warehouse に統合された Spark を活用して SQL ベースのアプリケーションを強化するもう 1 つの方法は、Spark ロジックを記述することなく間接的に Spark を使用することです。IBM Db2 Warehouse コンテナ内には Spark ベースの機械学習アルゴリズムを呼び出すことが可能なストアドプロシージャが用意されています。それらを使用して、入力テーブルのデータで機械学習モデルをトレーニングし、モデルを IBM Db2 Warehouse 内に保持、他のポイントでモデルを呼び出して別のテーブルのデータを使用してバッチ的に予測分析を行うことが可能です。また、他のユーザーにアクセス権を付与するなど、ストアド・モデルを管理する一連のルーチンを使用することができます。また追加機能として、ユーザーは、IBM Db2 Warehouse の Spark ワークロードを詳細にモニタリングできます。 IBM Db2 Warehouse Web コンソールの Monitor タブの Workloads 画面で、アクティブな Spark クラスタがいつ実行されているか確認することができます。

 

 

柔軟かつスケーラブルな ETL 処理フレームワーク

Spark は分析アルゴリズムを提供しているだけでなく、高度なデータ変換を行う優れたフレームワークも提供します。このフレームワークは、データの形態や特徴の抽出、離散化が必要な場合に適しています。統合化された Spark 環境を使用し、SQL で表現することが困難である、または実現が不可能であるデータの抽出、変換作業を行うことができ、結果を表に書き出すことが可能です。このタイプの作業をデータウェアハウス内で実行することを、抽出、変換、ロードの英頭文字で (ETL)と呼ばれます。IBM Db2 Warehouse 環境では統合された Spark アプリケーションで実行するため、変換中にデータウェアハウスからデータを完全に離れる必要はありません。

もちろん、Spark を使用してソースデータを読み込むこともできます。IBM Db2 Warehouse 内のテーブルからではなく、オブジェクトストレージ内の Parquet データ等、他のリモートソースおよびデータフォーマットからも読み込むこともできます。変換後、書き込みは Db2 Warehouse 内のリレーショナル表に対して行われます。Db2 Warehouse の並列抽出、変換、ロード(ETL)メカニズムとして Spark を効果的に使用できます。

統合された IoT データのランディングゾーン

既にご理解頂いている通り、Spark を使用して非構造化フォーマットのデータから必要なデータと特徴を抽出、加工しデータウェアハウスへ直接書き出すことができます。もう一つのケースとして、まだデータベースに格納されていないストリームデータを処理するために Spark を活用できます。 Spark のストリーミング API を使用すると、アプリケーションをいくつかのメッセージハブに直接登録し、関連するメッセージを永続的に処理して IBM Db2 Warehouse 上のテーブルにデータを格納するアプリケーションを、IBM Db2 Warehouse に配置、実行できます。したがって、IBM Db2 Warehouse を簡単に IoT データのランディングゾーンにすることもできるのです。

 

 

まとめ

以上より IBM Db2 Warehouse と Spark の統合による価値は、次のように要約できます。

  • データウェアハウスと緊密に統合された Spark 環境を使用することで、分析者はより高度な分析作業をより効率に行うことができるようになります。
  • Spark アプリケーションとデータウェアハウスの緊密な連携により、様々な分析サービスから Spark アプリケーションを活用でき、分析サービスの運用品質が向上します。
  • インタラクティブな探索や機械学習、解析フローの検証、Spark アプリケーションの作成、操作、展開により、エンド・ツ・ーエンドの分析ソリューションの実現が容易になります。また、エンタープライズ・データウェアハウスシステムで Spark アプリケーションをホスティングし、様々な API を活用して Spark アプリケーションを他のアプリケーションと統合することもできます。
  • ユーザーは SQL ベースのアプリケーションを介して Spark 機械学習アルゴリズムをストアドプロシージャから呼び出すことができます。
  • 統合された Spark を使用して SQL では表現できない複雑なデータ変換や機能抽出を実行することができます。
  • 配備された Spark アプリケーションを通じストリーミングデータを直接テーブルに格納できます。

参考までに IBM Db2 Warehouse 環境に統合された Spark を使用したデータ分析に関する価値をご紹介する動画とそのデモをこちらで紹介していますので是非ご覧ください。また IBM Db2 Warehouse の無償トライアル版をダウンロードすると、Spark 統合機能が実際に動作しているかどうかを確認できます。ぜひこちらからお試しください。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management, ビジネス・アナリティクス
ArticleID=1043400
ArticleTitle=エンタープライズデータウェアハウスと Apache Spark 統合の価値
publish-date=06142017