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

デジタルマーケティング戦略、Web解析、SEO、リスティング広告、Facebook広告、Linkedin広告、Tableauでのデータビジュアライズなどなど、何か弊社でお役に立てそうなことがございましたら、こちらよりお気軽にご相談ください。ご相談は無料で承っております。

プリンシプルでは業界最高レベルの専門家として一緒にご活躍いただける方を募集しています。詳しくは採用情報のページをご覧ください。

お気軽にご質問、ご相談ください

関連タグ

廣瀬友美

新卒から6年半、旅行会社で旅行商品をオンラン販売するWebサイトの運用・構築を経験。事業者としてアクセス解析、SEO、サイト制作、システム構築に携わる

ブログ