AI時代のTableau開発

Tableau Cloudをメタデータで便利に可視化しちゃおう。

説明用の架空データで、Tableauリネージュ台帳の「販売分析データ」に関連する25点だけを表示した画面。検索と選択、サイト全体の件数を保って探索する。
マエス

マエスです。Tableau Cloudって検索機能がもう一歩ほしいじゃないですか。データソース、テーブル、項目、ダッシュボード、シート…うーんもう少し、しゅっと、パパっと検索したくなる。

実は、Tableauには、表示する数値のほかに、項目名、計算式、どこから来てどこで使われるかという関係もあります。このメタデータをAPIで取り出せば、自分の問いに合わせた検索・一覧・可視化や、管理台帳に活かせます。

たとえば「この売上金額は、どの式やダッシュボードで使っている?」という問いがありますよね。ワークブックを一つずつ開く前に、関係を集めて確認候補を絞りたい。

こんな感じですね。

こんな風に項目も見ることもできます。

実はですね。TableauではさくっとMetadata APIを利用して情報を取り出し、保存した情報を専用のWeb画面で可視化できます。なおかつ今では、ChatGPTのサイト機能等で、簡単に内容を可視化する画面づくりを支援してもらえます。今回は本人限定の台帳にしました。共有する場合は、認証と閲覧範囲を設定・確認します。(ChatGPTのサイト機能解説は機会あればいつか)

どう作るか:取り出す、整理する、保存する、画面で探す

実装は四つに分けると分かりやすいです。Metadata APIからGraphQLで取得 → 収集コードで整理・検証 → 保存 → Web画面で検索・描画。APIが返す名前や計算式、関係を、画面で使える形へそろえます。

今回作った台帳の短い仕様

項目今回の仕様
検索取得済みの全アセットの名称・計算式を部分一致で検索し、種類でも絞り込む。アセットはコンテンツや項目をまとめた呼び方です。
全体図と詳細全体件数は保持。細かい列・項目は通常省略し、データソース等を選んだときに関係する分を図へ加える。式は右側の詳細で確認。
フォーカス一致と関連を色分け。「関連だけ表示」で無関係な背景を隠し、オフで戻す。直接参照・所属・到達関係は分ける。
保存関係全体はファイルとしてR2、最新結果の参照先や実行履歴はデータベースのD1へ保存。取得失敗や不完全な結果では前回成功データを維持。
更新画面からの更新とクラウドからの呼び出し。毎日9時・日本時間の予約を設定。継続した定時成功は本記事では未確認。
公開範囲今回の実環境は本人限定。共有する場合は認証と閲覧範囲を確認。ダッシュボードの実画面画像は別APIで取得。
サーバーがTableau Cloud Metadata APIから参照関係を取得・検証し、D1とR2へ保存。ブラウザは保存済み台帳を検索・閲覧する。日次予約はMCP経由で取得を起動する設定。

図1:今回の構成。ChatGPT SitesとCodexは、この実行経路とは別に、画面と接続・収集コードの制作を支援しました。検索や描画は実装したコードが行い、クラウドの定期タスクは同じ収集処理を呼び出します。AIによる制作支援、Tableauへの接続、利用者への公開範囲を、それぞれ設定・確認します。

Metadata APIはメタデータを取得する窓口です。今回はワークブック、ダッシュボード、シート、データソース、テーブル、列・項目と、取得できる計算式・参照関係を集めました。取得はページに分けて繰り返し、資産と関係の形へ整理。警告・件数・重複・参照先などを検証してから保存します。検索は保存した台帳を使います。リネージュは、データの入力元から利用先へのつながりです。

参考:Metadata APIの利用開始、メタデータモデル、ChatGPT Sitesでの制作

Tableauの検索と、今回の台帳の検索

Tableau Cloudにも標準の検索があります。右上の検索バーに入力すると候補が出るクイック検索では、タイトルや所有者から探せます。Enterで開く全検索では、ビュー・ワークブック・データソースなどの種類で絞り、一覧で確認できます。いずれも、閲覧できる権限の範囲が対象です。

Tableau Catalogが有効な環境では、列・データベース・テーブルへ検索対象が広がり、標準のリネージュ画面から上下流や項目も確認できます。Catalogの利用にはData Managementライセンスが必要です。コンテンツを名前から探すなら標準検索、標準の上下流確認ならCatalogをまず試し、名称と式をまとめて調べる一覧や独自の探索順が欲しいときに、今回のような台帳を検討できます。

参考:Tableauコンテンツの検索、Catalogのリネージュ

Tableauの標準検索でコンテンツを探す画面。標準検索の対象と今回のメタデータ台帳の検索を比べるための画面例。

図2:Tableau公式ヘルプに掲載された英語UIの全検索画面。上部の検索語と種類の絞り込み、右上の表示切替を確認できます(自社環境の画面ではありません)。出典:Tableauサイトの検索

今回の台帳では、取得した名前と計算式をまとめて検索します。たとえば「売上金額」という名前の項目に加え、式の中でその項目を参照する「売上高」も候補になります。検索結果で式を確かめ、利用先を見て、関連する部分だけ図にする、という調べ方に合わせました。

「売上金額」から、式と利用先をたどる

ここからは、架空の販売分析データを使った実装画面です。まず「売上金額」を検索すると、名称や計算式に一致する3件が見つかります。計算項目の「売上高」を選び、右側の詳細を開きます。

売上金額の検索が3件に一致したことを選択バーに表示し、詳細タブで売上高の計算式を確認する架空画面。図は所属する販売分析データと利用先の月別売上・商品別売上を強調する。

図3:名前と式から探し、詳細で確認する。「売上高」の式は SUM([売上金額]) - SUM([値引金額])。利用先として「月別売上」「商品別売上」の2シートが見つかります。

線の読み方も分けます。式やシートへの直接参照、データソースやワークブックへの所属、途中を省いた到達関係です。たとえばAPIから「列→シート」の依存が返っても、その途中にある計算項目が分かるとは限りません。

架空のTableau項目、売上金額と値引金額を計算項目の売上高が参照し、売上高を月別売上と商品別売上の2シートが使用する。実線は直接参照・使用、破線の枠は所属する範囲を示す。

図4:項目から式・利用先をたどる概念図。実線は直接の参照・使用、破線の枠は所属を表します。到達関係では途中を省く場合もあります。

図の線は実データの転送を示すものではなく、点の距離や左右の並びも依存の段数とは見なしません。

細かい列・項目は通常の図から省略しています。「販売分析データから図を開く」を押すと、そのデータソースに関係する列・項目が加わり、図は109点になります。ここで右上の「関連だけ表示」をオンにすると、関連する25点だけが残ります。

架空の台帳で販売分析データの関連だけ表示をオンにし、109点の全体背景から関連する25点へ絞った画面。検索3件と選択、右側の全体件数を維持する。

図5:「関連だけ表示」で、いま確かめたい部分へ絞る。オフにすると109点の背景へ戻り、検索結果3件と選択は保持します。図から隠す操作なので、右側の全体件数は変わりません。

一連の操作をGIFでも見られます。検索、式の確認、所属データソースから図を開く、「関連だけ表示」のオン・オフ、という順です。

説明用の架空データで「売上金額」を検索し、「販売分析データ」を選択して、関連だけ表示をオンにすると109点から25点へ絞られ、オフで背景に戻る操作GIF。

このGIFは架空の200アセット・432関係を、実装した画面で操作した7場面です。ダッシュボードは「説明用・画像なし」のアイコンで、顧客データや実環境の画像は使っていません。クリック・タップで原寸GIFを開けます。

見つけた候補は、変更前後の確認へ使えます。たとえば売上金額の定義変更なら、データソース管理者は「売上高」で値引きを差し引く意図が新しい定義でも合うかを確認。ダッシュボード担当者は「月別売上」「商品別売上」を同じ期間・同じ対象条件で変更前後に比較します。これは今後の確認例で、台帳で候補を見つけた後は、実際の式と画面で確かめます。

データソースの種別が多岐にわたる。所有者、サイト別に、dbtと連携して、などなど。
それらも自由。なぜならばTableauのAPI活用とは、そのくらい自由だからです。

ちゃんちゃん!ぜひこのブログをペイと、生成AIに投げてみて、実行してみてくださいね!

ABOUT ME
マエス(吉田 裕宣)
マエス(吉田 裕宣)
法人番号株式会社 代表取締役
法人番号株式会社 代表取締役/一般社団法人学生データ分析AWARD 代表理事。りょうさんより、マエスさんのTableau発信しちゃいましょうよ。 という機会を頂き思わず投稿。せっかくならばまだ日本では紹介事例が少ないもののみ取り上げていきます。
記事URLをコピーしました