あるフォルダ内のCSVに対し、自動でprep builderに落としこみ、
設定したフローを実施させる方法はあるのでしょうか?
同一フォルダの中に、日次でトランザクションデータを追加し、
追加されたCSVは自動的にprep buiderに落とし込まれ、
自動で設定したフローが行われるようしたいです。
データの接続先はbox、もしくはローカルフォルダを考えています。
prepではboxに対応していないようですが、box driveというサービスを使うことで、
box上のファイルをローカルデータとして扱うことで接続を可能にしています。
よろしくお願いいたします。
司 さん
こんにちは、浅田です。
アプローチとしては以下2点があります。
1. Windowsのローカルマシンやサーバーマシンによるスケジュール自動実行
2. Tableau Serverに、Prep Conductorを導入する
一つずつ説明いたしますね。
まず「1.」 についてですが、これは既にSHOさんが投稿された参考記事にも似ている内容で、
TableauのHelpにある以下の手順を行っていきます。(私も司さん同様の要望をこの手法を用いて実現しています)
まずは、Input、Outputを定義するjsonファイルを作成します。
司さんの場合、ローカルフォルダのデータが対象になるので以下のようなイメージになると思います。
※ InputデータがDBなどの場合はinputConnectionsにDBの接続情報などを記載する必要があります。
※ Output先はTableau Serverを想定しています。
-----
{
"inputConnections": [],
"outputConnections": [
{
"serverUrl": "publish先のTableauServerURL",
"contentUrl": "",
"username": "publish先のTableauServerログインID",
"password": "publish先のTableauServerログインPW"
}
]
}
-----
次に、Helpの手順にあるコマンド実行を、自動で行う仕組みを構築します。
私の場合、以下のようにコマンド実行を自動で行うようなPowerShellを書きました。
ちなみに、19行目〜22行目は複数のフローファイルを実行できるようにするためのforeach文で、
フローが複数あっても、全てのフローが自動実行するような仕組みにしています。
複数のフローを定義する場合は、Helpに従い以下のように設定ファイルを定義します。
これらのファイルが作成できたら、
Windowsのタスクスケジューラーから作成したPowerShellを任意のタイミングで実行するよう仕組みます。
ちなみに私は毎日朝6時に実行するようなタスクスケジューラを組みました。
では、次に「2.」です。
こちらは、最近リリースされたTableau Serverのアドオン機能「Server Management Add-On」を用いる手法です。
Management Add-Onの機能の一つである「Tableau Prep Conductor」を用いて実現します。詳細は以下を参照ください。
簡単にお伝えしますと、作成したフロー自体をTableau ServerにPublishし、
Tableau Server上のスケジュール機能を用いてフローを自動実行し、データを更新するといった内容です。
ただし注意点が一つあり、こちらのManagement Add-Onは「有償」になります。
よろしくお願いいたします。
浅田