Treasure DataのデータをTableau Serverに直接Publishする|Tableau Software Tips&Viz Advent Calendar 2014 #22 #tableau

2014.12.22

2014年アドベントカレンダー『Tableau Software Tips&Viz(全部俺) Advent Calendar 2014』22日目です。Tableau Softwareに関する機能紹介、便利ネタや可視化ネタ等を毎日1本ずつ計25本、『1人(全部俺)』で担当してお届けしています。

昨日21日目の投稿ネタは『Tableau成果物の共有方法について』でした。

本日22日目は『Treasure DataのデータをTableau Serverに直接Publishする』です。Treasure Data側から直接Tableau Serverに対してコマンドを実行する事でTableau Server配下にデータソースを投入し、Tableau ServerやTableau Desktopからデータソースとして利用出来るようになる、という算段となっております。

目次

利用する情報/Treasure Data

Treasure Data側の利用データについては、公式ドキュメントに倣い、下記のエントリでも利用していたアクセスログ情報のサンプルを用いる事にします。データベース名及びテーブル情報についても同じものを用いるため、環境をお持ちでない方、今回初めてTreasure Dataを利用されるという方は下記エントリを参考に環境を構築しておいてください。

利用する環境/Tableau Server

データ生成元、入力値となるTreasure Dataに対して、データ格納先、出力先となるのは今回はTableau Serverとなります。Tableau ServerはTableau Desktopで作成したビューやダッシュボード等の成果物を共有する為の環境という位置付けのプロダクトとなります。プロダクトの詳細については以下エントリ等を御参照ください。

初期環境構築については、以下エントリを御参照ください。Tableau Desktop/Server共に2週間のトライアル版利用が可能となっていますので、もし宜しければこの機会にインストールしてみて動作確認などしてみて頂けますと幸いです。

今回の動作を検証するにあたり、Windows Server 2012環境をAWS上に構築、サイト:『既定』配下にプロジェクト『treasuredata』を作成しました。Treasure Dataの要素をこのプロジェクト配下に繋げて見たいと思います。

tab-adv-td-and-ts-01

Treasure Data動作検証&各種設定

実行するクエリは先のTD&Redshift連携エントリでも利用した以下のクエリを再度利用します。(環境をお持ちでない場合はエントリを御参照ください。当エントリはこのエントリを実行した状況から続ける想定で進めます。)

SELECT
    TD_TIME_FORMAT(time, 'yyyy-MM-dd HH:mm:ss', 'JST') AS access_time,
    host AS access_host,
    path AS access_path,
    method,
    referer,
    code AS status_code,
    agent AS access_agent,
    user AS access_user,
    size AS access_size
FROM \
    www_access;

Treasure Dataの管理コンソールからログインし、新規クエリの作成で上記クエリを実行した結果に遷移。[Add]ボタンを押下します。

tab-adv-td-and-ts-02

エクスポート先に『Tableau Server』を選択します。

tab-adv-td-and-ts-03

エクスポート先の情報をそれぞれ設定します。設定出来たら[Use]を押下。

  • ホスト名はIPアドレスに割り当てたドメイン名
  • ユーザー名パスワードはTabelau Serverにログインする時のもの
  • データソースは任意の名前
  • プロジェクト名は上述の手順で作成した内容を
  • Modeは『append』をひとまず設定

tab-adv-td-and-ts-04

内容を確認し、[Run]を押下。

tab-adv-td-and-ts-06

実行ログを確認してみます。処理自体は問題無く出来ている様です!(日本語メッセージの内容が気にはなりますが)

started at 2014-12-19T18:59:14Z
14/12/19 18:59:20 WARN conf.Configuration: org.apache.hadoop.hive.conf.LoopingByteArrayInputStream@6e67f937:an attempt to override final parameter: mapreduce.input.fileinputformat.split.minsize;  Ignoring.
Hive history file=/mnt/hive/tmp/5315/hive_job_log_ad54a8b6-20ba-4203-bf32-5ed9e736ff28_1421515231.txt
**
** WARNING: time index filtering is not set!
** This query could be very slow as a result.
** Please see http://docs.treasure-data.com/articles/performance-tuning#leveraging-time-based-partitioning
**
finished at 2014-12-19T18:59:41Z
14/12/19 18:59:45 INFO result.ResultWorker: Data size: 109,704 bytes (compressed)
14/12/19 18:59:45 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
14/12/19 18:59:45 INFO compress.CodecPool: Got brand-new decompressor [.gz]
14/12/19 18:59:46 INFO result.TableauResult: Converting query results into a TDE file...
14/12/19 18:59:47 INFO result.TableauResult: Uploading TDE file to Tableau Server 288138 bytes 5000 records with append mode...
14/12/19 18:59:57 INFO tableau.UploadCommand: > ===== Creating new session
14/12/19 18:59:57 INFO tableau.UploadCommand: > =====     Server:   http://xxxxxxxxxx/
14/12/19 18:59:57 INFO tableau.UploadCommand: > =====     Username: admin
14/12/19 18:59:57 INFO tableau.UploadCommand: > ===== Connecting to server...
14/12/19 18:59:57 INFO tableau.UploadCommand: > ===== Logging in...
14/12/19 18:59:58 INFO tableau.UploadCommand: > ===== Login Succeeded.
14/12/19 18:59:58 INFO tableau.UploadCommand: > ===== Publishing /mnt/hadoop/tmp/5315/tableau-result-18727479-.tde to server.  This could take several minutes...
14/12/19 18:59:58 WARN tableau.UploadCommand: >   *** 申し訳ありませんが、探しているプロジェクトが存在しないか、そのプロジェクトを表示できるパーミッションがありません。
14/12/19 18:59:58 WARN tableau.UploadCommand: > データ ソース 'treasuredata-ds' が存在しません。
14/12/19 18:59:58 WARN tableau.UploadCommand: > Operation Canceled.
14/12/19 18:59:58 WARN tableau.UploadCommand: Uploading failed, retrying 1/12 after 1 seconds. Message: UNEXPECTED
14/12/19 19:00:12 INFO tableau.UploadCommand: > ===== Continuing previous session
14/12/19 19:00:12 INFO tableau.UploadCommand: > =====     Server:   http://xxxxxxxxxx/
14/12/19 19:00:12 INFO tableau.UploadCommand: > =====     Username: admin
14/12/19 19:00:12 INFO tableau.UploadCommand: > ===== Publishing /mnt/hadoop/tmp/5315/tableau-result-18727479-.tde to server.  This could take several minutes...
14/12/19 19:00:13 INFO tableau.UploadCommand: > ===== File successfully published to the Tableau Server, at the following location:
14/12/19 19:00:13 INFO tableau.UploadCommand: > ===== http://xxxxxxxxxx/datasources/treasuredata-ds

ビュー作成/Tableau Desktop

Tableau Serverにログインして中身を確認してみましょう。ちゃんとデータソースが登録されています。

tab-adv-td-and-ts-07

リンクを押下して中身を確認してみました。

tab-adv-td-and-ts-08

実際にTableau Desktopから接続を試みてみます。Tableau Desktopを起動し、接続先に[Tableau Server]を指定。

tab-adv-td-and-ts-09

まずはサーバ名を入力し、[接続]を押下。

tab-adv-td-and-ts-10

次いでユーザー名とパスワードの入力が求められるので値を設定し、[サインイン]を押下。

tab-adv-td-and-ts-11

Tableau Serverに登録されたデータソースがここでも確認出来てます。選択して先に進みます。

tab-adv-td-and-ts-12

あとは他のデータソース同様の操作でビューやダッシュボードを作成する事が出来ます。

tab-adv-td-and-ts-13

まとめ

以上、Treasure DataとTableau Serverのデータソース連携方法についての御紹介でした。接続の際にはSSL証明書を用いる事も可能となっていますので(自己証明書を用いて検証する等と言った操作も可能です)、用途条件に応じてお試しになってみてはいかがでしょうか。

では、明日もお楽しみに!

参考情報: