Tableau Serverの基礎 - サイト管理を行うその前に（２）

# はじめに
本記事は、「Tableau Serverサイト管理入門」の一部として構成されています。
Tableau Serverサイトの管理を行うにあたって、必ず理解しておきたい重要な概念についてまとめています。

パート１は[こちらの記事](https://qiita.com/dandeehouse/items/3d9333d76ee7af2054ca)を参照ください。

:::note warn
本記事は Tableau Server Ver2022.1　時点の情報をもとに記載しています。
:::

# サイト構造の基礎
ここでは、管理対象のサイト構造および、サイトを構成する要素についてまとめます。
サイトには、「保存されるコンテンツ及びそれを集めたもの」と「サイト内で作業をするユーザとそれを集めたもの」が存在し、それぞれが「パーミッション」という概念で結ばれています。まずはこの構造を理解することが、サイト管理の第一歩だと思います。

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1945012/e538b7a7-d76f-7d45-51ed-43bf773af0e6.png">

:::note info 
Tableau Serverでは上記「サイト」を複数作成することができます。複数サイトがまとまったサーバ全体を管理する人が「サーバ管理者」となります。
一方、Tableau Cloudでは「サイト」が最上級の概念となるため、「サーバ管理者」は存在しません。
:::

<table>
    <tr>
        <th>要素名</th>
        <th>説明</th>
    </tr>
    <caption>サイトを構成する各要素</caption>
    <tr>
        <td>コンテンツ</td>
        <td>ワークブックやデータソース、Prepフローファイル等、Tableau Serverに配置される<strong>ファイルそのもの</strong>を指します。
            <br>
            ※この用語は（たぶん）Tableau Serverの正式な用語ではありませんが、以降の説明ではこの定義に従って使用します。
            <br>
            ユーザと違い、コンテンツが所属するプロジェクトは必ず1つです。
        </td>
    </tr>
    <tr>
        <td>プロジェクト</td>
        <td><strong>コンテンツを保存する領域</strong>です。普段使用しているPCの「フォルダ」「ディレクトリ」とほぼ同じ概念だと考えてOKです。
        <br>
        図のように、プロジェクトの中にプロジェクトを作って階層構造にすることもできます。図では最大２階層ですが、第３階層、第４階層とどんどん深くしていくことももちろんできます。（作成できる階層に上限はない…はず。）
        </td>
    </tr>
    <tr>
        <td>ユーザ</td>
        <td><strong>サイト内のコンテンツを閲覧・編集したり、サイトの管理を行う人</strong>を指します。
        <br>サイトの上位概念である「サーバ管理者」ユーザを除き、サイト内にユーザとして登録されない限りコンテンツにアクセスすることはできません。（「コアライセンス」を適用している環境においてはこの限りではありませんが、特殊ケースなので今回は説明を省略します。）
        </td>
    </tr>
    <tr>
        <td>グループ</td>
        <td><strong>複数のユーザをひとまとめにした概念</strong>で、パーミッション制御に使用されます。コンテンツに対してアクセス制御を行う際、「AさんとBさんとCさんとDさんにアクセスを許可する」といった具合にユーザごとに制御を行うのはユーザが増えてくるとかなり煩雑な作業となりますが、あらかじめ「AさんとBさんとCさんとDさんがいるグループ」を作っておけば、そのグループにいる人はアクセス可能、といった具合にまとめてパーミッションを管理できるようになります。
        <br>
        なお、コンテンツと異なり、サイト内のユーザは複数のグループに所属することができます。
        </td>
    </tr>
    <tr>
        <td>パーミッション</td>
        <td><strong>コンテンツに対する権限管理の総称</strong>です。ユーザやグループとコンテンツを結び付け、「この人（たち）はこのコンテンツにアクセスしてOK/NG」を決めていくものとなります。<br>
        パーミッションは「各コンテンツに対して設定する」ことも「プロジェクトに対して設定する（＝プロジェクトの中にあるコンテンツすべてに対して同時に設定する）こともできますし、「ユーザに対して設定する」ことも「グループに対して」設定することもできます。<br>
        かなり細かく設定できることはできるのですが、「コンテンツに対してユーザ単位で設定する」を乱用してしまうと、設定作業自体が大変になりますし、どこに何が設定されているのかを把握することも困難になります。どう設定するのがベストプラクティスなのか、という点については、別の記事で深く考えていきたいと思います。
        </td>
    </tr>
</table>

# ライセンス体系とサイトロール

Tableau Server/Cloudのライセンスを購入する際、Craetor, Explorer, Viewerという3種類のライセンス体系を組み合わせて購入することになります。一方。Tableau Server/Cloudのサイトにユーザを登録する際にも「サイトロール」という似たような概念が登場します。
ここでは、「サイトロール」と、Tableauライセンスの関係について理解を深めていきたいと思いますが、まずはざっくり、 **「各サイトロールのユーザをTableau Server/Cloud上に何人まで登録できるのか、上限がライセンスによって決まる」** と理解しておけばOKです。

## Tableauのライセンス体系

Tableauの公式サイト、[価格ページ](https://www.tableau.com/ja-jp/pricing/teams-orgs)に詳細が記載されていますが、まずは3種類のライセンスについて概要を理解しておきましょう。

<d1>
    <dt>Creator</dt>
    <dd>
        いわゆるパワーユーザ。このライセンスを購入すると、同時にTableau Desktop/Tableau Prep Builerのアクティベートに利用できるプロダクトキーが付いてくるので「Desktop使える人」というイメージを持つことが多いですが、もちろんWeb編集でブラウザ上で操作する権限もついてきます。<br>
        イメージ通り、Tableau Destkopで作成したワークブックやデータソースをTableau Serverにパブリッシュする、といった使い方がメインですが、必ず押さえておきたい点は<strong>Creatorがデータソースを作成してパブリッシュできる唯一のライセンスである</strong>という点です。Exploreは後述の通りワークブックを作成、保存することはできますが、データソースを保存することはできません。
    </dd>
    <dt>Explorer</dt>
    <dd>
        <strong>Web編集機能を使って</strong>ワークブックを作成、保存することができるライセンスです。このライセンスにはDesktopやPrep Builderのライセンスは付属しません。<br>
       他の人が作成し保存したワークブックを開いて変更したり、Creatorがパブリッシュしたデータソースを用いてイチからワークブックを作成することができます。
    </dd>
    <dt>Viewer</dt>
    <dd>
        CreatorやExplorerが作成したワークブックを<strong>閲覧するためのライセンス</strong>です。このライセンスを使用するサイトロールのユーザは、ワークブックを作成したり保存したりすることはできません。<br>
        他の人が作成したワークブックを閲覧し得られたインサイトもとに、アクションを起こす人がこのライセンスを使用することになります。<br>
    （余談）昔はこのライセンスではワークブック上のフィルタも操作できなかったので、使い勝手に疑問の残る形となっていたのですが、2022年9月時点ではViewerライセンスでもしっかりフィルタ操作ができるようになっています。よかった。
    </dd>
</d1>

## サイトロール

次に、Tableau Server/Cloud上で設定可能なサイトロールについて見ていきましょう。
詳細は[オンラインヘルプ](https://help.tableau.com/current/server/ja-jp/users_site_roles.htm)に記載されていますがかなり細かいので、重要なものをピックアップしてまとめなおしてみました。理解の助けになると幸いです。
なお、下表の「消費するライセンス」とは、「このサイトロールのユーザを1人登録すると、対応するライセンスを1つ使用する」という意味です。

|サイトロール| Creator | Explorer（パブリッシュ可） | Explorer | Viewer |
|:-:|:-:|:-:|:-:|:-:|
|消費するライセンス|Creator|Explorer|Explorer|Viewer|
|サイト管理者になれる（※1）| 〇  | 〇 |   |   |
|プロジェクトリーダー（※2）になれる| 〇 | 〇 | △（※3） | △（※3）  |
|Tableau DesktopやWeb編集からデータソースがパブリッシュできる| 〇 |  |   |   |
|Tableau Prep BuilderやWeb編集からフローがパブリッシュできる   | 〇  |   |   |　|
|Tableau Desktopからワークブックがパブリッシュできる| 〇 | △（※4） |   |   |
|パブリッシュ済のデータソースからワークブックが作成できる| 〇 | 〇 | 〇 |   |
|他の人が作成したワークブックを編集できる| 〇 | 〇 | 〇 |   |
|作成/編集したワークブックを保存できる| 〇 | 〇 | △（※5）  |   |
|保存されたワークブックを閲覧できる| 〇 | 〇 | 〇 | 〇 |
|<strong>他人</strong>に対するサブスクリプションを設定できる| 〇 | 〇 | 〇 |   |
|<strong>自分自身</strong>に対するサブスクリプションを設定できる| 〇 | 〇 | 〇 | 〇 |
|カスタムビューを作って、<strong>他の人に公開できる</strong>| 〇 | 〇 | 〇 |   |
|カスタムビューを作って、<strong>自分だけで使う</strong>| 〇 | 〇 | 〇 | 〇 |

なお、サイト管理者向けの記事のため詳細は割愛しますが、「サーバ管理者」サイトロールは、特殊な環境を除きCreatorライセンスを使用します。


<d1>
    <dt>※1</dt>
    <dd>
        Tableau Server/Cloud上では「サイト管理者Creator」「サイト管理者Explorer」と表記されます。
    </dd>
    <dt>※2</dt>
    <dd>
        プロジェクトに対して設定できる特殊なパーミッションで、「そのプロジェクトに対してなんでもできる権限」を指します。<br>
        プロジェクト内にサブプロジェクトを作ったり、プロジェクトやコンテンツに対するパーミッションを変更したりすることができます。
    </dd>
    <dt>※3</dt>
    <dd>
        プロジェクトリーダーとなっていても、サブプロジェクトの作成やコンテンツに対するパーミッション制御はできません。またサイトロールの制約に従い、プロジェクトリーダーとなっていてもワークブックの保存はできません。そのため、「設定自体はできるが、本来プロジェクトリーダーがやるべき業務の大半ができないため、意味がない」といえます。
    </dd>
    <dt>※4</dt>
    <dd>
        ライセンスの項で説明した通り、ExploreライセンスにはTableau Destkopのライセンスは付属しません。社内の他の環境でCreatorライセンスを購入しており、Tableau Desktopを使えている状況でのみ、このサイトロールであってもワークブックをパブリッシュすることができます。例えば…<br>
       環境1：Creatorサイトロールを割り当てられており、Destkop/Prep Builder用のキーをもらっている<br>
    環境2：Explorer（パブリッシュ可）を割り当てられている<br>
    →環境1でもらったTableau Desktopを使って、環境2にもワークブックをパブリッシュできる
    <br>といった場合です。      
    </dd>
    <dt>※5</dt>
    <dd>
        「個人用スペース」と呼ばれる、ログインしたユーザとサーバ/サイト管理者にしか見えないサンドボックス領域にのみ保存ができます。通常のプロジェクトには保存できません。
    </dd>
</d1>

:::note info
Explorer（パブリッシュ可）はちと長いので本記事及び関連記事では以後Explorer（P可）と表記します
:::

:::note warn
**（P可でない）Explorerって意味あるの？**
上表のとおり、Exploreサイトロールでは、ワークブックを作成することができてもそれを保存し他の人と共有することができません。製品としては、「アドホックに（その場限りに）分析する人」を想定してこのようなサイトロールが設定されていると思うのですが、私がかかわった環境でこのようなサイトロールが必要になるケース（作成はさせるが共有させない）に出会ったことはまだありません。
サイト管理を行う上では、Exploreが欲しいといわれたらExplore（P可）を設定する形でいいかな…と思っています。消費するライセンスも同じですし。
:::

:::note info
**ライセンスは下位互換**
ライセンスは、「そのサイトロールのユーザを何人まで登録できるか」に関係すると記載しましたが、「そのサイトロール **以下** 」というのが正確な動作で、対応するライセンスがなくても、Creator > Explorer > Viewer という関係の中で、上位のサイトロールに対応するライセンスがあれば作成ができます。
たとえば、Creatorを10人分購入しているが、ExplorerとViewerは購入していないような環境で、ExplorerやViewerサイトロールのユーザを作成できないのか、というとそうではなく、Creatorライセンスがあるため、「CreatorとExplorerとViewerを合わせて10人までは登録できる」という形になります。
:::

::: note info
**各サイトロールのユーザ登録数上限はサーバ管理者が決める**
Tableau Serverのライセンスは、Tableau Server全体に対して適用されます（適用するのはサーバ管理者の仕事）。このうちいくつが自分のサイトで使えるのか、についてはサーバ管理者が設定した内容に従います。サイト内における各サイトロールの登録上限数は、
・サーバ全体で分け合う：サーバに設定された上限に達するまで、各サイトで自由にユーザ登録ができる
・サイトごとに指定：「このサイトはCreator/Explorer/Viewerそれぞれ〇人まで」と決まっている
と2パターンの設定があるため、どちらの設定になっているか、自分のサイトで何人までユーザを登録してよいかはサーバ管理者に確認をしてください。
:::

### サイトロールとパーミッションの関係

サイト構造の説明で、コンテンツに対するアクセス制御を「パーミッション」で行うと記載しました。一方ここでは「サイトロール」という似ているような、ちょっと違うような概念が登場しています。
詳細については、別の記事、パーミッション制御の仕組みでまとめようと思いますが、まずは

* サイトロール：サイト全体でできることの「上限」を決める
* パーミッション：プロジェクトやコンテンツに対して、細かくできることを決める

と理解しておけば大丈夫です。
例えば、Creatorサイトロールのユーザであっても、それだけでサイト内のすべてのワークブックを編集できるようになるわけではなく、パーミッションで許可されたワークブックのみが編集できます。
一方、Viewerサイトロールのユーザが、パーミッションでワークブックの編集を許可されていても、サイトロール自体がワークブックの閲覧しかできないものであるため、「上限」に引っかかってこのユーザは編集をすることができません。

# 知っておくべきTableau Server特有の機能・操作
ここでは、Tableau Desktop単体では利用することがないけれども、Tableau Server環境下ではよく使われる機能や操作についていくつか紹介します。

## Tableau Serverへの「パブリッシュ」
ここまで何度か、ワークブックやデータソースをTableau Server上にアップロードすることを「パブリッシュ」と呼ぶと記載してきました。基本的な操作ですが、Desktop単体運用でパブリッシュすることはありませんから、ここでおさらいしておきます。
パブリッシュの方法には２通りあります。

**１）Tableau Desktopからパブリッシュ**
その名の通り、Tableau Desktopから作成したワークブックやデータソースをパブリッシュする方法です。
手順は[オンラインヘルプ](https://help.tableau.com/current/pro/desktop/ja-jp/publish_workbooks_howto.htm)を参考にしてください。
また、パブリッシュの際に、「ワークブックにデータを含んでパブリッシュする（≒twbx形式のワークブックをパブリッシュする）」方法と、「ワークブックとデータソースを別々にパブリッシュする（≒twb形式のワークブックとtds（ライブ）/tdsx（抽出）形式のデータソースをパブリッシュする）」方法があることも押さえておいてください。（後者がおすすめです。その理由は別の記事で説明したいと思います。）

**２）Web編集でパブリッシュ**
Webブラウザ上で直接ワークブックを作成して保存する方法です。
こちらも詳細手順は[オンラインヘルプ](https://help.tableau.com/current/pro/desktop/ja-jp/getstarted_web_authoring.htm)を参考してください、となるのですが、これまでDesktop中心に操作をされていた方にはなじみが薄いと思いますので、大まかな手順だけ記載しておきます。

1. Tableau Serverの「検索」画面上で「新規＞ワークブック」を選択
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1945012/1d69301c-b550-ab03-7653-06ba957debfe.png">


2\. データソースに接続
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1945012/698bd565-adfa-fb62-a7d6-a53f9c16147a.png">

Explorer、Explorer（パブリッシュ可）サイトロールのユーザは、「このサイト上」のタブから、すでにパブリッシュされているデータソースを選択します。
Creatorサイトロールのユーザは上記に加え、「ファイル」や「コネクタ」タブからExcel等のファイルをアップロードしたり、データベースに接続することもできます。

3\. ワークブックを作成
Tableau Desktopと同じようにワークブックを作成します。

4\. ワークブックを保存（パブリッシュ）
右上の「パブリッシュ」ボタンからワークブックを保存します。
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1945012/505b23a3-5e78-ee56-4595-8b80c0369c6c.png">


保存場所及び名称を聞かれるので、選択/入力して「パブリッシュ」で完了。

<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1945012/2f89b48a-f9cc-114f-2ef5-61c22f34b090.png">

ちなみに、小さく出ている「個人用スペース（プライベート）」というのがサイトロールの項で記載したサンドボックス領域のことです。Explorerサイトロール（パブリッシュ可でない）のユーザはここにしか保存できません。

## カスタムビュー

フィルタ操作によりデータの探索を行う際、「毎回この条件でフィルタするんだけど」といった条件のセットが存在し、かつユーザによってそのセットが異なる、といった状況は容易に想像できます。
（店舗別/支店別の実績ダッシュボードで、自店の情報を毎回表示するなど）
そんな時に使えるのがこの「カスタムビュー」機能です。

* 設定したフィルタ条件を保存しておいて、いつでも呼び出せる
* ワークブックを開いたときに自動でそのフィルタが設定された状態にできる
* （Explorer以上であれば）作成したカスタムビューを他の人に公開できる

といったことができます。
とても便利ですし設定も簡単なので、私が関わっている環境でもよくつかわれています。（ユースケースはやっぱり組織別の実績ダッシュボード等ですね）
サイト管理者が設定する内容ではないですが、ユーザに「こんなこともできますよ」とオススメしてもらえたらと思います。

設定手順は[オンラインヘルプ](https://help.tableau.com/current/pro/desktop/ja-jp/customview.htm)にスクショ付きで詳細に説明されています。

## コレクション

2021年のバージョンアップで追加された新しい機能ですが、「お気に入り」機能や、自作のメニュー画面ダッシュボードに代わる機能になりうると個人的に注目しているのでここで紹介したいと思います。

本機能でできることは「関連するワークブック等を集めたリンク集を作成して、Tableau Serverのメニュー画面に一覧表示する」なのですが、従来のお気に入りと比較して

* 作成したコレクションを他の人に公開できる（お気に入りは自分だけ）
* 一覧を複数作成できる（お気に入りは一つ）

といった違いがあります。

コレクションの作成方法はまたしても[オンラインヘルプ](https://help.tableau.com/current/pro/desktop/ja-jp/collections.htm)の詳細手順を参照ください、となりますが、コレクションの利用方法として考えられる姿について少し書いてみたいと思います。

下の画像のように、利用シーン、目的、閲覧対象者など、一定のまとまりごとにコレクションを作成し、これを見てもらい人に公開することを考えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1945012/c52d8b2f-e733-80fc-8d90-536f7169138a.png)

営業部メンバー向けに、毎日の数値確認に使ってほしいワークブックをまとめて「営業部デイリー確認用viz」コレクションに、幹部層等特定の会議の参加者向けのワークブックを「営業戦略会議用Viz」に追加します。ちなみにコレクションの中を開くとこんな感じでお気に入りのような表示が出ます。ワークブックだけではなくプロジェクトもコレクションに入れられます。（中身はみんな大好きスーパーストアですみません）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1945012/9afe25d9-235c-634c-6e15-69dbc5515a8f.png)

このコレクションを見せたい人に公開するには、それぞれのコレクションの設定で、公開したいユーザまたはグループを選び、テンプレート「ビュー」を設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1945012/83c8de01-7742-4491-e1f1-db3650ecff54.png)

これで、「営業戦略会議メンバー」というグループに入っている人がTableau Serverにログインした際、メニュー画面の「コレクション」にこのコレクションが表示されるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1945012/6cb79eeb-8a52-3d1f-41b7-dd7682020b37.png)

同様に、「営業部デイリー確認用viz」コレクションを例えば「営業部_社員」といったグループに公開しておきます。

このようにコレクションをうまく使うことで、利用シーンに応じ「見てほしいワークブックの一覧」を簡単に作成することができます。
コレクションにはデータソースを登録することもできますので、例えば分析者向けに「顧客分析用データマート一覧」といったコレクションを作成して公開する、といった使い方も考えられますね。

このような使い方を実現するために、Tableauワークブックを使い、他のワークブックへのリンクを集めたポータル画面ダッシュボード（[オンラインヘルプにある例](https://help.tableau.com/current/server/ja-jp/portal_dashboard.htm)）を作成しているケースもあるかと思います。それはそれで見た目もわかりやすく良いのですが、いかんせん作成の手間がかかりますので、コレクションを使って効率的にメニュー・ポータル機能を提供するといった使い方は管理負荷の面でも個人的に期待大です。

なお、コレクションの公開にあたってはどのようなユーザ、グループでも設定可能なので、「営業戦略会議メンバー向けのやばいダッシュボード集を全社員に公開してしまった！」ということが起きてしまう可能性が考えられます。このリスクについても考えられており、コレクションに登録したコンテンツ（ワークブック等）を実際に見るには、コンテンツそのものに閲覧権限が付いてないといけないので、コンテンツ作成者が適切に権限設定をしている限り、仮にコレクション公開範囲を間違ったとしても大事には至らないようになっています。
先の例ですと、「営業戦略会議用Viz」コレクション内に登録したワークブックの権限制御が適切になされており、「営業戦略会議メンバー」のみが閲覧できるように設定されていれば、仮にコレクションを全社員に公開したとしても、ワークブックの閲覧権限がないユーザは、「コレクションの中身がからっぽ」の状態に見えます。

# おわりに
本記事での説明はここまでです。「その前に」がえらく長くなってしまいましたが、次の記事からは、Tableau Serverサイト管理の中身のまとめに入っていきたいと思います。