Tableau 2020.2 で用意された論理レイヤーは便利なのか

メモ:  Category:blog

先日、 Tableau 2020.2 へバージョンを上げたところデータソースにテーブルが表示されていないことに気づきました。 Tableau 2020.2 では、従来までの物理テーブルの結合を定義したものとは別に「論理レイヤー」 と呼ばれる「物理レイヤー」の上位に物理レイヤー同士の関係を定義するレイヤーが追加されています。

使ってみると便利であるのですが、従来の考え方と違うのでシートなどのビュー設計も変わってきます。

Tableau 2020.2 のリレーションシップ

それでは、どこが便利になっているのか実際に見ていきます。次のような生産目標データと生産実績データを用意してみました。

生産目標:

生産目標データ

生産実績:

生産実績データ

目標は、そのショップの1日の生産目標であり実績はそのショップで作業が完了した品目の明細を想定しています。日付とショップで2つのテーブルを内部結合した場合、次のように目標のレコードが実績の各レコードに対応した形で表れてくると思います。

内部結合したデータ

Tableau 2020.2 より前のバージョンで同じようにデータソースを作成すると、同様のデータが出来上がります。

Tableau 2020.2 より前の Tableau

なんとなく不都合なのが、結合することにより目標側は相手側の行数分膨れ上がってしまうことです。

結合で不都合な点

この状態を Tableau の「テキスト表」で表現してみると目標数が2倍の 6,000 になってしまうことが確認できます。あたり前といえばあたり前なのですが、結果として目標は 3,000 のままで実績数が加算されていくことを期待してしまいます。このまま運用に入ったとしたら実績が発生する都度目標も増えてしまい一向に達成することができなくなってしまうでしょう。

Tableau 2020.2 より前のテキスト表

同じデータを使って Tableau 2020.2 のデータソースを設定してみます。まず、生産目標に接続すると画面右に「生産目標」テーブルとデータが表示されます。次に生産実績表を追加します。左ペインの接続部部に2つのファイルが表示されます。 Tableau 2020.2 より前の Tableau 同様にシート項目にある生産実績をドラッグすると次のような表示となり今までと違っていることが確認できます。これは、 Tableau 2020.2 から追加されたデータ ソースの論理テーブル間で作成した柔軟な接続線で「リレーションシップ」と呼ばれます。 Tableau のヘルプには、「親しみを込めて関係を ヌードル と呼ぶ人もいます。」と書かれており「ヌードル」と呼ばれることもあるようです。

Tableau 2020.2 のデータ ソース

ドロップすると「リレーションシップの編集」というダイアログが表示されるので結合したいフィールドを選択します。今回は複数結合したいので一旦「日付」を選択して閉じたのち、フィールドをさらに追加を選択して「ショップ」フィールドも結合条件に加えます。

リレーションシップの編集

Tableau 2020.2 より前のバージョンでは、テーブルを結合するとテーブル間にベン図が表示され結合した結果のデータが一部表示されていましたが Tableau 2020.2 では結合後のデータが表示されることは無く選択された1つ1つのテーブルのデータのみが表示されます。

Tableau 2020.2 のデータ ソース

この状態を Tableau の「テキスト表」で表現してみると Tableau 2020.2 では目標数が 3,000 となっており実績は合計された 130 となっていることから期待した結果として表示されています。 Tableau 2020.2 では、「論理レイヤー」が追加されこの辺りを Tableau がうまく管理してくれるようになります。

Tableau 2020.2 のテキスト表

Tableau 2020.2 より前のバージョンでは、平均をとってみるなどのひと手間が必要でしたが Tableau 2020.2 からは設計次第で容易に表現することができそうです。まだまだ新機能がありますので少しずつ掘り下げていきたいと思います。

bluenote by BBB