Qlik Senseを初学者の方で、「データモデルビューに“$Syn 1”など見慣れないテーブルが出てきた」「思った通りにフィルタが機能しない」など場面に直面したことがあるかもしれません。その多くの原因となるのが合成キーです。
本記事では、合成キーとは何か、またその解消方法を解説します。
Qlik Seneでは、複数のテーブルにおいて同じ名前のフィールドが2つ以上存在しているとき、内部的に合成キーが自動で作成されます。 合成キーは「$Syn 1」「$Syn 2」と自動生成されたテーブルとしてデータモデルビューアに表示されます。
合成キーが作られると、Qlik Senseは合成キーとなっているフィールドの組み合わせでテーブル同士を結合させることを自動判断で行っており、意図しない結びつきやパフォーマンス悪化の原因となることがあります。
以下のような状況で合成キーが作成されます。
先ほど例としてあげた以下のテーブルの合成キーを解消します。
合成キーが作成されている場合、リロードログに$Synテーブルの作成メッセージと合成キーがいくつ作成されているか表示されます。
元のロードスクリプト
今回「商品コード」と「商品分類コード」で同じフィールド名が2つ以上存在しているため合成キーが作成されています。
作成されたテーブル
合成キーは、同じ名前のフィールドを複数テーブルが持っていることで自動作成されるQlik Senseの仕組みです。また、合成キーは意図しない結びつきやパフォーマンス悪化の原因になるので、データモデルビューアでテーブルの結びつきは正しいのかを確認しておくことが大切です。