TableauPrepを自動化

Tableau Prepのワークフロー実行を自動化する方法をご紹介します

Tableau Prep Builderは、Tableau Creatorライセンスにて利用できるETLツールで、データを理解しながらデータ準備ができるソフトです。

データの準備用のソフトウェアですので、例えば毎日12時に最新のデータに更新、といった運用を行いたいというケースが発生するのは当たり前ですが、GUIからそのような操作を行う機能はデフォルトでは準備されていません。

Tableau Prep Builderで作成したワークフローのスケジュール実行の方法は2つ存在します。

  1. Tableau Prep Conductorを利用する
  2. Tableau Prep Builderをタスクスケジューラを利用して自動化する

1.Tableau Prep Conductorを利用する

Tableau Prep Conductorは、Tableau Prepで作成したワークフローをTableau ServerもしくはTableau Onlineにて実行する機能です。Tableau Prep ConductorはData Management Add-onに含まれています。

※本記事ではTableau Prep Conductorの使い方は取り扱いません

2.Tableau Prep Builderをタスクスケジューラを利用して自動化する

Windowsの標準機能のタスクスケジューラを用いることでTableau Prep Builderをコマンドラインで起動し、定期的なワークフローの実行を行うことが可能です。

※バージョン2020.1時点では、Google BigQueryなどクラウドコネクタを含むフローはコマンドライン実行はできません

準備

コマンドライン実行のためには、いくつか準備が必要です。

  1. フローを実行するPCの管理者権限
  2. 各種パス情報
    1. Tableau Prep Builderインストールパス
    2. フローファイルパス
  3. 資格認証情報ファイル(JSON) ※TableauServerを含むデータベース接続を含む場合

※詳細は、Tableau Prepのオンライン・ヘルプに記載があります。コマンド ラインからフロー出力ファイルを更新 

上記のうち、3の資格認証情報ファイルの記載方法をまず説明します(入出力先がローカルファイルのみを利用する場合は不要です)。

JSONファイルはテキストエディタ等で作成してください。内容としては、入力、出力のデータベース(もしくはTableau Server/Online)への認証情報を記載する形になります。

1.入力ファイル、出力ファイルにTableauServer/Onlineのファイルを使用する場合

設定:

  • 接続先のTableauServer名:sv0001
  • ユーザー名:MYNAME
  • パスワード:myPassword

※なぜか入力ファイルの接続情報にポート番号を指定しないとうまくいきませんでした(ヘルプ等では特に書かれていませんでした)

{
"inputConnections":[
{
"hostname":"http://sv0001",
"contentUrl": "",
"port":80,
"username":"MYNAME",
"password":"myPassword"
}
],
"outputConnections":[
{
"serverUrl":"http://sv0001",
"contentUrl":"",
"username":"MYNAME",
"password":"myPassword"
}
]
}

※SSL通信を使う場合はポート番号が異なります(デフォルトでは443)

2.出力ファイルにTableauServer/Onlineのファイルを使用する場合

設定:

  • 接続先のTableauServer名:sv0001
  • ユーザー名:MYNAME
  • パスワード:myPassword
{
"inputConnections":[
],
"outputConnections":[
{
"serverUrl":"http://sv0001",
"contentUrl":"",
"username":"MYNAME",
"password":"myPassword"
}
]
}

 

コマンドラインの書き方

ローカルファイルのみの場合

インプットもしくはアウトプットがローカルファイルのみ利用する場合の実際のコマンドラインの書き方は以下のとおりです。

"C:\Program Files\Tableau\Tableau Prep Builder 2020.1\scripts\tableau-prep-cli.bat" -t "C:\PrepTest\testprep.tfl"

※パスなどは各自の環境に合わせて書き換えてください

項目名 上に記載の内容 説明
バッチファイルパス "C:\Program Files\Tableau\Tableau Prep Builder 2020.1\scripts\tableau-prep-cli.bat" Tableau Prepを呼び出すバッチファイルのパスです。「2020.1」

の部分はバージョンによって変わりますので、実際に「tableau-prep-cli.bat」が存在する場所を指定してください。

フローオプション -t フローのパスを指定するオプションです。このまま記載してください。
フローファイルパス "C:\PrepTest\testprep.tfl" フローのフルパスを記載してください

DBサーバーを利用する場合

DBサーバーをインプットもしくはアウトプットに利用する場合の実際のコマンドラインの書き方は以下のとおりです。

"C:\Program Files\Tableau\Tableau Prep Builder 2020.1\scripts\tableau-prep-cli.bat" -c "C:\PrepTest\testprep.json" -t "C:\PrepTest\testprep.tfl"

※パスなどは各自の環境に合わせて書き換えてください

項目名 上に記載の内容 説明
バッチファイルパス "C:\Program Files\Tableau\Tableau Prep Builder 2020.1\scripts\tableau-prep-cli.bat" Tableau Prepを呼び出すバッチファイルのパスです。「2020.1」

の部分はバージョンによって変わりますので、実際に「tableau-prep-cli.bat」が存在する場所を指定してください。

資格認証情報ファイルオプション -c 資格認証情報ファイルを使用する際のオプションです。このまま記載してください。
資格認証情報ファイルパス "C:\PrepTest\testprep.json" 資格認証ファイルのフルパスを記載してください。
フローオプション -t フローのパスを指定するオプションです。このまま記載してください。
フローファイルパス "C:\PrepTest\testprep.tfl" フローのフルパスを記載してください

補足

実際の運用上は、上記のコマンドライン構文をバッチファイルに記載し、画面に出力されるログをテキストに出力するような運用がおすすめです。テキストファイルにログを出力するためには、コマンドラインの最後に「 > "C:\PrepTest\log.txt"」(log.txtは作成するログファイル名)などと記載します。

例:log.txtというファイルにログを出力するバッチファイルの例

"C:\Program Files\Tableau\Tableau Prep Builder 2020.1\scripts\tableau-prep-cli.bat" -c "C:\PrepTest\testprep.json" -t "C:\PrepTest\testprep.tfl" > "C:\PrepTest\log.txt"

※これをPrepText.batというファイルで保存します

 

成功ログ例(ローカルファイルのみの場合)

JAVA_HOME is set to : C:\Program Files\Tableau\Tableau Prep Builder 2020.1\scripts\..\Plugins\jre temporarily
Preparing to run the flow : C:\PrepTest\testprep.tfl
Loading the flow.
Creating temp directory at C:\Users\XXXXXX\AppData\Local\Temp\prep-cli-2729726906120529056
Loaded the flow.
Checking the flow document for errors.
Flow Document has no errors.
Preparing to execute the flow.
Flow Execution Status: Running
Flow Execution Status: Finished
Finished running the flow successfully.

うまくいかない場合は、エラー内容などを見て設定を修正してください。認証資格情報ファイルのところでエラーになりやすいようなので、うまく行かない場合はまず入出力をローカルファイルのみで試すなどしてみてください。

タスクスケジューラへの登録

最後に、タスクスケジューラに登録する必要があります。先程作成したバッチファイルをタスクスケジューラに登録してください。

Windows10であれば、検索窓に「タスク」と入力すればタスクスケジューラが候補に上がってきます。

タスクスケジューラ

1.「基本タスクの作成」を選択します

「基本タスクの作成」をクリックすると、ウィザード形式でタスクの登録ができます。

基本タスクの登録

2.基本タスクの作成

タスクの名前を入力します。

基本タスクの作成

3.タスクトリガーを設定します

いつタスクを開始するかを指定します。定期的なオプションから一回限りなど選択が可能です。

タスクトリガー

タスクトリガー

4.操作を設定します

ここでは「プログラムの開始」を選択します。

プログラムの開始

5.プログラムの開始を設定します

起動するバッチファイルを指定します。

プログラムの開始

6.要約

最後に登録内容を確認します。

登録内容の確認

7.実際に登録されているかどうか確認

実際に登録されているタスクを確認するには、「タスクスケジューラライブラリ」を選択することで、登録されているタスクの一覧を表示できます。

実際に登録されているか確認

 

※Tableau Prep 2020.1.4時点の情報です

Tableauの導入はぜひKCMEで!

セルフBIツール「Tableau」は2週間無償トライアルが可能です。

製品に対する操作方法、技術的な質問などは導入前・導入後に関わらずメールにてお答えします。また、Tableauを用いた環境構築、開発、ヘルプデスク対応、ハンズオン、トレーニング、ワークフロー作成なども承りますので、お気軽にご相談ください。

おすすめの記事