Qlik 스크립트 프로세서
Qlik 스크립트를 사용하여 입력을 만들거나 변환합니다.
Qlik 스크립트 프로세서를 사용하면 텍스트 편집기에 Qlik 스크립트를 직접 입력하여 데이터를 준비하거나 입력으로 사용할 때 데이터를 로드할 수 있습니다. 고급 사용자를 대상으로 하며, 테이블을 조작할 때 특정 작업을 수동으로 코딩하는 것을 선호하는 경우 전체 Qlik 구문을 활용할 수 있습니다.
사용량
-
데이터 흐름에서 스크립트 프로세서를 사용하려면 편집기에 추가하는 코드가 수신 데이터의 스키마와 이 지점까지 수행된 준비 작업과 일관성이 있어야 합니다. 또한 스크립트는 특정 규칙을 따라야 합니다.
-
스크립트에는 입력 흐름에서 나오는 테이블을 사용하기 위한 resident 문이 포함되어야 합니다.
resident tablename
자세한 내용은 로드를 참조하십시오.
-
NoConcatenate 문장을 포함해야 합니다.
NoConcatenate LOAD A,B
자세한 내용은 NoConcatenate를 참조하십시오.
-
수행하려는 특정 작업에 대한 스크립트를 추가한 후에는 수신 테이블을 삭제하고 생성된 출력만 유지하기 위해 끝에 drop table 문을 포함해야 합니다.
drop table tablename
자세한 내용은 테이블 삭제를 참조하십시오.
- 프로세서를 입력 노드로 사용하는 경우 최대 2개의 출력 흐름을 가질 수 있으며, 이를 통해 서로 다른 2개의 테이블을 로드할 수 있습니다.
- 프로세서를 중개 노드로 사용하는 경우 여러 개의 입력 흐름과 최대 2개의 출력 흐름을 가질 수 있습니다.
속성
속성 | 구성 |
---|---|
스크립트 |
다음 자리 표시자와 필수 문을 포함하는 텍스트 편집기에 Qlik 스크립트를 입력합니다.
입력 테이블의 이름은 스크립트 편집기 위에 나열됩니다.이는 프로세서에 연결된 입력에 해당합니다. |
프로세서 이름을 바꾸거나 해당 설명을 편집하려면 속성 패널에서 프로세서 이름 옆에 있는 편집 아이콘을 클릭합니다.
예
-
동일한 스키마를 가진 여러 테이블을 흐름의 하나의 입력으로 로드합니다. 이 예에서는 카탈로그에서 두 개의 .txt 파일을 사용하며, 네 개의 동일한 필드가 있지만 콘텐츠가 다릅니다.
[MyTable_1]: NOCONCATENATE LOAD [id], [firstname], [lastname], [nationality] FROM [lib://DataFiles/MyTable_1.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq); //[MyTable_2]: CONCATENATE([MyTable_1]) LOAD [id], [firstname], [lastname], [nationality] FROM [lib://DataFiles/MyTable_2.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq); [Union1]: NOCONCATENATE LOAD DISTINCT [id], [firstname], [lastname], [nationality] RESIDENT [MyTable_1];
또는 동일한 작업을 수행할 수 있지만 이번에는 어떤 테이블에서 어떤 데이터가 왔는지 추적하는 필드를 추가하고 정수를 ID 번호로 생성합니다.
[MyTable_1]: NOCONCATENATE LOAD 'table1' as source_table, [firstname], [lastname], [nationality] FROM [lib://DataFiles/MyTable_1.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq); [MyTable_2]: CONCATENATE (MyTable_1) LOAD 'table2' as source_table, [firstname], [lastname], [nationality] FROM [lib://DataFiles/MyTable_2.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq); [NewTable]: LOAD recno() as id, * RESIDENT MyTable_1; drop table MyTable_1;
자세한 내용은 결합을 참조하십시오.
-
흐름에 대한 입력으로 편집 가능한 데이터를 포함하는 인라인 테이블을 만듭니다.
MyTable: Load * Inline [ Country, Year, Sales Argentina, 2014, 66295.03 Argentina, 2015, 140037.89 Austria, 2014, 54166.09 Austria, 205,182739.87 ];
자세한 내용은 인라인 로드를 사용하여 데이터 로드를 참조하십시오.
-
데이터에 새 필드를 추가합니다.
MyTable: NoConcatenate Load *, 1 as newfield Resident [name of input table]; Drop Table [name of input table];
스크립트 표현식의 더 많은 예를 보려면 정규 문과 스크립트 및 차트 함수를 참조하십시오.