以前、Tableau Server Repositoryを有効化する記事を投稿しました。
今回は実際にRepositoryのデータベースを使ってダッシュボードというほどではないですが、
現場で使えるワークブックシートを作成します。
まずはRepositoryへのアクセスです。
Tableau Server Repositoryへの接続
Tableau Desktopを起動します。
接続方法は「PostgreSQL」を選択します。
接続設定画面が起動しますので、以下を入力し、サインインします。
Server:Tableau Server がインストールされているIPもしくはホスト名
Port:8060
Database:workgroup
Username:readonly
Password:任意に設定したパスワード
カスタムSQLの作成
サインインすると以下の画面が表示されます。見慣れた画面かと思います。
左サイドメニューにテーブル一覧が表示されます。
ここで各テーブルを右のデータコネクトするためのキャンバスで結合するのも良いですが、今回はカスタムSQLを使用します。
New Custom SQLをクリックすると、以下が起動します。
SQLのクエリをセットし、OKをクリックします。クエリの紹介は後述します。
クエリをお好きな名前に変更します。ここではそのままにします。
Update NowでSQLの結果を返します。
ユーザー管理のSQLのご紹介
ここで、今回使用するSQLをご紹介します。
select system_users.id
,system_users.name as user_name
,system_users.friendly_name as user_friendly_name
,system_users.state
,users.site_role_id
,site_roles.name as site_role_name
,site_roles.display_name as display_name
,group_users.group_id
,groups.name as group_name
,users.login_at + '9 hour' as login_at --日本時間に調整
,system_users.created_at + '9 hour' as created_at --日本時間に調整
,system_users.updated_at + '9 hour' as updated_at --日本時間に調整
,cast(1 as numeric) as belong --所属グループカウント用
from system_users
left join users
on system_users.id = users.system_user_id
left join site_roles
on users.site_role_id = site_roles.id
left join group_users
on system_users.id = group_users.user_id
and group_users.group_id <> '2' --2=All Usersは除外
left join groups
on group_users.group_id = groups.id
where (system_users.id <> 1 and system_users.id <> 2 and system_users.id <> 3) --1=_system 2=guest 3=サーバ管理者 は除外
order by system_users.id
テーブルは以下を使用しました。
テーブル | 説明 |
---|---|
system_users | ユーザーの名称や状態を管理しています。 |
users | ユーザーのログイン時間やロール情報を管理しています。 |
site_roles | サイトロール名称や情報を保持しています。 |
group_users | ユーザーの所属グループを管理しています。 |
groups | グループの名称を管理しています。 |
テーブルの詳細はこちらをご覧ください。
Workgroups Database
Introduction
The following “data dictionary” provides information about the tables and views in the “workgroup” PostgreSQL database of the Tableau Server repository. This database provides persistent storage for Tableau Server and is primarily intended to support that application.
https://tableau.github.io/tableau-data-dictionary/2020.1/data_dictionary.htm?_fsi=fgiDE7cI
Desktopでワークブックを作成
上記SQLを使って、早速Desktopで作業します。
単純にuser_nameとuser_friendly_name、site_role_name、group_name、belongを使っただけで以下のようなリストを作成することができます。
※ライセンスの関係上、全員Unlicensedになってます。すみません。
縦展開にユーザー情報、横展開に所属グループのチェック情報。
1の立っている部分が所属のグループ。
belongを外し、縦展開
ライセンスがあれば、site_role_nameに以下の内容が表示されます。
site_roles
結構、ユーザーが多くなるとライセンスの管理で誰が何のロールか管理しきれなくなることありますね。
そして、ここにさらに、login_atを加えて、最終ログイン状態を付け加えて、ユーザーの利用状況を見たりもできます。
さて、今回はTableau Server Repositoryのユーザーとグループのテーブルを使って、ユーザーリストを作成するための初歩の初歩をご紹介しました。
このレベルであっても、現場であると意外と便利だったりします。
50人程度のユーザーであれば、Tableu ServerのUIのみで十分管理できますが、100、200と増えた場合はぜひRepositoryを使って、色々とダッシュボードを作り、運用監視体制を整えることをお勧めします。
次回はRepositoryを使って、アクセス履歴等、ユーザーのアクション情報を監視するためのSQLをご紹介します。
では