Tableau Prep の使い方 - コマンドラインによる自動化


Tableau Prep Command Line Interface (CLI)

Tableau Prep 2018.2.2 における新機能です。コマンドラインから flow ファイル (.tfl) を実行することができるようになりました。
Tableau Prep ヘルプ
コマンドラインから出力ファイルを更新

これにより、Windows のタスクスケジューラ等を使って Tableau Prep のスケジュール実行が可能になります。
タスクスケジューラ 触ったことないよ、という方は以下の記事を参照ください。
Windowsでbatファイルを自動実行したい時(タスクスケジューラの設定)

.tfl ファイルをコマンドラインから実行してみる

Tableau Prep では出力形式としてローカルに csv, tde, hyper の各フォーマットで吐き出すか、Tableau Server, Tableau Online にデータソースを Publish するか選べるようになっており、コマンドライン経由でもこれらのアウトプットに対応しています。

認証資格情報ファイルの作成

入力先となるデータソースへのログイン情報および、出力先となる Tableau Online / Tableau Server へのログイン情報を json ファイルとして定義してあげます。今回は Excel をデータソースとして試すので input は空にして、output だけ定義します。credentials.json と名前を付けて適当なディレクトリに保存します。

credentials.json
{
  "inputConnections":[
 ],
  "outputConnections" : [
  {
  "serverUrl":"server to publish to URL",
  "contentUrl":"siteID",
  "username":"username",
  "password":"password"
  }
 ]
}

フローの実行

コマンドラインからフローを実行するには、管理者としてコマンドプロンプトを開きます。
-h をつけて実行すると help を参照できます。
Windows:

TableauPrepCLI
\<Tableau install location>\Tableau Prep <version>\scripts\tableau-prep-cli.bat -h

-c で認証資格情報ファイルを、-t で .tfl ファイルを指定できます。

TableauPrepCLI
\<Tableau install location>\Tableau Prep <version>\scripts\tableau-prep-cli.bat -c \path\to\<credentials file>.json -t \path\to\<flow name>.tfl

実行結果はこんな感じです

タスクスケジューラに登録

さきほどのコマンドを bat ファイルとして保存し、タスクスケジューラに登録します。
詳細は Windowsでbatファイルを自動実行したい時(タスクスケジューラの設定) を参照ください。

まとめ

Tableau Prep の処理を自動化することができました。現状は Tableau Prep CLI とタスクスケジューラの合わせ技でどうにか運用に乗りそうです本来であれば Tableau Server の一機能としてスケジューリング設定ができれば一番よいのですが。
ちなみにスケジューリングに関する機能拡張要望はこちら↓
Tableau Prep - add ability to schedule flows

Tableau Prep Conductor と呼ばれる製品機能が実装されました。Data Management Add-on と呼ばれる追加ライセンスを購入すると機能が使用できます。
https://www.tableau.com/ja-jp/products/add-ons/data-management

リソース

Tableau Prep の使い方 - LOD 表現的な計算をしてみる
はじめてのTableau Prep