Tableau Prep Conductor を使って見よう!

2019/02/13 17:32 Unknown 0 Comments

みなさん、こんにちは bashii です。

Tableau 2019.1 の発表にて、Prep Conductorが発表になりました。さて、”Prep Conductor"とはいったいどのようなものなのでしょうか?

(以下資料はβ版の画面を利用しています。実際の2019.1の画面とは異なる可能性があります。当資料はTableau社の正式なレビューを受けていません。最新技術情報の共有を目的とした一技術文書としての公開となります。)

◇ Prep Conductor とは何ですか?

Tableau はTableau Prepというデータ準備のツールを提供しており、PC上で複雑なデータ前処理をフロー化してバッチ実行するプロダクトを提供しています。前処理した結果は、CSV、Tableau の抽出、またはTableau Serverにデータソースとしてパブリッシュし、Tableau Desktopから可視化、分析をすることができます。可視化をする際に複雑な前準備を完了した状態の結果に対してアクセスすることで、大元のデータソースへのアクセス処理を回避し、分析処理のパフォーマンス向上が望めます。

一言でいえば、「Prep Conductor 」はいままでPC上で実行していたPrepフローをサーバー側で一括管理、スケジュール実行する機能です。

例えば…

① 当日の売り上げを夜間に締めて、マスターデータや他のデータと結合して前処理し、分析用のデータソースを作成、パブリッシュしておく (Prep Conductorでバッチのスケジュール実行)

② 翌日の朝、ユーザーに①で前処理しておいたデータソースを提供し自由に分析してもらう (Tableau Desktop または Tableau Server の Web-Edit を利用する)といった運用を考えるとイメージが付きやすいでしょうか。



なお、Prep ConductorはTableau Server / Tableau Online のコンポーネントとして含まれます。(別途ライセンスを有効化することで利用可能となります。)ですので、Prep Conductor用の製品を別途インストールする必要はありません。


◇ Prep Builderとは何ですか?

今までのTableau Prep(デスクトップ製品) は Prep Conductorが登場したことで、Prep Builderに名称変更になります。ちょっとややこしいですが、デスクトップ環境で稼働する製品をPrep Builder、サーバーで稼働する製品をPrep Conductorと呼び方を分けることになりました。

◇ Prep Conductorの利用ケース例

Prep Conductor の利用構成として以下のようなケースが考えられます。

① フローの作成
Prep BuilderからCloud上のデータソースを入力とした前準備を行い、出来上がった結果をTableau Serverに共有のデータソースとしてパブリッシュするフローを作成。

② フローのパブリッシュ
Prep Builder から Prep Conductor (実際はTableau ServerまたはTableau Online)にフロー自体をパブリッシュする。

③ フローのスケジュール実行
Prep Conductor上で定期的にフローがスケジュール実行され、パブリッシュされたデータソースの内容が更新される。

④ データの可視化分析
ユーザーは定期的に更新される、パブリッシュされたデータソースを利用して日々の分析を行う。



◇ それでは実際に触ってみましょう

今回は、クラウド上のデータソース(Google Cloud SQL)に売上データが毎日入ってくる想定で、一日の終わりにこれを集計し、分析用のデータソースを作るフローを定期実行し、Tableau Serverにパブリッシュして分析に利用するというシナリオを考えます。

① まずはPC上のPrep Builderでフローを作成し、Tableau Server にパブリッシュします。



パブリッシュが完了するとPrep Conductor(Tableau Server上)にパブリッシュされたフローがブラウザの画面に表示されます。



Scheduleから"Every night End of the Day" のスケジュールを作成します。(午前2:00に実行するためのスケジュールを作成します。)



FlowのCreate new task で先ほど作成したSchedule(実行タイミング)でTaskを作成します。



タスクがスケジュールされたことを確認します。



ブラウザから即時実行することもできますので、動くかどうか一回確認してみます。



成功しました。



Run History でフローが実行された履歴、所用時間を確認します。




後はこのフローが定期的に実行されるのを待ちます。

ここで、Tableau Desktopに戻ってデータの分析をしてみましょう。

Tableau DesktopからTableau Serverに接続し、フローによってパブリッシュされたデー
タソースに接続します。



次に可視化を行います。この時点では2019/04/02までのデータが入っています。



この間にもトランザクションデータベースにはその日のトランザクションが更新されています。営業時間が終わり、夜中のフローが流れ、実行履歴が追加されます。ここでは疑似的にGoogle Cloud SQLのMySQLに2019/04/03 のデータを追加してみます。



夜中にTableau Server上のバッチが実行されます。



次の日の朝に、データ分析ユーザーはTableau Desktop 上でデータソースの更新を行います。



すると、夜間に更新された前日の更新を含むデータソースが参照できるようになります。以下のエリアチャートで、2019/04/03 の日付のデータが入ってきていることが分かります。



また、Server Status -> Flow Performance History より、パブリッシュされたフロー全体を見て、いつ何時にどのフローが成功、失敗したか、また処理時間にどれだけ所要したかを一覧で見ることができます。



また、ユーザーごとにフローを実行できるか、編集できるかなど異なるパーミッション設定を行えることも特徴です。




◇ Prep Conductorを使うメリット

最後に、Prep Conductorを使うメリットについて、まとめます。

① フローをサーバー側でスケジュール実行
フロー実行のためにクライアントPCを常時起動しておく必要がない

② スケーラビリティ
サーバーまたはクラウドのリソースをフロー実行時に有効活用できる
(多くの場合、クライアントPCよりリソースが潤沢)

③ フローの一括管理
個々に作成していたフロー成果物を一括管理できる

④ セキュリティ
フローの実行、ビュー、ダウンロード可否などのをユーザーごとに設定できる

⑤ フロー実行のモニタリング
フローの実行の履歴、実行時間をモニターし集中管理できる


以上、Tableau Prep Conductor を使ってみた報告でした!! 参考になれば幸いです。

0 コメント:

Tableau Prepを利用したデータ前処理の有用性

2019/02/12 16:59 Takahiro 0 Comments

皆さまこんにちは。Tableau Prepがリリースされてもう少しで一年が経ちます。
そこでTableau Prepについてもテクニカルな情報を配信していこうと思います。

今回の記事では、Tableau Prepによるデータ前処理の有効性についてお話いたします。

Harvard Business Review 誌が行った調査によると、調査対象者はデータ前処理であるクリーニングとデータ形式の変換に作業時間の 80% を費やしており、分析に費やす時間は 20% に留まるとのことです。

ビジネスの目標を管理するには、データ品質が重要です。業務で直面するデータはクレンジングが必要であり、これに加えて実際に分析画面として利用され、メンテナンスされ続ける業務サイクルが必要となります。
この現実は必然的で避けられるものではありません。

データの大半がすぐに分析に利用できないのは、データが分析に適した形式になっていない為、あるいは多種多様なデータソースに分散しているためです。
そこで データ準備ツール Tableau Prep では、データ準備に特化したビジュアルインターフェイスにより、結合やユニオン、ピボット、集計などの、一般的でありながら複雑な作業をシンプルに行えるようにしました。
Tableau Prep を使えば、データ定義や表記ゆれの確認が視覚的に確認でき、直感的な操作でデータ前処理を行うことができます。

例えば、以下のように分析画面側で実装されがちなピボットも、列から行、行から列といったようにデータ前処理でシンプルに変換する事ができます。



また、データ前処理において重要な事はクリーニングとデータ形式の変換にだけではありません。

分析画面をとして利用する為のデータビジュアライゼーションの過程では集計処理は必ず発生します。加えて計算処理も発生します。
こうした処理がデータをビジュアライゼーションとしてユーザーに提供されるまでに数十秒と係るケースもあります。
優れたビジュアライゼーションであってもユーザーへ提供時間を要する事でフラストレーションが溜まり「使いに行くツール」と評価されてしまっては非常に残念です。

そこで、レスポンス改善の為のデータ前処理についてお話します。
Tableau Desktopでは強力なLODという考え方が搭載されています。しかし場合によっては、このデータ生成を前処理で実装する事でビジュアライゼーションのパフォーマンスを各段に改善する事が可能です。

Point 1:  DesktopでのLODを利用したサンプル

ユーザーをグループごとに分類し、その行動や定着率を分析する手段として「コホート分析」があります。この分析手法を利用した例として、長く取引のある顧客は、売上への貢献度も高いか?を判定してみます。次のVizでは、年毎の売上を比較しています。ここで初回購入の年で顧客をグループ化し「コホート分析」を行おうとした場合、このVizでは顧客ごとにデータが表示されていないので、顧客の最小オーダー日付が、最初の購入日として表現する事ができません。そこでLOD 表現を使って顧客ごとの最小オーダー日付を固定する必要があります。

Tableau Desktopでは、まず計算フィールドを追加しLOD表現を行い「初回購入年」を表現します。
集計とオーダー日と売上で表現されていますが、顧客を切り口としたLOD表現を色に設定する事で初回購入年毎の集計を表現できます。



しかし、Desktop上で指定された行列での集計以外に、LOD表現として計算式を実行する必要があり別の切り口での集計が発生する為にレスポンスに影響がないとは言い切れません。

そこで、計算式を用いた集計自体をデータ前処理として生成する方法を検討します。

Point 2:  LODPrepで作成したサンプル



LODの計算式では「顧客」毎の「初回購入年」を算出しているので、Prepのフローでは「顧客」毎の「最も小さい購入年」のデータを集計します。



これにより集計された「顧客ごとの初回購入年」データを元のRawデータに対して付加する必要があります。 JOINを用いて結合します。




こうして生成したデータをTableau Desktopが高速に読み取る事ができるHyper形式のファイルとして出力し、Tableau Desktopで読み込み、購入年毎の売上を集計しVizを生成します。新しく「顧客ごとの初回購入年」として生成した列を色に設定する事により、Viz上では色情報を計算する事なく表現でき、Vizは高速に表示できます。



Point 3: レスポンス改善効果

今回はLOD表現を前処理で生成しましたが、他にもデータの集約と結合などが前処理で利用されるケースがあるかと思います。特に予算と実績など粒度の異なるデータは、Tableau Desktopではブレンディングを用いる事でデータソースを実装できますが、前処理で実装する手段も考えられます。

実際にデータブレンディングを用いた際にVizを表示する為に数分かかっていたが、Prepでデータ前処理を行う事でViz表示が数秒に改善されユーザーへの負担を軽減したというケースもあります。
また、各Desktop側で同じようなデータソースに対する処理が分散している場合、前処理として1つに統合する事で相乗的にパフォーマンス向上を発揮する事ができます。

分析は、データの発生元から業務で実際に活用する場まで繋がることにより効果的に活かされるものです。発生するデータの前処理としてのTableau Prep利用をご検討いただく事により、Vizを通して最適な分析への一助になり得るかもしれません。

以上、データ前処理の有用性についてご紹介しました。

0 コメント: