# Qlik 스크립트 프로세서

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

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

## 사용법

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

  * 입력 흐름에서 오는 테이블을 사용하려면 스크립트에 `resident` 문이 포함되어야 합니다.

    ```
    resident tablename
    ```

    자세한 내용은 [Load](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/RegularStatements/Load.htm)를 참조하십시오.

  * `NoConcatenate` 문을 포함해야 합니다.

    ```
    NoConcatenate LOAD A,B
    ```

    자세한 내용은 [NoConcatenate](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/NoConcatenate.htm)를 참조하십시오.

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

    ```
    drop table  tablename
    ```

    자세한 내용은 [Drop table](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/drop-table.htm)을 참조하십시오.

* 프로세서를 입력 노드로 사용할 때 두 개의 서로 다른 테이블을 로드하기 위해 최대 두 개의 출력 흐름을 가질 수 있습니다.

* 프로세서를 중간 노드로 사용할 때 여러 입력 흐름과 최대 두 개의 출력 흐름을 가질 수 있습니다.

* 데이터 흐름에서 최대 50개의 Qlik 스크립트 프로세서를 사용할 수 있습니다.

경고 메모데이터 흐름의 오류를 방지하려면 스크립트 프로세서에서 생성된 테이블 이름이 고유하고 흐름의 다른 프로세서에서 생성된 테이블과 다른지 확인하십시오.

## 속성

구성

| 속성 | 구성 |
| --- | --- |
| 스크립트 | 필수 문이 포함된 다음 자리 표시자가 있는 텍스트 편집기에 Qlik 스크립트를 입력합니다.<br><br>```<br>MyTable:<br>NoConcatenate Load *<br>Resident [name of input table];<br>Drop Table [name of input table];<br>```<br><br>입력 테이블의 이름은 스크립트 편집기 위에 나열됩니다. 프로세서에 연결된 입력에 해당합니다. 테이블 이름을 클릭하여 스크립트에 직접 삽입합니다. |

프로세서의 이름을 바꾸거나 설명을 편집하려면 속성 패널에서 변경할 이름이나 설명 위로 마우스를 가져간 다음 the 편집 icon 아이콘을 클릭합니다.

## 요약 보기 사용

오른쪽 패널에서 전체 편집기를 열지 않고도 프로세서를 빠르게 업데이트할 수 있습니다. 다음을 수행할 수 있습니다.

* 스크립트에 직접 텍스트를 입력합니다.

* 입력 테이블 아래에서 입력 테이블을 클릭하여 스크립트에 추가합니다.

![스크립트 텍스트를 강조 표시하고 입력 테이블을 선택하여 스크립트의 지정된 위치에 추가](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/qlik_script_processor_condensed_panel.png)

더 많은 옵션과 고급 기능을 보려면 스크립트 편집기를 엽니다. [스크립트 편집기 사용](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataFlow/data-flow-processor-script.htm#Using)를 참조하십시오.

## 스크립트 편집기 사용

구성 패널에서 편집기 열기 버튼을 클릭하면 Qlik 스크립트를 작성하는 데 도움이 되는 강력한 스크립트 편집기가 열립니다. 테이블, 필드 이름 또는 함수를 쉽게 삽입하고, 설명서를 열고, 스크립트를 삽입하고, 스크립트의 유효성을 확인할 수 있습니다.

![스크립트 편집기를 사용하여 qlik 스크립트 작성](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/qlik_script_expression_editor.png)

왼쪽 패널에서는 현재 데이터 흐름에 로드된 테이블과 필드를 보고 다양한 Qlik 스크립트 함수를 찾아볼 수 있습니다. 이 패널은 세 개의 탭으로 구성됩니다.

* 흐름에 로드된 테이블이 나열되는 테이블. 테이블 이름 위로 마우스를 가져간 다음 +를 클릭하여 스크립트에 직접 삽입합니다.

* 흐름의 이 시점에서 사용할 수 있는 필드가 나열되는 필드. 필드 이름 위로 마우스를 가져간 다음 +를 클릭하여 표현식에 직접 삽입합니다.

* Qlik 함수를 찾아볼 수 있는 함수. 검색 필드를 사용하여 특정 함수를 찾거나 함수 범주 드롭다운을 사용하여 필터링할 수 있습니다.

  함수 위로 마우스를 가져간 다음 +를 클릭하여 표현식에 직접 삽입합니다.

  * 설명 가이드 토글을 선택하면 함수를 클릭할 때 짧은 설명과 설명서에 대한 링크가 표시됩니다.

상단 패널에서는 스크립트를 작성하는 동안 도움을 주고 안내하는 세 가지 도구를 활성화 또는 비활성화하고, 바로 가기를 사용하여 다른 파일의 스크립트를 삽입하고, 실행 취소 및 다시 실행 버튼을 사용하여 잠재적인 실수를 수정할 수 있습니다.

* 특정 값을 자동으로 찾고 필요한 경우 바꾸는 검색 및 바꾸기.

  ![스크립트 편집기의 검색 및 바꾸기 기능](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/calculate_fields_search_replace.png)

* 스크립트에 작성한 모든 함수를 설명서로 이동하는 클릭 가능한 링크로 바꾸는 도움말 모드.

  ![스크립트 편집기에서 도움말 모드 활성화](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/script_editor_help_mode.png)

* 입력할 때 함수의 짧은 설명 및 예제와 함께 제안을 표시하는 자동 완성.

  ![자동 완성을 사용하여 스크립트 함수 작성](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/script_editor_autocomplete.png)

* 스크립트를 삽입하는 스크립트 포함. [로드 스크립트에 다른 스크립트 삽입](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/QVS/inserting-qvs-script-editor.htm)를 참조하십시오.

  ![qvf 파일에서 스크립트 삽입](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/qlik_script_include_script.png)

하단 패널에는 잘못된 필드 이름이나 유효하지 않은 표현식과 같은 스크립트의 잠재적인 오류가 설명되어 있습니다.

![스크립트의 오류를 보여주는 유효성 검사 도구](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/script_editor_validation.png)

상태 패널에 녹색 확인이 표시되면 스크립트가 유효한 것입니다. 확인을 클릭하여 Qlik 스크립트 프로세서에 이 스크립트를 사용하고 데이터 흐름 편집기로 돌아갑니다. 그런 다음 프로세서 구성의 유효성을 검사할 수 있습니다.

## 예

* 동일한 스키마를 가진 여러 테이블을 흐름의 하나의 입력으로 로드합니다. 이 예에서는 카탈로그에서 필드는 같지만 내용이 다른 두 개의 .txt 파일을 사용합니다. 또한 이 표현식은 어떤 데이터가 어떤 테이블에서 왔는지 추적하는 필드를 추가하고 정수를 ID 번호로 생성합니다.

  ```
  [MyTable_1]:
  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;
  ```

  자세한 내용은 [Concatenate](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/concatenate.htm)를 참조하십시오.

* 흐름의 입력으로 편집 가능한 데이터가 있는 인라인 테이블을 만듭니다.

  ```
  MyTable:
  Load * Inline [
  Country, Year, Sales
  Argentina, 2014, 66295.03
  Argentina, 2015, 140037.89
  Austria, 2014, 54166.09
  Austria, 205,182739.87
  ];
  ```

  자세한 내용은 [Using inline loads to load data.](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)를 참조하십시오.

* 폴더의 모든 파일을 흐름의 입력으로 로드합니다. 이 예에서는 폴더에서 지정된 확장자를 가진 모든 파일을 반복하고 단일 테이블로 로드합니다. 데이터 연결 이름과 폴더 경로를 고유한 값으로 바꾸고 필요에 따라 파일 확장자 및 형식 설정을 조정합니다.

  ```
  SET vFolderPath = 'lib://YourDataConnection/FolderName';

  FOR EACH vFile IN filelist('$(vFolderPath)/*.csv')
      LOAD * FROM [$(vFile)]
      (txt, utf8, embedded labels, delimiter is ',');
  NEXT
  ```

  자세한 내용은 [For each..next](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/for-each.htm)를 참조하십시오.

  스크립트 표현식의 더 많은 예는 [Regular statements](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-regular-statements.htm) 및 [Script and chart functions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/functions-in-scripts-chart-expressions.htm)를 참조하십시오.