# Generic

Generic 로드 접두사는 엔터티-특성-값 모델링 데이터(EAV)를 기존의 정규화된 관계형 테이블 구조로 변환할 수 있도록 합니다. EAV 모델링은 "일반 데이터 모델링" 또는 "개방형 스키마"라고도 합니다.

EAV 모델링 데이터 및 이에 상응하는 비정규화된 관계형 테이블의 예

EAV 모델링 데이터 및 이에 상응하는 비정규화된 관계형 테이블의 예

EAV 모델링 데이터 및 이에 상응하는 비정규화된 관계형 테이블의 예 ![3개의 열과 5개의 행이 있는 테이블을 4개의 열과 2개의 행이 있는 테이블로 변환하는 방법을 보여 주는 다이어그램.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-denormalized.png)

EAV 모델링 데이터 및 이에 상응하는 정규화된 관계형 테이블 집합의 예

EAV 모델링 데이터 및 이에 상응하는 정규화된 관계형 테이블 집합의 예

EAV 모델링 데이터 및 이에 상응하는 정규화된 관계형 테이블 집합의 예 ![3개의 열과 5개의 행이 있는 테이블을 3개의 개별 테이블로 변환하는 것을 보여 주는 다이어그램.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-normalized.png)

Qlik에서 EAV 모델링 데이터를 로드하고 분석하는 것이 기술적으로 가능하지만, 이에 상응하는 기존 관계형 데이터 구조로 작업하는 것이 더 쉬운 경우가 많습니다.

구문:

Generic( loadstatement | selectstatement )

* LOAD 문 사용에 대한 자세한 내용은 [Load](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)를 참조하십시오.
* SELECT 문 사용에 대한 자세한 내용은 [Select](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)를 참조하십시오.

다음 항목은 이 함수를 사용하는 데 도움이 될 수 있습니다.

관련 항목

| 항목 | 설명 |
| --- | --- |
| [Crosstable](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm) | `Crosstable` 로드 접두사는 가로 방향의 데이터를 세로 방향의 데이터로 변환합니다. 접두사는 일반적으로 완전히 다른 사용 사례를 제공하지만 ,순전히 기능적 관점에서 `Generic` 로드 접두사에 대해 반대 변환을 수행합니다. |
| [일반 데이터베이스](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm) | EAV로 구조화된 데이터 모델은 여기에서 자세히 설명합니다. |

## 예 1 - 일반 로드 접두사를 사용하여 EAV로 구조화된 데이터 변환

[](https://help.qlik.com/en-US/cloud-services/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([제품 ID]) |
| --- | --- |
| 갈색 | 4 |
| 흰색 | 2 |

각 특성이 원본 대상 테이블 태그 `Product`에 따라 명명된 별도의 테이블로 분할된 데이터 모델의 모양에 유의합니다. 각 테이블에는 특성이 접미사로 있습니다. 예를 들어 `Product.Color`입니다. 결과로 제공되는 제품 특성 출력 레코드는 `Product ID`로 연결됩니다.

결과의 데이터 모델 뷰어 표현

결과의 데이터 모델 뷰어 표현

결과의 데이터 모델 뷰어 표현 ![데이터 모델 뷰어에 표시되는 이 예의 결과 표현입니다.](https://help.qlik.com/ko-KR/cloud-services/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 - 일반 로드 접두사 없이 EAV로 구조화된 데이터 분석

[](https://help.qlik.com/en-US/cloud-services/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;} [제품 ID]) |
| --- | --- |
| 갈색 | 4 |
| 흰색 | 2 |

## 예 3 – 일반 로드에서 결과 출력 테이블 비정규화(고급)

[](https://help.qlik.com/en-US/cloud-services/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;
```

결과

데이터 모델 뷰어를 열고 결과 데이터 모델의 모양을 확인합니다. 하나의 비정규화된 테이블만 있습니다. 이는 세 개의 중간 출력 테이블(`Products.Size`, `Products.Status` 및 `Products.Color`)의 조합입니다.

결과 내부 데이터 모델

| 제품 |
| --- |
| 제품 ID |
| 상태 |
| 색 |
| 크기 |

결과 레코드 테이블: Products

| 제품 ID | 상태 | 색 | 크기 |
| --- | --- | --- | --- |
| 13 | 중단됨 | 갈색 | 13-15 |
| 20 | - | 흰색 | 16-18 |
| 2 | 중단됨 | 흰색 | - |
| 5 | - | 갈색 | - |
| 44 | - | 갈색 | - |
| 45 | - | 갈색 | 16-18 |

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다. `Color` .

이 측정값을 추가합니다.

`=Count([Product ID])`

결과 테이블

| 색 | =Count([제품 ID]) |
| --- | --- |
| 갈색 | 4 |
| 흰색 | 2 |

## 자세한 정보

* [Load](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Crosstable](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm)
* [일반 데이터베이스](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm)