見出し画像

Tableau Serverのリポジトリについて

PNDと申します。
総合メディア企業でデータ活用を推進するCoE部門の一員として働いています。
2月(正確には1月31日)からTableau DATASaberにチャレンジしています。
私は現在、Tableau Serverの管理者的な立場でもいまして、Tableau Serverの利用状況などをリポジトリを用いてウォッチしたりもしています。
このようなニッチな情報をあまり見たことないなと思い、ざっくりと書いてみようと思います。

1. Tableau Serverのリポジトリとは

Tableauのサイトを引用する形になるのですが、Tableau Serverのリポジトリとは、下記のことを指します。

すべてのユーザー インタラクション、抽出の更新などに関するデータを格納する PostgreSQL データベースです。リポジトリへのアクセスを有効にして、Tableau Server のパフォーマンスの分析および理解にリポジトリ内のデータを役立てることができます。

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

簡単に言いますと、Tableau Serverでのユーザーの行動や、実行されている抽出作業などの履歴、また、Tableau Serverに登録されているワークブック名やデータソース名、ユーザー名などの基礎情報が格納されたデータベースになります。
こちらの機能を利用する際には、Tableau Serverを構築する際に、リポジトリへのアクセスを有効にする必要があります。
詳しい手順はTableauのヘルプに記載がありますので、そちらをご確認ください。

windowsの設定方法
linuxの設定方法

設定しておくと、誰がどのくらい利用しているのかだったり、どのワークブックが良く見られているのかなどがモニタリングしやすくなります。
また、ただモニタリングするだけでなく、利用がされている部署とされていない部署でどのような差があるのかを分析できたり、利用されていない部署での課題を発見する行動に移せたりなど、様々な用途で利用が可能になります。
TableauのCoE部門の担当者だと欲しいと思える情報がたくさん格納されますので、これを機にリポジトリを有効化してみてください。

2. リポジトリの中に入っているデータ

リポジトリのデータを把握するためには、リポジトリの定義書(英語)を読まなければなりません。
残念ながら、定義書は英語しかないです。いつか日本語のもの出てくれたらいいなと思ってます(笑)
ただ、例えば「public.datasources」などのように、データソースの一覧が入った定義書だななどのように、Tableauを利用しているユーザーであれば、読める英語であることがほとんどですので安心してください。
定義書の読み方ですが、私は下記のように読んで利用しています。

  1. 何の情報をTableau上で可視化したいかを検討する。

  2. Index一覧のテーブル名とテーブルの説明内容を確認する。

  3. テーブルのカラムと外部参照キー情報を確認する。

  4. Tableau Desktopでデータをつないで可視化する。

1については言わずもがなですが、何のために可視化をするのかを整理します。ユーザーの行動履歴なのか、Tableau Serverに入っている基礎情報の可視化なのかなど、用途によって利用するデータは異なってくるかと思います。

2については、indexが定義書の最初にありますので、そこから欲しいデータを探し出します。基礎情報であれば、public.<データ名>や、public.hist_<データ名>(イベントログの情報と紐づけるマスタ)を選択しますし、イベントログなどの履歴情報であれば、public.historical_eventsを選択したりします。
他にもいろんなデータが格納されますので、詳細は定義書を見てご確認いただければと思います。

3については、1で可視化したい内容がテーブルに存在するかだったり、結合の際にどのテーブルと結合をすればいいかを判断するために行います。
下の画像を確認してもらえたらと思いますが、テーブル定義の最後にオレンジ色の枠があります。このオレンジ色の枠に記された内容がいわゆる外部キーと主キーの関係を記した内容になります。

ですので、テーブルの関係性などもこちらの定義書で確認ができるようになっています。

最後に必要なテーブルデータをTableau Desktopにつないで可視化を行っていくという流れで可視化を行っていきます。

では、私が良く利用するデータテーブルと、私がデータを可視化した際にはまった罠をご紹介します。

1. マスタテーブル

  • public.(hist_)sites・・・TableauServerのサイト情報のマスタ

  • public.(hist_)users・・・TableauServerに登録されているユーザー情報のマスタ

  • public.(hist_)workbooks・・・TableauServerにパブリッシュされているワークブック情報のマスタ

  • public.(hist_)datasources・・・TableauServerにパブリッシュされているデータソース情報のマスタ

  • public.(hist_)projects・・・TableauServerに存在するプロジェクト情報のマスタ

  • public.(hist_)data_connections・・・ワークブックやデータソースに含まれるデータソース情報のマスタ

  • public.(hist_)views・・・TableauServerにパブリッシュされているビュー情報のマスタ

  • public.historical_event_types・・・イベントログのイベント名が格納されたマスタ

※hist_については、public.historical_eventsのテーブルをつなげる際に利用します。イメージは、public.historical_enentsのhist_workbook_idとpublic.hist_workbooksのidをキーにして結合して、その時のワークブックの情報を取得、さらにpublic.hist_workbooksのworkbook_idとpublic.workbooksのidを紐づけして、現時点のワークブックの基礎情報を取得するというイメージで結合していきます。

2. トランザクション

  • public.historical_events・・・Tableau Serverで発生したイベントの履歴情報

行動履歴などについてはこちらの情報を使います。

余談:私が陥った罠について
ビューの閲覧数の情報を取得して、各サイトのPV数や利用者数などを時間単位で可視化しようとした際に、「public.views_stats」というテーブルを始め利用してしまいました。
ですが、このテーブルは統計情報ということで、IDをキーに情報が上書きされる仕組みとなっていました。当時このテーブルを使って、年月日単位と時間単位で過去の平均閲覧数を可視化していたのですが、例えば「昨日のAM9時の実績が昨日は100PVあったのに、今日見たら昨日の実績が80PVに減っていた。」なんて事象が発生してしまいます。
ですので、行動履歴はhistorical_eventsのIDをカウントしてPV数などを計測しましょう。

3. リポジトリのデータを可視化

リポジトリにあるデータをTableau Desktopにつなげるようになったら可視化をしていきましょう。
私が作成したものを一部ご紹介します。

1. データベース接続

postgreSQLに接続します。

2. 使いたいデータテーブルをドラック&ドロップ

ここでは、イベントログの情報を用いてPV数等を可視化したいため、このように結合しました。

全体図
historical_eventsとhist_projectsの結合
historical_eventsとhist_sitesの結合
historical_eventsとhist_usersの結合
historical_eventsとhist_workbooksの結合
historical_eventsとhistorical_events_typesの結合
hist_workbooksとworkbooksの結合
workbooksと_usersの結合

リレーションシップ使ってしまっていますが、結合使った方がパフォーマンスは良くなるかもしれませんね、、、

3.あとは思いのままに可視化をしましょう

あとは何を見せたいかを明確化したうえで可視化を行っていきましょう。
私が可視化した内容を少しだけお見せします。
当月のリアルタイムのPV数、UU数をマクロ的な視点で確認したかったということから、対前月比も表した実績カード、実績の推移、サイトごとのPV数ツリーマップ、そして平均実績のハイライト表を作成し、Tableau Serverの利用状況をパッと確認できるものを作りました。
※一部社外には公開できないデータがありますので、数字や判例は非表示とさせていただきます。

モニタリングを行うことで、利用者数目標を立てたり施策検討をおこなったりすることができます。
私自身もこのダッシュボードで施策検討を行っており、私の会社では平日の日中に、Tableau Serverに負荷がかかってしまっていることが課題としてあります。そのため、パフォーマンスに関する勉強会を今度開催することになったのですが、そこの勉強会で、「アクセスが集中してしまっている時間帯があるので、できるだけあまり利用者が少ない時間帯にTableau Serverを利用しましょう。」ということを、これを見せながらお話する予定です。

このようにTableau Serverの状況を可視化して、新たなアクションを起こせるという面でも、リポジトリの有効化と活用はおすすめです。


この記事が気に入ったらサポートをしてみませんか?