合成キー

複数の内部テーブル間に複数の項目が共通して含まれている場合、複合キーの関係が存在することを意味します。QlikViewは、自動的に合成キーを作成し、これに対処しています。合成キーとは、複合キーが発生するすべての組み合わせを表す匿名項目です。

データのロード中に、合成キーに関する警告が表示された場合は、テーブル ビューアでデータ構造を確認することをお勧めします。データ モデルが正しいかどうかを、自分で確認してください。データ モデルが正しくても、合成キーが多すぎるとスクリプトでエラーが発生する原因となります。

必ずというわけではありませんが、複数の合成キーが不正なデータ モデルの兆候となることはよくあります。ですが、他の合成キーに基づく合成キーがある場合、これは不正なデータ モデルの明らかな兆候です。

警告: データ量やテーブル構成、その他の要因により合成キーが増加すると、QlikViewはそれらを効率的に処理できなくなる場合があり、結果として大量の時間とメモリを消費してしまいます。そうした場合は、すべての合成キーを削除して、スクリプトの再構築が必要となります。

合成キーの処理

合成キーを回避する必要がある場合は、ロード スクリプトで次のような方法を使って解決できます。

  • キーとして使用されている論理的にリンクしている 2 つのテーブルの項目のみをチェックする。

    • “Comment” や “Remark”、“Description” のような項目が互いに関係のない複数のテーブルに存在する場合、キーとして使用できない。
    • “Date” や “Company”、“Name” のような項目が複数のテーブルに存在し、一意の値を持っているがロールが異なる場合 (Order Date/Shipping Date、Customer Company/Supplier Company) は、キーとして使用できない。
  • 冗長項目が使用されておらず、必要な項目のみが接続されていることを確認する。たとえば、日付をキーとして使用する場合は、year、month、または day_of_month などを複数の内部テーブルから同じ日付がロードされていないことを確認してください。

  • 必要に応じて、通常は AutoNumber スクリプト関数内で文字列連結を使用している独自の非複合キーを作成する。