見出し画像

Tableau Prepで最新ファイルのみ自動更新する方法

こんにちは(*^^*)Tableauが大好きなマーケターmomoです。
普段ベルフェイス株式会社でマーケターをしていたり、個人でマーケコンサル、Tableauトレーニング支援を行なっています。
今回TabjoがTableau Tipsをテーマとした『Tabjo Advent Calendar 2021』を開催していたので12月16日を務めさせて頂くことにしました。

画像1

Tabjoの運営の皆さん、面白い企画をありがとうございます!
皆さんのTips面白い内容ばかりで大変勉強になります✨

Tableau Prepで最新ファイルのみ自動更新する方法を教えます!

ビジネスサイドの方からよくこのような相談を受けます。

「毎日ダウンロードする最新ファイルにのみ加工するよう自動更新する方法はないか?」

最新ファイルの例

組織によっては日次の変化を測るため、上書き更新されてしまうマスターテーブルから毎日スナップショットでデータを取得し、保管せざるを得ないケースでこのようなニーズが生まれます。
これはTableau DesktopやTableauPrepで自動化することが可能です。しかし、Tableau Desktopでは重くなってしまうので、Tableau Prepで前処理しておくことをおすすめします。前提条件がありますが、方法を解説したいと思います(^^)

【前提条件①】ファイル名に日付もしくは最大値 or 最小値の数値が入っている

先程の画像のようにファイル自体の変更日ではなく、ファイル名に
・日付
・最新ファイルがフォルダの中で最大値もしくは最小値の数値
が入っていれば更新することができます。
なぜならTableau Prepに最新ファイルがどれなのか判別させるためです。もしダウンロード時に該当するものがなければファイル名を変更し格納いただければと思います。

【前提条件②】初めて接続したファイルと同一フォルダに最新ファイルを格納する

次の画像のように、一番はじめに接続したファイルと同一のフォルダに格納されていることが条件です。理由はワイルドカードユニオンを使用して、自動で最新ファイルも読み込めるようにするためです。日次でダウンロードしたら同一フォルダに格納できるようにしておいてください。

画像3

【前提条件③】ワイルドカードユニオンが使えるファイルであること

Tableau Prepのワイルドカードユニオン機能(ワイルドカード検索)がサポートしているファイルのみ適応できます。
執筆している2021/12/13時点では、下記公式記事によると
インプット ステップでのデータの追加 > インプット ステップでのファイルおよびデータベース表のユニオン作成
・Excel
・CSV
・Amazon Redshift
・Microsoft SQL Server
・MySQL
・Oracle
・PostgreSQL

のファイルでワイルドカードユニオンを適応できるようです。

1.Tableau Prepで接続時にワイルドカードユニオンで対象ファイルを適用する

まず、更新対象とするファイルから、どれか1つのファイルを接続したら
①複数ファイルへ移動
②ワイルドカードユニオンを選択
③下に出てくるプレビューで対象のファイルが全て表示されていれば「適用」を押す

ワイルドカードユニオン例

2.クリーニングステップで自動作成された「File Paths」フィールドを確認する

接続後に「File Paths」というフィールドが新規作成されます。接続時の右側もしくはクリーニングステップへ以降すると確認でき、新規作成されていればOKです!

FilePathsの出現

3.「File Paths」から日付情報のみを抽出する

「File Paths」のフィールドからカスタム分割(もしくはSPLIT関数等)を用いて日付情報を抽出します。自社のファイルに合わせてテキストを抽出してください。
※カスタム分割の方法や詳細はこちら

日付の抽出

4.抽出した日付情報を日付書式に変換する

日付情報を抽出できたらフィールド左上の日付で変換をするか、計算式を書いて日付書式のフィールドを作成してください。注意点ですが、下の画像のように数字のみ配列した形式の文字情報だと「年日月」で変換されてしまうので計算式で書いてあげてください。

DATEPARSE("yyyyMMdd",[日付情報が入ったフィールド])

日付変換

5.FIXED関数で最新数値を返すフィールドを作成する

計算フィールドを作成し、FIXED関数で最新数値(最大値)を返します。

{FIXED :MAX([日付書式の日付フィールド])}

画像8

6.値のフィルター(計算)で最新日付と日付フィールドが一致したレコードを保持する

値のフィルターで計算式を追加します。画像のように最新日付のフィールドと日付書式の日付フィールドを=で保持します。「保存」を押すとフィルターが完了します。

値のフィルター

最新日付のデータのみ、保持されました!!!

画像10

あとは、不要なフィールドを消して綺麗なテーブルにしましょう。

不要フィールドを消す

あとは実行ボタンを押すだけで自動更新できる!

これで今後いちいち接続設定しなくても、TableauPrepを開き「実行ボタン」を押すだけで、常に最新日付が入ったファイル名CSVのみが保持され更新できるようになります。
これ以外にも、ユニオンしたり、増分更新機能を活用するなど色々手段はあるかもしれませんが管理するうえでもわかりやすさがあって個人的に好きな方法だったりします。
同じお悩みをお持ちの方がいたら、ぜひ試してみてください(^^)🌟

■ Tableau Prep ユーザー会も遊びにきてね!
https://techplay.jp/community/tableauprep
毎回ご参加は百人規模!イベントはこちらで募集するので是非フォローしていただけると嬉しいです。

■ 執筆者の私のTwitterでもお知らせします!
https://twitter.com/marketer_momo
よかったらフォローお待ちしております*

この記事が気に入ったらサポートをしてみませんか?