SkyOnDemandを使ってTreasure Dataからのエクスポートが容易にできるようになりました。こちらのニュースに詳細が書かれています。今回はTreasure Dataのデータをエクスポートして、Salesforce Wave Analyticsにインポートしてみたいと思います。
ちなみに、Treasure Dataはデータのエクスポート先としてSalesforceのオブジェクトはサポートしていますが、Wave Analyticsには対応していません。なので、表題の件を実現するためには、プログラムを書くか、何らかのツールが必要となります。ツールとしてSkyOnDemandを利用すると簡単にこれが実現できます。
Treasure Data側について
Treasure Dataにはサンプルとしてsample_datasetsというデータセットが定義されており、その中にwww_accessというApacheログのテーブルが用意されています。今回はこのテーブルからデータを取り出してみたいとおもいます。
データを取り出すクエリサービスとしては、Hive、Pig、Prestoに対応していますが、無償版ではPrestoは使えないようです。今回はHiveを使います。
SkyOnDemand側について
SkyOnDemandからTreasure Dataにアクセスする機能は、オプションとなっていますので、サポートに連絡して有効化してもらいます。このオプションの利用料金はかかりません。
有効化してもらったら、まずはTreasure Dataに接続するための情報をグローバルリソースに設定します。
コントロールパネル > グローバルリソースの設定
から「新規グローバルリソース作成」を選択し、
データベース > JDBC接続設定を選択して次のように入力します。
設定項目 | 設定値 |
接続名 | ※任意(ここでは「Treasure Data Trial」と設定) |
ドライバクラス名 | com.treasuredata.jdbc.TreasureDataDriver |
URL | jdbc:td://api.treasuredata.com/sample_datasets;type=hive;useSSL=true |
ユーザ名 | ※Treasure Dataにログインする時のEMAIL |
パスワード | ※Treasure Dataにログインする時のパスワード |
[接続テスト]ボタンを押して、「接続に成功しました。」と表示されることを確認します。
次にスクリプトを作成します。流れとしては、
1. Treasure DataからHiveQLでデータ取り出し
2. CSVに一旦書き出し
3. WaveにCSVをアップロードしてデータセットとして登録
になります。
1.はツールパレットから、
データベース > JDBC > 検索系SQL実行
を選択し、「SQL文」のところにHiveQLを記述します。ここではiPhoneからのアクセスが多い順にページを抽出します。
Treasure Dataからのデータ取り出しはこのようにアイコン1つで実現できます。
2.はツールパレットから、
ファイル > CSV > CSVファイル書き込み
を選択し、「ファイル」のところに出力先のパスを設定します。
ここまでの処理は2つのアイコンでできるのでこんな感じです。
実行するとこんな感じのCSVが生成されます。
3.については、「Salesforce Wave Analytics につないでみた」と同じ手順になるのここでは割愛します。CSVをWaveにアップロードするスクリプトをこの手順で作成すればOKです。
SkyOnDemandを使って、Treasure DataやWave Analyticsを最大限活用しましょう!