서버 측 확장 구문
Qlik SSE(서버 측 확장)에 대한 개요는 https://github.com/qlik-oss/server-side-extension에서 확인할 수 있습니다.
스크립트 함수
8가지 스크립트 함수 변형이 있습니다. 로드 스크립트에서는 모두 동일하게 동작해야 하지만 이 시나리오에서는 ScriptEval을 사용하는 것이 일반적입니다.
로드 스크립트 사용 LOAD * EXTENSION은 table-in-table-out 접근 방식에서 작동하고 내부 테이블 정의 및 메타데이터에서 올바른 데이터 유형을 유추합니다.
이러한 함수를 차트 표현식으로 사용할 때 사용된 함수는 중요하며 요청의 결과와 성능에 상당한 차이가 있습니다.
ScriptEval 및 ScriptAggr
ScriptEval 및 ScriptAggr의 두 가지 스크립트 함수 집합이 있습니다.
ScriptEval: 하이퍼큐브가 집계된 후 지정된 열의 모든 행이 SSE 커넥터로 전송됩니다. 예상되는 응답은 단일 열입니다. 여러 열이 반환되는 경우 입력과 동일한 수의 행이 있는 첫 번째 열이 선택됩니다. 반환된 열의 행은 입력과 같은 순서여야 합니다.
ScriptAggr: 하이퍼큐브가 집계되기 전에 하이퍼큐브의 단일 차원 그룹에 대한 모든 행이 전송되고 SSE는 단일 1열, 1행 응답을 반환할 것으로 예상됩니다. 각 차원 값에 대해 SSE에 하나의 요청이 전송됩니다. 이에 대한 사용 사례가 있지만 이 방법을 사용하는 경우는 드뭅니다. 많은 수의 차원 값으로 ScriptAggr을 호출하면 성능 문제가 발생할 수 있기 때문입니다.
데이터 유형
입력 및 출력 데이터 유형 조합을 지정하는 요청에는 네 가지 변형이 있습니다.
-
ScriptEval(Script, Field1, [Field n]): 이 예에서 입력 필드는 모두 숫자여야 하고 응답은 숫자여야 합니다.
-
ScriptEvalStr(Script, Field 1, [Field n]): 이 예에서 입력 필드는 모두 문자열이어야 하고 응답은 문자열이어야 합니다.
-
ScriptEvalEx(DataTypes, Script, Field 1, [Field n]): 이 예에서 입력 필드는 문자열 또는 숫자일 수 있지만 첫 번째 매개 변수는 데이터 유형의 문자열이고 응답은 숫자여야 합니다.
-
ScriptEvalExStr(DataTypes, Script, Field 1, [Field n]): 이 예에서 입력 필드는 문자열 또는 숫자일 수 있지만 첫 번째 매개 변수는 데이터 유형의 문자열이고 응답은 문자열이어야 합니다.
DataTypes 매개 변수는 필드 순서에 따라 S 및 N 문자의 문자열입니다.
예
2개의 숫자 필드를 추가하는 스크립트:
ScriptEval('Script',num1,num2)
2개의 문자열을 연결하는 스크립트:
ScriptEvalStr('Script',str1,str2)
문자열과 숫자 입력이 혼합된 확률(숫자)을 예측하는 스크립트:
ScriptEvalEx('SSNN','Script',str1, str2, num1, num2)
문자열과 숫자 입력이 혼합된 분류(문자열)를 예측하는 스크립트:
ScriptEvalExStr('SSNN','Script',str1, str2, num1, num2)