# Generic

Generic ロード プレフィックスを使用すると、エンティティ属性値モデル化データ (EAV) を従来の正規化されたリレーショナル テーブル構造に変換できます。EAV モデリングは、「汎用データ モデリング」または「オープン スキーマ」とも呼ばれます。

EAV モデル データと同等の非正規化リレーショナル テーブルの例

EAV モデル データと同等の非正規化リレーショナル テーブルの例

EAV モデル データと同等の非正規化リレーショナル テーブルの例 ![3 列 5 行のテーブルから 4 列 2 行のテーブルへの変換を示す図。](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-denormalized.png)

EAV モデル データと同等の一連の正規化リレーショナル テーブルの例

EAV モデル データと同等の一連の正規化リレーショナル テーブルの例

EAV モデル データと同等の一連の正規化リレーショナル テーブルの例 ![3 列 5 行のテーブルから 3 つのテーブルへの変換を示す図。](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-normalized.png)

Qlik で EAV モデル化されたデータを読み込んで分析することは技術的に可能ですが、多くの場合、同等の従来のリレーショナル データ構造を使用する方が簡単です。

構文:

Generic( loadstatement | selectstatement )

* LOAD ステートメントの使用の詳細については、[Load](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm) を参照してください。
* SELECT ステートメントの使用の詳細については、[Select](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm) を参照してください。

これらのトピックは、この関数を使用するのに役立つかもしれません。

関連トピック

| トピック | 説明 |
| --- | --- |
| [Crosstable](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm) | `Crosstable` ロード プレフィックスは、水平方向のデータを垂直方向のデータに変換します。純粋に機能的な観点からは、 `Generic` ロード プレフィックスとは逆の変換を実行しますが、プレフィックスは通常まったく異なるユース ケースに役立ちます。 |
| データの管理 の[汎用データベース](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm) | EAV 構造化データ モデルについては、ここで詳しく説明します。 |

## 例 1 – Generic ロード プレフィックスを使用した EAV 構造化データの変換

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm)

#### ロード スクリプトとチャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。

ロード スクリプトには、`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]) |
| --- | --- |
| 茶色 | します。 |
| 白色 | 2 |

データ モデルの形状に注意してください。各属性は、元のターゲット テーブル タグ `Product`に従って名前が付けられた個別のテーブルに分割されています。各テーブルには、サフィックスとして属性があります。この一例は `Product.Color`です。結果である Product Attribute 出力レコードは、`Product ID`によって関連付けられます。

結果のデータ モデル ビューア表現

結果のデータ モデル ビューア表現

結果のデータ モデル ビューア表現 ![データ モデル ビューアに表示されるこの例の結果の表現。](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-results-data-model-viewer.png)

レコードの結果テーブル: Products.Status

| 製品 ID | ステータス |
| --- | --- |
| 13 | 製造中止 |
| 2 | 製造中止 |

レコードの結果テーブル: Products.Size

| 製品 ID | サイズ |
| --- | --- |
| 13 | 13-15 |
| 20 | 16-18 |
| 45 | 16-18 |

レコードの結果テーブル: Products.Color

| 製品 ID | 色 |
| --- | --- |
| 13 | 茶色 |
| 5 | 茶色 |
| 44 | 茶色 |
| 45 | 茶色 |
| 20 | 白色 |
| 2 | 白色 |

## 例 2 – Generic ロード プレフィックスを使用しない EAV 構造化データの分析

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm)

#### ロード スクリプトとチャートの数式

概要

この例では、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])`

色別の製品数の検査ができるようになりました。

レコードの結果テーブル: Products.Status

| 値 | =Count({&lt;Attribute={'Color'}&gt;} [Product ID]) |
| --- | --- |
| 茶色 | します。 |
| 白色 | 2 |

## 例 3 – Generic ロードからの結果の出力テーブルの非正規化 (高度)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm)

#### ロード スクリプトとチャートの数式

概要

この例では、`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 つの中間出力テーブルの組み合わせです。

結果の内部データ モデル

| 製品案内 |
| --- |
| 製品 ID |
| ステータス |
| 色 |
| サイズ |

レコードの結果テーブル: 製品

| 製品 ID | ステータス | 色 | サイズ |
| --- | --- | --- | --- |
| 13 | 製造中止 | 茶色 | 13-15 |
| 20 | - | 白色 | 16-18 |
| 2 | 製造中止 | 白色 | - |
| 5 | - | 茶色 | - |
| 44 | - | 茶色 | - |
| 45 | - | 茶色 | 16-18 |

データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します: `Color`。

このメジャーを追加します:

`=Count([Product ID])`

結果テーブル

| 色 | =Count([Product ID]) |
| --- | --- |
| 茶色 | します。 |
| 白色 | 2 |

## 詳細を見る

* [Load](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Crosstable](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm)
* [汎用データベース](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm)