Store
Store 문은 QVD, Parquet, CSV 또는 TXT 파일을 만듭니다.
구문:
Store [ fieldlist from] table into filename [ format-spec ];
이 문은 명시적으로 명명된 QVD, Parquet 또는 텍스트 파일을 만듭니다.
또한 이 문은 하나의 데이터 테이블에서만 필드를 내보낼 수 있습니다. 여러 테이블의 필드를 내보내는 경우 내보낼 데이터 테이블을 만들려면 스크립트에서 미리 명시적 join을 수행해야 합니다.
텍스트 값은 UTF-8 형식의 CSV 파일로 내보냅니다. 구분 기호를 지정할 수 있습니다. 자세한 내용은 LOAD를 참조하십시오. CSV 파일에 대한 store 문은 BIFF 내보내기를 지원하지 않습니다.
인수:
인수 | 설명 |
---|---|
fieldlist::= ( * | field) { , field } ) |
선택할 필드의 목록입니다. 필드 목록에 *를 사용하면 모든 필드를 지정할 수 있습니다. field::= fieldname [as aliasname ] fieldname은 table의 필드 이름과 동일한 텍스트입니다. (필드 이름에 공백 또는 기타 비표준 문자가 포함된 경우 큰따옴표 또는 대괄호로 묶어야 합니다.) aliasname은 생성된 QVD 또는 CSV 파일에서 사용할 필드의 대체 이름입니다. |
table | 데이터 소스로 사용하기 위해 이미 로드된 테이블을 나타내는 스크립트 레이블입니다. |
filename |
기존 폴더 데이터 연결에 대한 유효한 경로가 포함된 대상 파일의 이름입니다. 'lib://Table Files/target.qvd' 레거시 스크립팅 모드에서는 다음 경로 형식도 지원됩니다.
|
format-spec ::=( ( txt | qvd | parquet), compression is 코덱) |
서식 사양을 이러한 파일 형식 중 하나로 설정할 수 있습니다. 서식 사양을 생략하면 qvd가 사용됩니다.
parquet를 사용하는 경우 compression is와 함께 사용할 압축 코덱도 설정할 수 있습니다. compression is로 압축 코덱을 지정하지 않으면 snappy가 사용됩니다. 다음 압축 설정을 사용할 수 있습니다.
예: Store mytable into [lib://DataFiles/myfile.parquet] (parquet, compression is lz4); |
Store mytable into xyz.qvd (qvd);
Store * from mytable into 'lib://FolderConnection/myfile.qvd';
Store Name, RegNo from mytable into xyz.qvd;
Store Name as a, RegNo as b from mytable into 'lib://FolderConnection/myfile.qvd';
Store mytable into myfile.txt (txt);
Store mytable into myfile.parquet (parquet);
Store * from mytable into 'lib://FolderConnection/myfile.qvd';
Parquet 파일에 저장
Parquet는 각 필드에 단일 특정 유형의 데이터(예: in32, double, 타임스탬프 또는 텍스트)가 포함된 강력한 유형의 파일 형식입니다. Qlik Sense는 내부 데이터를 느슨한 유형의 이중으로 저장합니다. 여기서 서로 다른 소스의 데이터가 동일한 필드에 혼합될 수 있습니다. Parquet의 각 필드에는 이중의 한 부분만 저장할 수 있으므로 각 필드에 무엇이 포함되어 있는지 알아야 합니다. 기본적으로 Qlik Sense는 필드 유형을 사용하여 필드 저장 방법을 결정합니다. Parquet 파일에 데이터를 특정 형식으로 저장하는 경우 필드를 로드할 때 필드의 데이터 유형을 지정해야 합니다. 텍스트 필드의 숫자나 타임스탬프 필드의 텍스트 등 Parquet 파일의 호환되지 않는 필드에 데이터를 저장하려고 하면 null 값이 발생하게 됩니다.
Parquet에 저장하려는 데이터를 로드할 때 기본 동작을 변경할 수 있습니다. 형식을 지정하여 데이터 유형을 변경하거나 태그를 지정하여 Parquet에서 특정 열 유형을 적용할 수 있습니다.
Parquet에 저장할 데이터 형식 지정
Qlik Sense 형식 지정 함수를 사용하여 데이터를 분류할 수 있습니다. 예를 들어, Text(), Num(), Interval() 또는 Timestamp()는 데이터를 Parquet에 저장할 때 데이터 형식을 적용할 수 있습니다. Qlik Sense은 필드 특성 및 자동 필드 태그에 따라 거의 20가지 데이터 유형으로 데이터를 저장할 수 있습니다. 자세한 내용은 해석 함수를 참조하십시오.
Num() 및 Text()를 사용하여 데이터 형식 지정
다음 예에서는 Parquet에 저장할 데이터를 준비하는 방법을 보여 줍니다. Num()은 숫자 필드에 적용됩니다. Text()는 텍스트와 혼합 모두에 적용됩니다. 혼합의 경우 Text()는 Parquet의 숫자 필드처럼 처리되어 텍스트 값이 null 값으로 변경되는 것을 방지합니다.
NoConcatenate LOAD num, text, Text(mixed) as mixed RESIDENT Data; STORE Format INTO [lib://DataFiles/Tmp.parquet] (parquet);
Parquet에 저장하기 위한 데이터 태그 지정
Parquet에 데이터를 저장할 때 특정 열 유형을 강제 적용하려면 데이터에 $parquet 태그를 지정합니다. 각 데이터 유형은 해당 제어 태그를 추가하여 적용할 수 있습니다. 예를 들어, 필드를 Parquet에 INT32로 저장하려면 로드 스크립트에서 $parquet-int32 태그를 지정합니다. 데이터 유형에 따라 이중 데이터의 문자열 또는 숫자 표현이 저장됩니다.
다음 Parquet 제어 태그는 Parquet 파일에 저장하기 위해 필드에 태그를 지정하는 데 사용할 수 있습니다.
제어 태그 | 이중 | 물리적 유형 | 논리적 유형 | 변환된 유형 |
---|---|---|---|---|
$parquet-boolean | 숫자 | BOOLEAN | NONE | NONE |
$parquet-int32 | 숫자 | INT32 | NONE | NONE |
$parquet-int64 | 숫자 | INT64 | NONE | NONE |
$parquet-float | 숫자 | FLOAT | NONE | NONE |
$parquet-double | 숫자 | DOUBLE | NONE | NONE |
$parquet-bytearray | 문자열 | BYTE_ARRAY | NONE | UTF8 |
$parquet-bytearrayfix | 숫자 | FIXED_LEN_BYTE_ARRAY | NONE | DECIMAL |
$parquet-decimal | 숫자 | INT64 | DECIMAL | DECIMAL |
$parquet-date | 숫자 | INT32 | DATE | DATE |
$parquet-time | 숫자 | INT64 | TIME | TIME_MICROS |
$parquet-timestamp | 숫자 | INT64 | TIMESTAMP | TIMESTAMP_MICROS |
$parquet-string | 문자열 | BYTE_ARRAY | STRING | UTF8 |
$parquet-enum | 문자열 | BYTE_ARRAY | ENUM | ENUM |
$parquet-interval | 숫자 | FIXED_LEN_BYTE_ARRAY | INTERVAL | INTERVAL |
$parquet-json | 문자열 | BYTE_ARRAY | JSON | JSON |
$parquet-bson | 문자열 | BYTE_ARRAY | BSON | BSON |
$parquet-uuid | 문자열 | FIXED_LEN_BYTE_ARRAY | UUID | NONE |
Parquet에 저장하기 위한 데이터 태그 지정
이 예에서는 Parquet에 대한 데이터를 정의하는 데 두 개의 태그가 사용됩니다. num 필드에는 $parquet-int32 태그가 지정되어 Parquet에서 INT32로 설정될 숫자 필드로 정의됩니다.