目次


さわってみよう dashDB

Comments

クラウド上のデータウェアハウスおよびアナリティクス・サービス “dashDB”

IBM は、2014 年 10 月末に開催されたInsight 2014で、クラウドでデータウェアハウジングと分析サービスを提供する「dashDB」を発表しました。この dashDB は、「DB2 BLU」によるインメモリー・アナリティクスと PureData for Analytics (Netezza) 由来のイン・データベース・アナリティクスを融合し、クラウドサービスとして利用することを可能にしたアナリティクス・サービスです。IBM が提供するクラウド・プラットフォームである Bluemix 上で提供されています。

10 月 26 日の発表直後からベータ版として提供されていましたが、12 月 18 日に正式にサービスを開始しました。原稿の執筆時点では、データベースに格納後のサイズで 10GB までストレージが利用できる Entry 構成が、月あたり 5250 円で提供されています。Entry 構成の場合は、共有のサーバー、共有のデータベースを複数のユーザーでシェアする環境として提供されます。そのほかに、生データで 1TB 程度までの分析に適した、64GB のメモリーを搭載する専用のインスタンスが利用できる Enterprise 構成が用意されています。こちらのプランに興味のある方は dashDB_Info@wwpdl.vnet.ibm.com までお問い合わせください。

プラン内容
Entry プラン10GB までのストレージ
使用インスタンスはシェアード
(共有のサーバー、共有のデータベースを複数のユーザーでシェア)
Enterprise プラン10GB 以上~1TB 程度までの生データ
使用インスタンスは 64GB メモリーを搭載する専用サーバーを提供

なお、Entry 構成のインスタンスは 1GB までのデータ量であれば無料で利用できるため、どんなことができるのかを気軽に試してみることができます。1GB といっても、dashDB に投入したデータは BLU アクセラレーションによる圧縮後に格納されるので、生データに換算すると数倍の規模の容量に匹敵し、数 GB 程度のデータ分析なら無料の範囲で十分におさまります。ぜひ、この記事を参考にして dashDB の世界を体験してみてください。

なぜ dashDB がリリースされたのか

Bluemix 上では既に、高速でスケーラブルな NoSQL データストアである Cloudant や、基幹業務処理のためのシンプルなリレーショナル・データベースである SQL DB が提供されています。しかし、これらのデータストアは基本的にはオンライン処理を想定しており、アナリティクスのための機能が豊富に用意されているわけではありませんでした。
dashDB はオンライン処理用のデータストアと連携して動作できる、アナリティクスに最適化されたデータストアとして新たに設計されました。

dashDB は、コアとなる分析エンジンに DB2 に搭載された BLU アクセラレーションを採用しています。BLU アクセラレーションは、IBM の基礎研究所の研究成果を元に開発された、まったく新しい SQL 処理エンジンです。DB2 for LUW の機能とメリットで紹介されているように、BLU アクセラレーションにはさまざまなイノベーションが詰め込まれています。そのなかでも特に重要なポイントは、分析処理につきものであったチューニングが不要になったことです。
BLU アクセラレーションを利用する上でユーザーに必要な作業はデータを投入することだけです。データ投入後はすぐに高速な分析ができます。これは、dashDB がクラウド上の分析サービスとして提供されるためにけして欠かせない要素です。逆の言い方をすると、チューニング不要な分析エンジンである BLU アクセラレーションが登場したからこそ、dashDB が実現できたとも言えます。そして、dashDB はサービスとして提供されており、初期投資やインフラの構築が不要で、迅速に利用を開始することが可能です。

2014 年 10 月、IBM は Insight2014 のカンファレンスを通じて、「インフラはオンプレミス、クラウド、そしてその両方のハイブリッドを提供し、お客様の優先順位に応じて選択できるようにする。また、同じテクノロジー、同じ環境を利用できるようにして、お客様のスキルやアプリケーションへの投資を無駄にしない」というメッセージを発信しました。今回発表された dashDB はそのメッセージに沿って、IBM が BLU アクセラレーションや PureData for Analytics (Netezza) によってエンタープライズ向けに提供してきたシンプルなデータウェアハウス機能をクラウド・プラットフォームにも展開するものです。

dashDB 環境を作成する

それでは、早速 dashDB の環境を作成してみましょう。まずは、dashDB のプラットフォームである Bluemix にログインします。ここでは Bluemix のアカウントを作成するところから解説しているので、すでに Bluemix のアカウントをお持ちの方は、ステップ 6 までスキップしてください。

ステップ 1. Bluemix Web サイトへアクセス

Bluemix の Web サイトには以下の URL からアクセスします。
https://console.ng.bluemix.net/

アクセスすると、”Sign up” のボタンが表示されるため、クリックしてアカウント作成のための画面に進みます。

ステップ 2. ユーザー情報の入力

ユーザー情報として有効なメールアドレスが必要になりますので、あらかじめ使用するメールアドレスを決めておきます。

ステップ 3. ユーザー情報の送信

必要なユーザー情報を埋めて Submit ボタンを押すと、ブラウザが以下の画面に遷移します。確認用のメールが入力したメールアドレスに送信されるため、メールボックスを確認します。

ステップ 4. アクティベーション用メールの確認

入力したメールアドレスに、” IBM Bluemix - Confirmation of your trial” という件名のメールが届いているはずです。メール中に埋め込まれている ”Click here to complete your registration” というリンクをクリックして、Bluemix へのログイン画面に進みます。

ステップ 5. Bluemix へのログイン画面

メールのリンクをクリックすると、以下のような IBM Identity のログイン画面が表示されます。ここで、ステップ 2 で設定したメールアドレスとパスワードを入力します。

ステップ 6. Bluemix コンソールへのログイン

Bluemix 環境へのログインが正常に完了すると、以下のような Bluemix コンソールが表示されます。この画面は、Bluemix のサービスを操作する場合の起点になります。それでは、早速 dashDB の環境を作成しましょう。ブラウザ画面の上部に表示されている ”CATALOG” をクリックします。

ステップ 7. カタログから dashDB メニューを見つける

カタログ画面に遷移すると、数多くのサービスがリストされます。dashDB を手早く見つけるために、ブラウザ画面左の ”Category” から ”Big Data” を、”Support” から ”IBM” をチェックします。絞り込まれたサービスの中に ”dashDB” が表示されるので、アイコンをクリックします。

ステップ 8. dashDB 環境の作成

この画面では dashDB のサービス概要が表示され、右側のパネルから dashDB の環境を作成することができます。構成の規模を表す ”Selected Plan” が ”Entry” であることを確認して ”CREATE” ボタンをクリックします。”App” は、現時点ではデフォルトの ”Leave unbound” で問題ありません。

ステップ 9. dashDB 環境の起動

“CREATE ”を押すと十数秒で起動画面に遷移するはずです。画面の遷移を確認したら、dashDB のコンソールを起動するために ”LAUNCH” ボタンをクリックします。

ステップ 10. dashDB コンソールの起動確認

“LAUNCH” をクリックすると、新たなブラウザ画面が立ち上がり、下記のような Welcome 画面が表示されます。
なにも準備がない状態からここまでの 10 ステップで、あなたが分析に利用できるアナリティクス環境を作成することができました。アカウントの登録さえスムーズに進めば、ここまでの 10 ステップを進めるのに、10 分もかからなかったのではないでしょうか。たったこれだけの時間で、自由に利用できる分析のための環境を作成することができます。

次は、作成した環境を活用するためにデータを投入するステップに進みます。

dashDB にデータをロードする

それでは、作成した dashDB 環境にデータをロードします。
ロードするデータには、サンプルデータとしてこの記事に添付している CSV ファイルを利用します。このサンプルデータは、東京の 2013 年の気温と降水量を 1 時間ごとに記録したものです。

なお、このサンプルデータは気象庁ホームページにてガイドされている「気象庁ホームページのコンテンツの利用について」にもとづいて、気象庁「過去の気象データ・ダウンロード」にて提供されているダウンロードデータを、データベースへ投入可能なように加工、編集して作成したものです。

それでは、まずサンプルデータをダウンロードして保管してから、dashDB コンソールよりデータロードのメニューを起動します。左上のアイコンをクリックして出てくるメニューから、”Manage” ⇒ “Load Data” とたどります。

今回は自分の PC 上にあるデータをロードするため、”Quick load” を利用します。定期的にデータをロードするためのスケジュール機能を利用する場合は、Amazon S3 や Swift オブジェクト・ストレージ上のファイルからロードすることも可能です。その場合は、”Schedule a load” メニューから設定します。

最初にロードするファイルを指定します。”Browse files” ボタンをクリックして、PC に保存したサンプルの CSV ファイルを指定します。

ファイル選択画面の下側にデータロードのオプションを指定する画面があります。今回のサンプルデータでは、一番下の ”Does the file have columns that contain dates or times (ファイルが日付もしくは時刻データを含むかどうか)” を Yes に変更します。それ以外のオプションはデフォルト値で問題ありません。

オプションの変更を追えたら、右下にある ”Load File” ボタンをクリックして次のステップに進みます。

“Load File” ボタンをクリックすると、選択したファイルの先頭が読み込まれてデータのプレビューが表示されます。ここではなにも変更しないので、そのまま ”Next” をクリックします。

次のステップとして、既存の表にロードする (Load into an existing table) か、新しい表を作成してロードするか (Create a new table and load) を選択します。ここでは、まだ表が存在しないので ”Create a new table and load” を選択して ”Next” をクリックします。

“Create a new table and load” を選択して次のステップに進むと、作成する表の名前や列名、列のデータ型を選択する画面に遷移します。ここで、表の名前を指定する ”Table name” からむには、必ず大文字で表の名前を入力するようにしてください。小文字で入力すると、表が明示的に小文字で作成されるため、SQL で照会するときの表名の記述方法が煩雑になります。ここでは、大文字で ”TOKYO” と指定します。

今回は、列名や列のデータ型については、デフォルト値のまま変更しません。この後のステップで表や列名を指定した SQL の例が登場するため、変更せずに進める必要があります。

最後に、右下の ”Finish” ボタンを押してデータのロードを実行します。

一万件足らずの小さなデータなので、ロードは数秒で終わるはずです。ロードが完了すると、下記のように投入された件数やエラーが出た件数など、ロード状況のサマリーが表示されます。サンプルデータを使う場合は、先頭の ”Number of rows committed” に 8736 件が表示されていれば正しくロードされています。

ロードの結果画面の下半分には、以下のようにロードしたデータの内容が表示されます。この結果を見るとわかるように、サンプルデータは東京の 2013 年の気温と降水量を 1 時間間隔で記録したものです。

ここまでで、サンプルの CSV ファイルを利用したデータの投入が完了しました。

ロードしたデータを参照する

次に、投入したデータを使って簡単な分析をしてみましょう。dashDB のコンソールには SQL を実行するための画面も用意されており、Web ブラウザさえあれば SQL を実行し、結果を CSV としてダウンロードすることができます。

ロードの時と同じように、左上のアイコンをクリックして出てくるメニューから、”Manage” ⇒ “Run Query” とたどります。

クリックしてしばらく待つと、以下のような SQL の投入画面が表示されます。左側の領域に SQL を入力して実行すると、右側に結果が表示されます。

それでは小手調べとして、先ほどロードしたデータの件数を調べてみましょう。
SQL の入力エリアに以下のように入力して、”Run Query” ボタンをクリックします。これは、TOKYO 表の件数をカウントする、ごくシンプルな SQL です。

select count(*) count from tokyo

うまくいくと、右側の ”Result” に 8736 という件数が表示されます。

それでは、次に気温の平均と最大および最小を求めてみましょう。以下のような SQL を実行すると、”気温” 列の取得結果を平均 (AVG)、最小 (MIN)、最大 (MAX) という 3 つの集約関数に入力した結果が表示されます。

select avg(気温) temp_avg, min(気温) temp_min, max(気温) temp_max from tokyo

最後に、もう少し分析らしいクエリを実行してみます。天候による店舗売り上げへの影響を調べるために、月ごとの「営業時間帯に ”ある程度” 強い雨が降った日数」を調査してみましょう。営業時間帯を朝 8 時から夜 8 時まで、「ある程度強い雨」を 1 時間あたりの降水量が 3mm 以上の場合とします。このような「任意の時間帯のある強さ以上の雨が降った日数」といった切り口での降雨日は既存の統計にはないので、基礎データを元に自分で分析する必要があります。

ここでは、分析のために以下のような SQL を使用します。

select month(降水日) as month,
       count(*) as 降水日数
from (select date(年月日時) as 降水日
      from tokyo 
      where hour(年月日時) between 8 and 20
      group by date(年月日時)
      having max(降水量) >=3)
group by month(降水日)
order by month(降水日)

この SQL では、8 時から 20 時までのレコードを対象にして日付でグループ化した後に、グループ内で最大の降水量が 3mm 以上の日だけをピックアップした日付のリストを副照会として作成し、月に変換して集計しています。WHERE 句と HAVING 句の違いなど SQL の技術的なポイントは、@IT の記事にわかりやすい解説があるので参考にしてください。

この SQL を実行すると以下の結果が得られます。2013 年の各月で、「ある程度強い雨」が降った日数には月ごとに顕著な違いがあることがわかります。

まとめ

本稿では Bluemix のアカウント作成から dashDB の環境の作成、サンプルデータの投入と分析を紹介しました。今回はシンプルな使い方で分析データベースとして利用できることを確認しましたが、今後の記事では Excel との連携や R での分析、他の Bluemix サービスとの連携など dashDB の活用方法をさらに紹介していく予定です。ご期待ください。


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


コメント

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management, Cloud computing
ArticleID=994773
ArticleTitle=さわってみよう dashDB
publish-date=01142015