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