公開日: 2024/12/09
最終更新: 2024/12/09
参考資料: (本文随所に記載)
Tableau Cloud/Serverで権限管理とコンテンツ整理の両方を考える立場になると、権限設定やコンテンツをどのように格納するか、コンテンツの入れ物であるプロジェクトをどのように構成するかなど、データガバナンスとコンテンツガバナンスの両方とそのバランスに常に悩まされます。
個人的にベストプラクティスだと思っているのは、最上位(譲歩して第二階層)のプロジェクトに対して、ネストされたプロジェクト含めてパーミッションをロックすることだと思っています。
一方でこの方法では、例えばあるプロジェクトをあるチームで管理しパーミッションをロックしているとき、そのプロジェクトにあるワークブックの一部を別チームに共有したい場合、その要求を満たすことは難しくなります。
(そのプロジェクトに対するパーミッションをその別チームに付与することも出来ますが、必要以上の情報を見えてしまうリスクがあります)
また、コンテンツ管理のためにプロジェクトを使い整理することには、前々から限界を感じていました。一つのワークブックが複数のチームや複数の文脈で閲覧されるようなケースは、何かしらの形で経験したことはあるのではないでしょうか?
その場合、このワークブックはこの置き場で本当に妥当なのか?を悩んだかもしれません。
権限設定とコンテンツ整理の文脈において、何がプロジェクト運用のベストプラクティスなのかと悩む日々を過ごしています。
そのような日々の中で、「コレクション」機能を活用することでプロジェクト構成や権限設定をシンプルに保ちつつ、コンテンツ整理も円滑に行えるのではないか?というアイデアを思いつきました。つまりプロジェクトを権限設定のためだけに使用し、コンテンツ整理については「コレクション」機能を使用するアイデアです。
この記事では上記のアイデアを整理しながら書き残してみます。
ただし執筆時点ではこの運用は属人化や手動運用を要してしまうことから、実際の運用に耐えるものかは疑問に思うところもあり、そのイマイチさについても言及します。
主にはサイト管理者またはプロジェクト管理者向けの内容となりますが、可視化を作り共有する役割の方にとっても、Tableauの権限管理とコンテンツ整理について私見を深めることは役に立ちますので、ぜひご覧いただければと思います。
作ったものを適切な人に適切な方法で見せることで、作成物の利用を安心して促せますよね。
そしてより良いアイデアのお持ちの方は、ぜひ教えてください。
この記事が良い管理方法を集合知で生み出すための助けになれば、それはとても嬉しいことです。
おことわり
本来的には、Tableauでのパーミッション設定は単なる閲覧やアクセスに限らず、パブリッシュやダウンロードなど細かい事項について設定されます。
ただしこの記事では簡単のため、原則として閲覧とアクセスのみについて言及します。
またTableauデータソース等での行レベルセキュリティ(RLS)の利用については、本記事では言及しません。簡単のためという点もありますが、コンテンツ依存の設定となること、また本旨に大きく影響しないと考え割愛します。
権限管理とプロジェクトについて考える
議論を始めるために、具体例を考えてみます。
例えばあるサイトでは以下のように、Sales, Marketing, etc... というように、組織機能ごとに最上位プロジェクトを作成しています。また最上位プロジェクトで「アセット パーミッション」をロックし、また「ネストされたプロジェクトにも適用」をオンにしているため、最上位プロジェクト単位で権限設定を一括管理できるようにしています。
ここでは、それぞれの最上位プロジェクトの中のプロジェクト構造やコンテンツ整理は、それぞれの最上位プロジェクトに任せています。
この構成は一見すると妥当なように見えますが、以下2つの場合に対して頑強ではありません。
最上位プロジェクト内で権限設定を変更する必要がある
例えばSalesプロジェクトの中にあるコンテンツの一部Salesプロジェクトに権限付与された全員が見てよいことになっているが、一部は閲覧者を絞りたい、など。
最上位プロジェクトそれぞれに所属するユーザー間で、部署間協業などのために、それぞれのプロジェクトにあるコンテンツを見る必要がある。
例えばMarketing所属のユーザーが、Salesプロジェクト配下の一部コンテンツを見る必要がある、など。
ただし現実には1も2も往々にして起こります。
例えばSales部署の中でも誰が何を見て良いかの判断・ルールが生じることは自然だと思いますし、また部署間の協業は当然のようにありますよね。 この業務上の要請よりも権限管理に重きを置いた結果、データ受け渡しのためにワークブックからデータをダウンロードして、それをExcel等でやり取りさせてしまう…というような事態は、もちろん避けたいですよね。
まず1番について考えると、細々とした権限設定も考えることは出来ますが、シンプルな解決策は以下2つではないでしょうか。
1-1. Salesプロジェクトの「ネストされたプロジェクトにも適用」をオフにし、2階層目以降での権限管理設定を独立させる。
1-2. Salesプロジェクトから切り出し、それぞれ最上位プロジェクトにする。
1-1について言えば、原則として最上位プロジェクトで権限設定を統一管理する運用をしていた場合、例外を生んでしまうため好ましくはないかもしれません。
またSalesプロジェクト配下に新たに作成されるプロジェクト等の権限設定にも目を光らせる必要が生じます。
その点で言えば、1-2の構成は「誰が何を見て良いか」を最上位プロジェクトごとに管理できるため、権限管理と運用の観点から優れているように見えます。
ただしこの構成はコンテンツ整理を難しくする可能性がありますが、この点は後述します。
ここでは一旦の結論を「最上位プロジェクトを分けた方が、権限管理は簡単そうだ」と置きます。
そして2番について考えてみます。
この場合も1番と同様に、大きくは「権限管理を緩める」か「最上位プロジェクトに切り出す」ことが、ある程度妥当な解決策ではないでしょうか。
2-1. Salesプロジェクトの「ネストされたプロジェクトにも適用」をオフにし、2階層目以降での権限管理設定を独立させる。
2-2. 協業用の最上位プロジェクトを作成し、そこに必要なコンテンツを格納する。
1番の場合と同様の議論により、基本的には2-2のように最上位プロジェクトを切り分けた方が良いように見えます。これはプロジェクトを権限管理の簡単さに、つまり「誰が何を見て良いか」の管理しやすさと分かりやすさに重きに置いて使用するコンセプトです。
ただしこの構成では必然的に最上位プロジェクトが増え、それに伴い「どこに何があるか」が分かりにくくなります。
例えばSalesプロジェクトのユーザーから見ると、使いたいデータソースやワークブックがどのプロジェクトにあるか分かりにくくなる、などです。
もしくは業務上まとめて使用するダッシュボードが複数個所に点在してしまうことの煩雑さも生じるかもしれません。
元々はプロジェクトを権限管理とコンテンツ整理の両方のために使用していたものを、権限管理に重きを置いてプロジェクトを使用するようにしたことで、コンテンツ整理の方に課題を生じさせた状況です。
パブリッシュされたデータソースに接続したワークブック・Prepフローも考慮すると、なお複雑さを増しますね。
プロジェクトを権限管理に重きを置いて使用すること自体は問題無いと思いますし、個人的にはそれがベストプラクティスに近いと思っています。
多くの場合、コンテンツ整理よりも権限管理(もっと広く言えば、データガバナンス)の方が優先されると思いますので。
一方で権限管理を重視することで、プロジェクトがコンテンツ整理の役割を担いにくくなることも事実です。
これを解消するために「コレクション」機能の導入を考えます。
「コレクション」を導入する
「コレクション」は2021.2で導入された機能です。
コレクション機能の概観や使い方は、以下の記事が分かりやすいです。
要はプロジェクトなど置き場所に関わらず関連するコンテンツを集約し整理するための機能です。プロジェクトよりも上位?に位置する「層」として理解する方が分かりやすいかもしれません。
例えば下図では、SalesプロジェクトとMarketingプロジェクトの様々なコンテンツを、関連コンテンツとしてコレクションに集約しています。
ここでは機能紹介も兼ねて様々なコンテンツを表示していますが、例えば分析に使用できるデータソースを集約したコレクションを用意する、定点観測や分析のためのビューやワークブックを集約したコレクションを用意するなど、業務ニーズに応じたコンテンツ管理をすることも可能です。
ちなみにコレクションに含まれる各コンテンツは、そのコンテンツ自体の権限設定をそのまま保持します。
例えばコレクションにデータソースを追加したとしても、そのデータソース自体への閲覧権限が設定されているユーザーのみ、そのデータソースをコレクション内で確認できます。
参考:プロジェクトを使用したパーミッションの管理 #コレクション
コンテンツを含むプロジェクトとは異なり、コレクションはコンテンツへのリンクのリストと考えることができます。プロジェクトのパーミッションはプロジェクトのコンテンツにより継承されますが、コレクションのパーミッションはコレクションに追加されるコンテンツに影響を与えません。つまり、アイテムを表示するためのパーミッションに応じて、ユーザーごとにコレクション内のアイテム数が異なる可能性があります。
参考:Tableau Serverの基礎 - サイト管理を行うその前に(2) #コレクション
コレクションに登録したコンテンツ(ワークブック等)を実際に見るには、コンテンツそのものに閲覧権限が付いてないといけないので、コンテンツ作成者が適切に権限設定をしている限り、仮にコレクション公開範囲を間違ったとしても大事には至らないようになっています。
コレクション機能を上手く使用すればプロジェクトからコンテンツ整理の役割を引きはがし、コレクション側で巻き取ることができるのではないか、というアイデアです。
コンテンツ整理の要請をコレクション側で対応し、Tableau利用ユーザーにもコレクションからコンテンツを見てもらう・検索してもらうようにすることで、課題となった「どこに何があるか分からない」ことを解決する試みです。
また一つのコンテンツを複数コレクションに追加することも可能なので、プロジェクトを用いるよりもコンテンツ整理がしやすくなる可能性が高いです。
一つのビューが複数のチーム・複数の用途で使われることは自然なことですが、置き場は一つに定めないといけません。それであれば、実際の置き場は一つのプロジェクトでも、コレクションを用いれば疑似的に複数の置き場を用意しているような状態は作れますよね。
余談:もしAdd-on入っている環境ならば、データソースとPrepフローのためのコレクションはそこまで必要ないかもしれない話
ところでTableau CatalogというAdd-onに含まれる機能があります。
特に系列 (Lineage)という機能があり、この機能はデータの流れ、処理の流れをTableau ServerまたはTableau CloudのWeb UI上で視覚的に表示してくれます。
この機能を使えば特定のビューやワークブックで使用されるデータが何かを理解しやすくなるため、Prepフローやデータソースのためにコレクションを用意することは、必ずしも必要ではないかもしれませんね。
コレクションが増えすぎると「どのコレクションを見て使えばいいか分からない」状態も生んでしまうため、コンテンツ管理を適切に行うためにコレクションを利用するのであれば、その数や用途は整理された方が良いかもしれませんね。
(とはいえ、古かったり不正確なデータソースが乱用されることを防ぐ意味では、分析に使ってほしいデータソースはコレクションを作成し共有しても良いかもしれませんね)
「コレクション」のイマイチさ
一方、執筆時点ではコレクションはリリースから3年以上経過した機能ですが、いまだに運用上辛い部分が残っています。
まずコレクションのパーミッションや内容の編集ができるユーザーが限られることです。コレクションの所有者とサイト管理者以上のユーザーのみ可能です。
参考:コレクション内のアイテムを整理する
- コレクションにアイテムを追加するには、コレクションを所有している必要があります。
- コレクションの所有者は、コレクションのパーミッションを構成できます。
Tableauは人に紐づくライセンス形態のため、この時点でコンテンツ整理の属人化まったなしですね。
プロジェクトで整理した場合は、対応するパーミッション付与されたユーザーなら誰でもプロジェクト内のコンテンツを整理できました。コレクションはそのような運用が難しいです。
UI上の操作で難しいならREST APIで代替できないかと考えるかもしれません。
残念ながら、Tableau REST APIはコレクション未対応のようです。
参考:Tableau REST API Help
(コレクションに対するMethodが無いことを確認ください)
APIはともかくとして、コレクションのパーミッション設定の強化を切に願います。プロジェクトのプロジェクトリーダー権限のように、コレクションをユーザーグループ用いて複数名で管理できるよう世界が来れば、もう少し現実的に運用できるように思いました。
最後に
コレクション機能はリリースから数年たちますが、長らく今一つ話題になっていなかった印象でした。
この機能はコンテンツ整理の文脈で訴求していたように思いますが、多くのユーザーはそれをプロジェクトで行っていた、行えていた印象なので、あくまでも「便利機能」の枠を超えられなかったのかもしれませんね、今にして思えば...
ただしコンテンツ整理と権限管理をセットで考えると、コレクションの価値もまた違って見えてくるかもしれません。なぜコレクションでコンテンツ整理を行う必要があるか。それはプロジェクトでのコンテンツ整理に限界があるからだ、という内容でした。
プロジェクトを権限管理に使ったときの歪みを、コレクションで吸収し進化させることができるのではないか、というアイデアでした。
一方で現在の仕様では属人化まっしぐらなので、コレクションのパーミッションの柔軟さを上げてほしいですね。小規模な利用ならともかく、ある程度の規模でのTableau利用におけるコンテンツ整理が属人化するのは、ちょっと妥当な運用にはなりにくいのでは...と。
この辺りはサイトをどのように管理して運用するかにも依存しそうですが。
もっと良いアイデアが思いついた方、ぜひ教えてください。そしてぜひ発信してみて下さい。Tableauの権限整理とコンテンツ整理のベストプラクティスについて、(自分の見識不足が大きいところは多々ありますが)普遍的な情報がどうにも少ないようにも思っています。
質問などありましたら、XかLinkedinまでお願いします。