🍊

Tableau Serverにおけるコンテンツ管理をどう行なうべきかという話

2024/03/29に公開

はじめに

こんにちは。

いま所属している楽天という会社では,出店いただいている店舗様への提案を行なうECコンサルタントが数百人単位で所属しています。また,そのほとんどがTableau Serverを利用した分析結果をもとに提案を行なっています。また,ECコンサルタント以外にもユーザがいて,ひとつのサイトの利用者は1000人を超えます。そんなサイトの管理者(Site Administrator)として,ユーザたちに心おきなくTableau Serverを使ってもらうべく,ここ1年くらい頑張っています。

解決したかったこと

ともなれば,大変なのはTableauユーザーたちが各々Publishするコンテンツの整理整頓です。
ここでコンテンツとしているのは,おもにワークブックとデータソースです。

ある時点までは,とくにルールを設けず,そのときどきの個人の判断でコンテンツをプロジェクト(Tableau Serverにおいてフォルダのようなもの)に押し込めてきました。また,ユーザから見たいという要望があったコンテンツも,そのユーザ個人に対して権限を付与する,ということを行なっていました。

ところが,このオペレーションにより,以下のような課題が出てきました。

  • 見たいコンテンツが探しにくくなる
  • 所属部署の関係で閲覧できないままにしたいコンテンツが閲覧できてしまう/閲覧しないといけないユーザが閲覧できない

zennでお話しすること

  • コンテンツを管理するためにSite Administratorとしてやったことの概要
    • この記事です。
  • プロジェクトのAsset Permissions設定を管理するダッシュボードを作った話
    • 別記事にします。Tableau Serverリポジトリからどうデータを持ってきたか,とか。

取った解決策

この状況を解決するべくいろいろ調べている中で,Tableau社から下記ドキュメントがベストプラクティスとして提供されていました。(参照ドキュメント[1], [2])

まとめると,

  • コンテンツは格納プロジェクト,ユーザはグループに,それぞれまとめることで,管理の対象となる量を減らすこと
  • コンテンツを格納するプロジェクトにてAsset PermissionをLockedにすること

です。

コンテンツは格納プロジェクト,ユーザはグループに,それぞれまとめることで,管理の対象となる量を減らすこと

まずひとつめの項目に関してです。ユーザグループの作成には,組織によってはActive Directoryを利用していると,メーリングリストのような形でTableau Serverにインポートできます。さらにtabcmdなどのコマンドラインユーティリティを活用して,1時間毎に最新の状態に手作業無しで更新する,ということができます。

ただしコンテンツ(ワークブック,データソース)のプロジェクトへの格納は,どうしても各ユーザへのルールの周知や教育,そして時々刻々コンテンツを正しい場所に配置しようとする細やかな意識が必要なので,ここは地道に行なうしかないと思います。なにか効率の良い方法があればコメントで教えていただけると嬉しいです。

コンテンツを格納するプロジェクトにてAsset PermissionをLockedにすること

ふたつめの項目です。このAsset Permissions機能は,プロジェクトの権限設定をその中に格納されたコンテンツ群にも同期させる,というものです。これにより,たとえばコンテンツが100個あったとしても,権限を設定したプロジェクト10個にきちんと振り分けておけば,権限設定を行なう対象は10個になります。

関連する設定項目としては2種類,それによって設定されるプロジェクトの状態は3種類あります。上から,権限を設定する対象物の数が減り,管理がやりやすくなります。項番2は,管理の手間を減らしつつ,業務の実態に合わせたコンテンツ管理ができる印象です。自分が管理しているサイトでは,項番1にすることを優先しつつ,必要に応じて項番2も使用しています。

項番 Asset Permissions Apply for nested projects
1 Locked TRUE (Checked)
2 Locked FALSE (Unchecked)
3 Customizable FALSE (そもそも設定できない)

図にすると以下のようになります。同じ色で塗られた部分が,同じ権限設定になっています。色が多ければ多いほど,それだけ異なる権限設定にできて臨機応変な状況に対応できますが,言い換えると,管理しないといけない設定が多くなり,抜け漏れが発生しやすくなります(現に弊社では余計なオペレーションが発生しました)。必要なければ,項番1にするのがよいと考えます。
Asset Permissions設定と格納コンテンツに対する権限設定状況

問題があるとしたら,Tableau ServerでそのAsset Permissions設定がLockedになっているかを確認するのが少し面倒ということでしょうか。Web上で確認するにはページを行き来する必要があるので。

なので,Tableau Serverリポジトリに接続して,いまTableau Server上の設定がどうなっているかというメタデータを取得し,それをダッシュボードとして監視できるようにしました。アラート機能を使えば,Asset PermissionsがLockedになっていない(Customizableになっている)プロジェクトがあったときに通知がもらえます。画面はこのような感じです。
Project Setting Monitor
またTableau PublicにもPublishしましたので,ご自由に使ってください。
https://public.tableau.com/app/profile/nakagawa.shota/viz/ProjectSettingMonitor/ProjectSettingMonitor

これを実現するときに,どのようなデータをどのようなクエリで引っ張ってくるか,というのは,別の記事にまとめたいと思います。

おわりに

整理整頓は,データや資料を扱うプラットフォームにつきまとう永遠の課題だと思うので,ほかの管理者のみなさんの手間が少しでも減らせれば嬉しいです。また,こういうことをしたほうがいいよとか,うちはこういうことをしているよとか,そんな情報もお待ちしています。

余談

弊社では現在社員による楽天モバイルの紹介キャンペーンを実施しています!
2024/04/02現在,楽天カードとの同時申込で最大30,000ポイントを得られるチャンス(楽天カードをお持ちの方でも20,000ポイント)ですので,これを機にご確認いただけますと幸いです。気になることがあればわたくしまでご連絡ください。よろしくお願いいたします。
下記リンクより進んでいただき,ご自身の楽天会員情報でログインのうえ,ご申請ください。リンクが怪しすぎるのが良くないところ。
https://r10.to/hkeO5H

参照ドキュメント

  1. プロジェクトを使用したコンテンツへのアクセスの管理 - Tableau

https://help.tableau.com/current/server/ja-jp/projects.htm

  1. プロジェクトを使用したパーミッションの管理 - Tableau

https://help.tableau.com/current/server/ja-jp/permissions_projects.htm

  1. アセット パーミッションの設定 (プロジェクトのロック) - Tableau

https://help.tableau.com/current/server/ja-jp/permissions_projects.htm#アセット-パーミッションの設定-プロジェクトのロック

Discussion