お問い合わせ
2 分で読むことができます。

【初学者向け】Qlik Senseで作成される合成キーとは?その解消方法を解説

2025年11月04日

はじめに

Qlik Senseを初学者の方で、「データモデルビューに“$Syn 1”など見慣れないテーブルが出てきた」「思った通りにフィルタが機能しない」など場面に直面したことがあるかもしれません。その多くの原因となるのが合成キーです。
本記事では、合成キーとは何か、またその解消方法を解説します。

合成キーとは

Qlik Seneでは、複数のテーブルにおいて同じ名前のフィールドが2つ以上存在しているとき、内部的に合成キーが自動で作成されます。 合成キーは「$Syn 1」「$Syn 2」と自動生成されたテーブルとしてデータモデルビューアに表示されます。
合成キーが作られると、Qlik Senseは合成キーとなっているフィールドの組み合わせでテーブル同士を結合させることを自動判断で行っており、意図しない結びつきやパフォーマンス悪化の原因となることがあります。

 

なぜ合成キーが作成されるのか

以下のような状況で合成キーが作成されます。

  1. テーブルA・テーブルBなど複数のテーブルにおいて、同じフィールド名が2つ以上存在している。例:上図の「商品コード」「商品分類コード」。
  2. それらのフィールドが意図的には異なる役割を持っているにもかかわらず、名前が同じためQlikが自動で関連付けてしまっている。例:テーブルAのDateは「受注日」、テーブルBの「Dateは「請求日」のはずが、両方「日付」と命名されている。

 

合成キーの解消方法

先ほど例としてあげた以下のテーブルの合成キーを解消します。

合成キーが作成されている場合のリロードログ

合成キーが作成されている場合、リロードログに$Synテーブルの作成メッセージと合成キーがいくつ作成されているか表示されます。

合成キーの解消方法

元のロードスクリプト

 

手順

今回「商品コード」と「商品分類コード」で同じフィールド名が2つ以上存在しているため合成キーが作成されています。

  1. 「商品コード」と「商品分類コード」を1つの項目にまとめ、それをテーブル結合キーとします。例では項目の間に「-」を入れて結合キーを作成しています。
  2. 作成する「商品マスタ結合キー」に「商品コード」と「商品分類コード」の情報が含まれているため、商品マスタ側の「商品コード」と「商品分類コード」をコメントアウトし削除します。


 3.リロードします。
  合成キーが作成されていないことがわかります。



作成されたテーブル

 

おわりに

合成キーは、同じ名前のフィールドを複数テーブルが持っていることで自動作成されるQlik Senseの仕組みです。また、合成キーは意図しない結びつきやパフォーマンス悪化の原因になるので、データモデルビューアでテーブルの結びつきは正しいのかを確認しておくことが大切です。

Jiro

Written by Jiro

Qlik_No1_2022
QSナレッジ事例バナー
DXバナー
Qlikseminar
qs_trial
Qllikseminar
Vizlibナレッジ
Vizlibセミナー
qv_knowledge
book_kawaii
Snowflake_バナー

新着記事

タグ別の記事

全て表示