Generic
Generic ロード プレフィックスを使用すると、エンティティ属性値モデル化データ (EAV) を従来の正規化されたリレーショナル テーブル構造に変換できます。EAV モデリングは、「汎用データ モデリング」または「オープン スキーマ」とも呼ばれます。
Qlik で EAV モデル化されたデータを読み込んで分析することは技術的に可能ですが、多くの場合、同等の従来のリレーショナル データ構造を使用する方が簡単です。
構文:
Generic( loadstatement | selectstatement )
これらのトピックは、この関数を使用するのに役立つかもしれません。
トピック | 説明 |
---|---|
Crosstable | Crosstable ロード プレフィックスは、水平方向のデータを垂直方向のデータに変換します。純粋に機能的な観点からは、 Generic ロード プレフィックスとは逆の変換を実行しますが、プレフィックスは通常まったく異なるユース ケースに役立ちます。 |
データの管理 汎用データベース | EAV 構造化データ モデルについては、ここで詳しく説明します。 |
例 1 – Generic ロード プレフィックスを使用した EAV 構造化データの変換
概要
データ ロード エディタを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには、Transactions という名前のテーブルに読み込まれるデータセットが含まれています。データセットには、日付項目が含まれます。既定の MonthNames 定義が使用されます。
ロード スクリプト
Products:
Generic
Load * inline [
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します: Color。
このメジャーを追加します:
=Count([Product ID])
色別の製品数の検査ができるようになりました。
色 | =Count([Product ID]) |
---|---|
茶色 | 4 |
白色 | 2 |
データ モデルの形状に注意してください。各属性は、元のターゲット テーブル タグ Productに従って名前が付けられた個別のテーブルに分割されています。各テーブルには、サフィックスとして属性があります。この一例は Product.Colorです。結果である Product Attribute 出力レコードは、Product IDによって関連付けられます。
製品 ID | ステータス |
---|---|
13 | 製造中止 |
2 | 製造中止 |
製品 ID | サイズ |
---|---|
13 | 13-15 |
20 | 16-18 |
45 | 16-18 |
製品 ID | 色 |
---|---|
13 | 茶色 |
5 | 茶色 |
44 | 茶色 |
45 | 茶色 |
20 | 白色 |
2 | 白色 |
例 2 – Generic ロード プレフィックスを使用しない EAV 構造化データの分析
概要
この例では、EAV 構造化データを元の形式で分析する方法を示します。
データ ロード エディタを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには、EAV 構造にある Products という名前のテーブルに読み込まれるデータセットが含まれています。
この例では、色属性ごとに製品をカウントしています。このように構造化されたデータを分析するには、属性値 Colorを持つ製品の式レベルのフィルタリングを適用する必要があります。
さらに、個々の属性を軸や項目として選択することはできないため、効果的なビジュアライゼーションを構築する方法を決定するのが難しくなります。
ロード スクリプト
Products:
Load * Inline
[
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します: Value。
次のメジャーを作成します:
=Count({<Attribute={'Color'}>} [Product ID])
色別の製品数の検査ができるようになりました。
値 | =Count({<Attribute={'Color'}>} [Product ID]) |
---|---|
茶色 | 4 |
白色 | 2 |
例 3 – Generic ロードからの結果の出力テーブルの非正規化 (高度)
概要
この例では、Generic ロード プレフィックスによって生成された正規化されたデータ構造を非正規化して、統合された Product 軸テーブルに戻す方法を示します。これは、データ モデルのパフォーマンス チューニングの一部として使用できる高度なモデリング手法です。
データ ロード エディタを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプト
Products:
Generic
Load * inline [
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
RENAME TABLE Products.Color TO Products;
OUTER JOIN (Products)
LOAD * RESIDENT Products.Size;
OUTER JOIN (Products)
LOAD * RESIDENT Products.Status;
DROP TABLES Products.Size,Products.Status;
結果
データ モデル ビューアを開き、結果のデータ モデルの形状を確認します。非正規化されたテーブルが 1 つだけ存在します。Products.Size、Products.Status、および Products.Color の 3 つの中間出力テーブルの組み合わせです。
Products |
---|
製品 ID |
ステータス |
色 |
サイズ |
製品 ID | ステータス | 色 | サイズ |
---|---|---|---|
13 | 製造中止 | 茶色 | 13-15 |
20 | - | 白色 | 16-18 |
2 | 製造中止 | 白色 | - |
5 | - | 茶色 | - |
44 | - | 茶色 | - |
45 | - | 茶色 | 16-18 |
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します: Color。
このメジャーを追加します:
=Count([Product ID])
色 | =Count([Product ID]) |
---|---|
茶色 | 4 |
白色 | 2 |