エクセルやcsvファイルの日次データをTableau Prep上で更新して、Tableauのダッシュボードに反映する…。
そんな作業を毎日している方に、Tableau Prep Builderで作成したフローファイル(tfl)を自動で実行し、データを更新する方法をお伝えします。
もちろん日次ではなく、週次や「更新頻度は低いけど更新するフローが多く手動では時間がかかる」というケースでもお役立て頂けます。
準備する環境・アプリケーションなど
自動実行の設定には下記の環境やアプリケーション等が必要です。
- Windows PC
- Tableau Prep Builder
- フローファイル(tfl)
※「Project Maestro(プロジェクト・マエストロ)」が2018年春に正式ツールとして「Tableau Prep」としてリリースされました。
今回はWindowsの「タスクスケジューラ」を使ってTableau Prep Builderで作成したフローファイル(tfl)を自動で実行し、データを更新します。自動実行の設定前に、出力まで設定されたフローを作成しておきましょう。
なおデータ量が多い場合や、ご自身が使用されているPCのスペックが低い場合は、実行中にPCが固まってしまう可能性があります。そのような場合は、作業用PCのご準備をお勧めします。
自動実行に必要な情報
自動実行の設定に必要な情報は以下の3つです。
- tableau-prep-cli.batファイルのパス
- 自動実行したいフローファイル(tfl)のパス
- 認証用ファイル(TableauServerもしくはTableauOnlineへ自動でパブリッシュする場合)
1.tableau-prep-cli.batのパス
tableau-prep-cli.batファイルはTableau Prep Builderをインストールした際に自動的にコピーされています。任意で指定していない限り、パスは以下のようになります。
C:\Program Files\Tableau\Tableau Prep Builder 2020.3\scripts\tableau-prep-cli.bat
ただし、バージョンによって「Tableau Prep Builder 2020.3」の部分が異なりますので、コピー&ペーストせず一度ご自身PC内でパスのご確認をお願いします。
2.自動実行したいフローファイル(tfl)のパス
フローファイル(tfl)の配置場所はローカルでもクラウド上(パスで記載できる場所あることが前提)でも実行可能です。
また、日本語のフォルダ名、ファイル名も使用できます。ただし、フォルダ名やファイル名にスペースが含まれると実行できませんのでご注意ください。
- OKの例:G:\マイドライブ\ブログ用\フローファイル.tfl
- NGの例:G:\マイドライブ\blog data\フローファイル.tfl
3.認証用ファイル(TableauServerへ自動でパブリッシュする場合)
フローを自動実行して最終的にTableauServerもしくはTableauOnline上へデータソースをパブリッシュしたい場合、認証用のjsonファイルの準備が必要です。
テキストエディタに下記スクリプトを記載し、赤字の部分をご自身の情報に書き換えます。
json形式で保存します。このブログではcredential_file.jsonというファイル名で作成しています。
{
"inputConnections":[
],
"outputConnections" : [
{
"serverUrl":"https://xxxx.online.tableau.com",
"contentUrl":"XXXXXXX",
"username":"username",
"password":"password"
}
]
}
serverUrl:TableauServerまたはTableauOnlineのURL
contentUrl:サイトID(URL の /site/ の後ろ部分)
例)”https://XXX.com/#/site/mysite” の “mysite”
※注意※
ContentUrlは必須のため、サイトIDが存在しない場合(「デフォルト」の場合)は空白(“contentUrl”:””)で設定します。
username:TableauServerにログインするためのusername
password:TableauServerにログインするためのpassword
自動実行の設定方法
必要な情報の準備が完了したら、自動実行用の設定をしてみましょう。
手順① スタート→Windows管理ツール→「タスクスケジューラ」を起動
手順② メニュー内「操作」から「タスクの作成」を選択
手順③ 「全般」タブ内でタスク名を設定する
セキュリティオプションにある「ユーザがログインしているかどうかにかかわらず実行する」にチェックを入れておくと、PCが立ち上がっていればログオフ状態でも実行されます。
手順④ 「トリガー」のタブ内で実行頻度を設定する
今回は日次更新を例に設定しているため「毎日」を選択し、毎日実行したい時分秒を設定します。
手順⑤ 「操作」のタブ内で「プログラム」と「引数」の設定を行う
ここで、「必要な情報」で準備をした情報を設定します。
・プログラム/スクリプト
tableau-prep-cli.batのパスを” ”で囲って入力します。
例)
“C:\Program Files\Tableau\Tableau Prep Builder 2019.3\scripts\tableau-prep-cli.bat”
・引数
フローファイル(tfl)のパスに前に「-t 」を付けて入力します。” ”で囲う必要はありません
例)
-t G:\マイドライブ\ブログ用\フローファイル.tfl
※TableauServeまたはTableauOnlineへデータソースをパブリッシュする場合
引数欄に認証用ファイル(json)のパスの前に「-c」を付けて入力し、そのあとにフローファイル(tfl)の情報を続けて入力します。
例)
-c G:\マイドライブ\ブログ用\credential_file.json -t G:\マイドライブ\ブログ用\フローファイル.tfl
検証方法
全て設定が完了したら、問題なく実行されるか動作検証しましょう。
今回は売上と広告の日次csvデータをTableau Prepでユニオンし、hyperで出力する例をお見せします。
手順① 更新したいデータファイルを配置
20201117と20201118のcsvファイルが配置されていたフォルダに、最新の20201119のデータを配置します。
手順② タスクの一覧から実行したいタスクを選択し、「実行」をクリック
手順③ コマンドプロンプトが立ち上がる
コマンドプロンプトが自動で立ち上がります。画像のように”Finished running the flow successfully”と表示されたら実行成功です。この後、コマンドプロンプトが自動で閉じます。
手順④ 出力を確認する(パブリッシュしない場合)
出力されたhyperを確認すると、更新日時が実行した時間に更新されています。
また、hyperをTableau Desktopで開いてみると最新ファイルのFile Pathが追加されています。更新成功です。
手順⑤ 出力を確認する(TableauServerまたはTableauOnlineにパブリッシュする場合)
TableauServerもしくはTableauにパブリッシュされたデータソースの更新時間が変わっていれば更新成功です。
おわりに
この記事では、Tableau Prep Builderで作成したフローファイルを自動で実行し、データを更新する方法をご紹介しました。
データベースに直接TableauServerから接続できず、エクセルやcsvのデータソースを扱わなければならない場合、毎日TableauPrepを立ち上げて、データを更新して、ダッシュボードへ反映させる…というのは地味ながら相当な手間ですよね。
せっかくTableauを使ってレポート作成を効率化しているはずなのに、返って作業が増えてしまうのはナンセンス。データ更新に日々時間を割いている方は、ぜひ今回ご紹介した自動実行をお試しください。