Tableau Desktopでユーザーフィルターを設定して、見る人によって違うデータが表示されるようにする #tableau

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。大阪オフィス唯一のDI部メンバー、tamaです。

今回はTableauのユーザーフィルターという機能についてご紹介します。(本エントリも、最初はTableau Server認定資格絡みのシリーズとして書こうと思ってたのですが、どうも試験ガイドに記載が無いっぽいので、通常シリーズとして投下します。)

ユーザーフィルターとは?

その会社(または部署)にとって大事なデータを扱ったワークブック(ビュー)は、閲覧できる人を制限したいですよね。Tableau Desktopだけであれば、.twbxファイルを、アクセスが限られた共有フォルダに置く等で対応できます。Tableau Serverを導入していれば、その豊富な権限設定で、アクセスを非常に柔軟に設定することができます。

しかし、上記はワークブック(ビュー)そのものに対してのセキュリティです。

ユーザーによっては、このようなニーズもあると思います。「同じワークブックを見てほしいんだけど、あるユーザーが見た時だけ、このデータが表示されないようにしたい」

同じビュー内で、閲覧ユーザーによって表示を変えたい…要するにユーザーを起点としたフィルターをかけたいということです。Tableauではこれを「行レベルのセキュリティ」と呼んでいます。

この機能は「ユーザーフィルター」という機能を使えば、実現可能です。ユーザーフィルターには2種類あるのですが、今回はマニュアルのユーザーフィルターを見ていきます。

マニュアルのユーザーフィルター

各ユーザーがアクセスできるデータを手動で設定するユーザーフィルターです。実際にやってみたいと思います。

まず、ユーザーフィルターを設定したいワークブックを開きましょう。そして、上部メニューから、まずTableau Serverにサインインします。

Tableau Serverにサインインすると、Tableau Desktopの右下に自分のユーザー名が表示されます。

上記について確認できたら、またメニューの「サーバー」を選んで、「ユーザーフィルターの作成」を選びます。すると、その単位でフィルターをかけたいか選ぶメニューが出てきます。今回は都道府県毎にフィルタリングしたいと思うので、「都道府県」を選択します。

今回は、「藤波辰爾」というユーザーが見た時だけ、奈良県のみにフィルターがかかるようにします。つまり、「藤波辰爾」というユーザーは、このワークブックでは、奈良県のデータしか見れなくなります。画面通り設定したら、OKを選択しましょう。

※ここで、見落としそうなのが、他のユーザーについてです。他のユーザーに対して制限をかけない場合は、ちゃんと他のユーザーではフィルターをかけないように明示的に設定する必要があります。(設定しておかないと、全部表示しないようになってしまう)

ユーザーフィルター自体はこれで作成できました。では、このユーザーフィルターをどのように適用すればいいのでしょうか。実は、このユーザーフィルターは「セット」扱いとなります。セットの欄を見てみると、先程作成したユーザーフィルターができているので、これをフィルターにドラッグしましょう。

※この方法の場合、ユーザーフィルターはコンテキストフィルターとして認識されます。

これでユーザーフィルターが適用されました。実際にフィルタリングされているか確認しましょう…といきたいところですが、確認のたびに毎回パブリッシュして、そのユーザーに確認をお願いするのは面倒です。また、設定が間違っていて、見られたくないデータを見られてしまうリスクもあります。

そういう時のために、Tableau Desktop上で擬似的にユーザーフィルターをプレビューできる機能があります。画面右下のユーザー名が表示されているところを選択して、ユーザーフィルターの対象となっているユーザー名を選択すると、そのユーザーが見た時のフィルター結果が表示されます。

「坂口征二」というユーザーはフィルターをかけてないので、全データが見えています。

「藤波辰爾」というユーザーに切り替えると、奈良県しか表示されません。ちゃんとユーザーフィルターが機能していますね。

後は、このワークブックをパブリッシュすれば、「ユーザー毎にフィルターをかけたワークブック」の完成です。

注意点

ユーザーフィルターは便利ですが、手動で設定する必要があるため、ユーザーが増えた場合の対応が面倒という弱点があります。…実は、そういう時のための「自動でユーザーフィルターをかける」機能があるのですが、それは別のエントリで紹介したいと思います。

おわりに

今回は手動のユーザーフィルターについて見てきました。データ自体を分けてしまって、ユーザー毎にワークブックを作成して死にそうなユーザーにはとても魅力的な機能だと思います。ただし、何でもかんでもユーザーフィルターで制限をかける運用も、それはそれで大変だと思うので、自社の要件に合わせて、バランスのいい運用をこころがけたいですね。

参考