Skip to main content
Takashi Masuda が「Japan」で質問

<背景>

100 個近くのシートで作られた、Tableau ダッシュボードがあります。これらのシートのデータソースは全て Snowflake を向いており、20 個程度の mart view を参照しています。

 

  • 1 つの Tableau ダッシュボード
  • 100 個近くの Tableau シート
  • 20 個程度の Tableau データソース
  • 20 個程度の Snowflake mart view

 

今回のダッシュボードは複数の store に提供します。現在の store は 1 つだけなので、Snowflake の mart view 内で、特定の store_id だけ表示されるように SQL を定義しています。

 

ただ、この実装だと「store の数だけ mart view が増える」課題があります。

 

<調査したこと>

Tableau 行レベルセキュリティ (RLS) のドキュメントで、5 種類が紹介されていたので、全部確認しました。各 RLS の比較も確認しました。

 

  • (1) 手動ユーザーフィルター
  • (2) 動的ユーザーフィルター
  • (3) データポリシー
  • (4) データベース内の RLS
  • (5) ユーザー属性

 

今回は (1) の手動ユーザーフィルターに注目しました。

 

Tableau のグループと store_id を紐づけた手動ユーザーフィルターを作れば「store の数だけ mart view が増える」課題は解決できそうですが、前述の RLS の比較でも言及されているとおり、メンテナンスに手がかかります。今回だと、100 個近くのシートをメンテナンスする必要があると思います。

 

<質問>

今回のようなケースに使えそうな、Tableau の RLS はありますでしょうか?

 

<蛇足>

「手動ユーザーフィルター」は Looker のユーザー属性に近いと思いました。Looker のユーザー属性はお手軽且つ安全に RLS を設定できたので、それに近いものを探しています。

4 件の回答
  1. 2024年4月23日 9:44

    本当ですね!

    手動ユーザーフィルターは、シートまたはデータソース単位で設定できることを確認しました。

     

    > また手動・動的を問わずパーミッション管理も組み合わせて行わなければならず、気を付けないといけない点があるので(人間が間違えずに設定できるのかという意味で)安全性に若干不安があります。

     

    こちらもそのとおりですので、総合的に判断していきますね。

0/9000