日次更新も怖くない! Tableau Prepで作成したフローを自動実行する方法

エクセルや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を使ってレポート作成を効率化しているはずなのに、返って作業が増えてしまうのはナンセンス。データ更新に日々時間を割いている方は、ぜひ今回ご紹介した自動実行をお試しください。

 

Language »