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

Qlik 스크립트 프로세서

Qlik 스크립트를 사용하여 입력을 만들거나 변환합니다.

Qlik 스크립트 프로세서를 사용하면 텍스트 편집기에 Qlik 스크립트를 직접 입력하여 데이터를 준비하거나 입력으로 사용할 때 데이터를 로드할 수 있습니다. 고급 사용자를 대상으로 하며, 테이블을 조작할 때 특정 작업을 수동으로 코딩하는 것을 선호하는 경우 전체 Qlik 구문을 활용할 수 있습니다.

사용량

  • 데이터 흐름에서 스크립트 프로세서를 사용하려면 편집기에 추가하는 코드가 수신 데이터의 스키마와 이 지점까지 수행된 준비 작업과 일관성이 있어야 합니다. 또한 스크립트는 특정 규칙을 따라야 합니다.

    • 스크립트에는 입력 흐름에서 나오는 테이블을 사용하기 위한 resident 문이 포함되어야 합니다.

      resident tablename

      자세한 내용은 로드를 참조하십시오.

    • NoConcatenate 문장을 포함해야 합니다.

      NoConcatenate LOAD A,B

      자세한 내용은 NoConcatenate를 참조하십시오.

    • 수행하려는 특정 작업에 대한 스크립트를 추가한 후에는 수신 테이블을 삭제하고 생성된 출력만 유지하기 위해 끝에 drop table 문을 포함해야 합니다.

      drop table  tablename

      자세한 내용은 테이블 삭제를 참조하십시오.

  • 프로세서를 입력 노드로 사용하는 경우 최대 2개의 출력 흐름을 가질 수 있으며, 이를 통해 서로 다른 2개의 테이블을 로드할 수 있습니다.
  • 프로세서를 중개 노드로 사용하는 경우 여러 개의 입력 흐름과 최대 2개의 출력 흐름을 가질 수 있습니다.

속성

구성
속성 구성
스크립트

다음 자리 표시자와 필수 문을 포함하는 텍스트 편집기에 Qlik 스크립트를 입력합니다.

MyTable:
NoConcatenate Load *
Resident [name of input table];
Drop Table [name of input table];

입력 테이블의 이름은 스크립트 편집기 위에 나열됩니다.이는 프로세서에 연결된 입력에 해당합니다.

프로세서 이름을 바꾸거나 해당 설명을 편집하려면 속성 패널에서 프로세서 이름 옆에 있는 편집 편집 아이콘을 클릭합니다.

  • 동일한 스키마를 가진 여러 테이블을 흐름의 하나의 입력으로 로드합니다. 이 예에서는 카탈로그에서 두 개의 .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];
  • 스크립트 표현식의 더 많은 예를 보려면 정규 문스크립트 및 차트 함수를 참조하십시오.

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

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