기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

Store

Store 문은 QVD, Parquet, CSV 또는 TXT 파일을 만듭니다.

구문:  

Store [ fieldlist from] table into filename [ format-spec ];

이 문은 명시적으로 명명된 QVD, Parquet 또는 텍스트 파일을 만듭니다.

또한 이 문은 하나의 데이터 테이블에서만 필드를 내보낼 수 있습니다. 여러 테이블의 필드를 내보내는 경우 내보낼 데이터 테이블을 만들려면 스크립트에서 미리 명시적 join을 수행해야 합니다.

텍스트 값은 UTF-8 형식의 CSV 파일로 내보냅니다. 구분 기호를 지정할 수 있습니다. 자세한 내용은 LOAD를 참조하십시오. CSV 파일에 대한 store 문은 BIFF 내보내기를 지원하지 않습니다.

정보 메모형식이 올바르지 않은 데이터의 경우 데이터가 올바르게 해석되도록 필드를 큰따옴표로 묶습니다. 예를 들어, 필드에 따옴표, 쉼표, 공백 또는 줄 바꿈과 같은 문자가 포함된 경우 이런 일이 발생할 수 있습니다.

인수:  

Store 명령 인수
인수 설명
fieldlist::= ( * | field) { , field } )

선택할 필드의 목록입니다. 필드 목록에 *를 사용하면 모든 필드를 지정할 수 있습니다. 

field::= fieldname [as aliasname ]

fieldnametable의 필드 이름과 동일한 텍스트입니다. (필드 이름에 공백 또는 기타 비표준 문자가 포함된 경우 큰따옴표 또는 대괄호로 묶어야 합니다.)

aliasname은 생성된 QVD 또는 CSV 파일에서 사용할 필드의 대체 이름입니다.

table 데이터 소스로 사용하기 위해 이미 로드된 테이블을 나타내는 스크립트 레이블입니다.
filename

기존 폴더 데이터 연결에 대한 유효한 경로가 포함된 대상 파일의 이름입니다.

'lib://Table Files/target.qvd'

레거시 스크립팅 모드에서는 다음 경로 형식도 지원됩니다.

  • 절대 경로

    c:\data\sales.qvd

  • Qlik Sense 앱 작업 디렉터리에 대한 상대 경로.

    data\sales.qvd

    경로를 생략한 경우 Qlik SenseDirectory 문으로 지정된 디렉터리에 파일을 저장합니다. Directory 문이 없으면 Qlik Sense는 작업 디렉터리인 C:\Users\{user}\Documents\Qlik\Sense\Apps에 파일을 저장합니다.

format-spec ::=( ( txt | qvd | parquet), compression is 코덱)

서식 사양을 이러한 파일 형식 중 하나로 설정할 수 있습니다. 서식 사양을 생략하면 qvd가 사용됩니다.

  • CSVTXT 파일의 경우 txt입니다.

  • QVD 파일의 경우 qvd.

  • Parquet 파일의 경우 parquet.

parquet를 사용하는 경우 compression is와 함께 사용할 압축 코덱도 설정할 수 있습니다. compression is로 압축 코덱을 지정하지 않으면 snappy가 사용됩니다. 다음 압축 설정을 사용할 수 있습니다.

  • uncompressed

  • snappy

  • gzip

  • lz4

  • brotli

  • zstd

  • lz4_hadoop

예:

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';

정보 메모DataFiles 연결의 파일 확장명은 대/소문자를 구분합니다. 예를 들어 .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 값으로 변경되는 것을 방지합니다.

Data: LOAD * INLINE [ num, text, mixed 123.321, abc, 123 456.654, def, xyz 789.987, ghi, 321 ]; Format:
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 제어 태그
제어 태그이중물리적 유형논리적 유형변환된 유형
$parquet-boolean숫자BOOLEANNONENONE
$parquet-int32숫자INT32NONENONE
$parquet-int64숫자INT64NONENONE
$parquet-float숫자FLOATNONENONE
$parquet-double숫자DOUBLENONENONE
$parquet-bytearray문자열BYTE_ARRAYNONEUTF8
$parquet-bytearrayfix숫자FIXED_LEN_BYTE_ARRAYNONEDECIMAL
$parquet-decimal숫자INT64DECIMALDECIMAL
$parquet-date숫자INT32DATEDATE
$parquet-time숫자INT64TIMETIME_MICROS
$parquet-timestamp숫자INT64TIMESTAMPTIMESTAMP_MICROS
$parquet-string문자열BYTE_ARRAYSTRINGUTF8
$parquet-enum문자열BYTE_ARRAYENUMENUM
$parquet-interval숫자FIXED_LEN_BYTE_ARRAYINTERVALINTERVAL
$parquet-json문자열BYTE_ARRAYJSONJSON
$parquet-bson문자열BYTE_ARRAYBSONBSON
$parquet-uuid문자열FIXED_LEN_BYTE_ARRAYUUIDNONE

Parquet에 저장하기 위한 데이터 태그 지정

이 예에서는 Parquet에 대한 데이터를 정의하는 데 두 개의 태그가 사용됩니다. num 필드에는 $parquet-int32 태그가 지정되어 Parquet에서 INT32로 설정될 숫자 필드로 정의됩니다.

Data: LOAD * INLINE [ num, text, 123.321, abc 456.654, def 789.987, ghi ]; TAG num WITH '$parquet-int32'; STORE Data INTO [lib://DataFiles/Tmp.parquet] (parquet);

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!