Tableau Prepのワークフロー実行を自動化する方法をご紹介します
Tableau Prep Builderは、Tableau Creatorライセンスにて利用できるETLツールで、データを理解しながらデータ準備ができるソフトです。
データの準備用のソフトウェアですので、例えば毎日12時に最新のデータに更新、といった運用を行いたいというケースが発生するのは当たり前ですが、GUIからそのような操作を行う機能はデフォルトでは準備されていません。
Tableau Prep Builderで作成したワークフローのスケジュール実行の方法は2つ存在します。
- Tableau Prep Conductorを利用する
- 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などクラウドコネクタを含むフローはコマンドライン実行はできません
準備
コマンドライン実行のためには、いくつか準備が必要です。
- フローを実行するPCの管理者権限
- 各種パス情報
- Tableau Prep Builderインストールパス
- フローファイルパス
- 資格認証情報ファイル(JSON) ※TableauServerを含むデータベース接続を含む場合
※詳細は、Tableau Prepのオンライン・ヘルプに記載があります。コマンド ラインからフロー出力ファイルを更新 fa-share-square-o
上記のうち、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時点の情報です