Tableauで作ったVizに対し、InputするDataSourceを定期的に差し替えてVizを更新していく事は多々あると思う(例:月次報告等)TableauでPublishする事前に、データ準備のためPrepを使っていると、
≪Publishまでの手順≫
- InputDataを用意し配置
- Prepを実行(アプリケーションファイルを開いて実行)
- Hyperファイルなどを取得し配置
- Tableauのデータソースを変更(アプリケーションファイルを開いて実行)
- パッケージ化(メニューよりtwbxファイルエクスポート)
- Publish(サーバ公開する場合)
と地味に面倒くさい手筈を踏む事になる。Inputするデータが多ければ多いほど、扱うファイル数も多くなり大変。。。InputDataを用意したら、その後の作業は自動的に行われワンアクションでパッケージ化まで行いたい欲望にかられ、コマンドラインでの自動化を検討したのでメモを残す(サーバへの接続などはなく、Windowsクライアント単体で実行する環境を想定)
Tableau Prepのコマンドライン実行
"\[Tableau Prep Builder install location]\Tableau Prep Builder <version>\scripts"\tableau-prep-cli.bat --incrementalRefresh -t "path\to\[your flow file name].tfl"
[解説]
Tableau Prepをインストールすると、tableau-prep-cli.batが同時配置されるのでこれを活用。引数で tflファイルを指定する。tableau-prep-cli.batの場所は、バージョンや環境により異なるので各クライアント端末ごとにパスを確認すること。
[注意]
tflファイルが読み込むInputファイルを引数で与えるような事はできないらしい。つまりは、tflファイル内で指定したパス・ファイル名の通りにInputファイルを配備しておく必要あり=月次などでファイル名など都度変わる場合には、このコマンド実行前に解決しておくことを考えておかないと駄目(例: Batファイル内で Renameやmoveによりファイルレベルで解決しておく)
[参考サイト]
Tableauオフィシャル:コマンド ラインからフロー出力ファイルを更新
※オフィシャルなのでまずはここを確認。サーバ接続有の場合の記載もあり
KCME Tech Blog:Tableau Prepのワークフロー実行を自動化する
※タスクスケジューラ登録も記載あり。ありがたい。
Tableau パッケージ化(twbxファイルエクスポート)
twbファイルのコンテキストメニュー(アイコン上で右クリック)に、”パッケージ化”という選択肢がある。つまりは、アプリケーションを開かずとも、twbファイルからtwbxファイルを作成できる。このコンテキストメニューを選択する行為を、コマンドラインで実行する。
HKEY_CLASSES_ROOT\Tableau.Workbook.2\shell\package\command
"C:\Program Files\Tableau\Tableau 2022.1\bin\tableau.exe" /package "%1"
[解説]
コンテキストメニューを実行するためのコマンドとして、レジストリ情報から上記コマンドで実行できるとのこと。
[注意]
Prepの時と同様に、twbファイルに対するInputファイルを引数で与えるなどはできない=twxファイルで指定した通りに Inputファイルのパス・ファイル名で配備しておく必要あり。prep作る時点で、twbとの連携を考えておいた方が良いですね。
[参考サイト]
Qiita:Tableauのアプリをコマンドライン実行して作業を自動化する
※@t0tsukawa(Hisashi Nakatsuyama)さん投稿。まとまっていて判りやすい
おわりに
Tableauサーバの機能が判っていないので、参考サイトを読むともっと簡易な方法があるのかもしれないと思う今日この頃。。あくまでローカルで ExcelやCSVを一つ一つ読み込んで、twbx作っているような環境下を、少しでも効率化して楽をしよう・・・という試みです。