On-demand 템플릿 앱 만들기
On-demand 템플릿 앱은 하나의 중요한 차이점이 있는 일반 Qlik Sense 앱입니다. 해당 로드 스크립트에는 데이터 소스에서 만들어진 쿼리를 공식화하는 데 사용되는 데이터 바인딩 표현식이 포함되어 있습니다. 이러한 데이터 바인딩 표현식은 On-demand 앱 생성 시간에 사용되어 선택 앱의 선택 상태에서 값을 읽어서 이 값을 템플릿 앱 스크립트에 바인딩하여 생성된 앱에 사용자가 제어하는 데이터 하위 집합이 로드됩니다.
템플릿 앱은 일반적으로 선택 앱과 동일한 데이터 소스에 연결됩니다. 선택 앱의 로드 스크립트는 중요한 차원 및 측정값의 대화형 시각화를 제공하면서 데이터 볼륨을 줄이기 위해 일반적으로 집계된 데이터를 로드합니다. 템플릿 앱의 로드 스크립트는 보다 세밀한 데이터의 제어된 하위 집합을 로드하는 쿼리를 사용합니다.
템플릿 앱의 구조
템플릿 앱은 On-demand 앱 탐색 링크를 사용하여 선택 앱에 연결됩니다. 앱 탐색 링크에는 On-demand 앱에 데이터가 로드될 때 쿼리되는 레코드 수를 제어하는 속성이 포함되어 있습니다. 템플릿 앱의 로드 스크립트에는 On-demand 앱에 데이터가 로드될 때 실행되는 쿼리를 공식화하는 데 사용되는 선택 앱의 필드 데이터를 지정하는 데이터 바인딩 표현식이 포함되어 있습니다.
2020년 6월에 데이터 바인딩 표현식에 대한 새 구문이 도입되었습니다. 수량 제약 조건, _n 접미사 및 서식 사양을 포함하여 이전 구문 및 접두사 od_, ods_, odo_, odso_ 및 odb_는 전과 마찬가지로 동작합니다. 앱이 2020년 6월 이전의 Qlik Sense 버전에서 작동해야 하는 경우 이전 구문을 사용합니다. 이전 구문의 경우 On-demand 템플릿 앱 만들기(이전 버전)를 참조하십시오.
새 접두사를 사용할 때 _n 접미사는 지원되지 않습니다.
기본 데이터 바인딩 표현식의 양식은 다음과 같습니다.
$(odag_FIELDNAME)
odag_ 접두사는 선택 앱의 선택 상태를 템플릿 앱에서 정의한 On-demand 앱의 로드 스크립트에 바인딩하는 데 사용됩니다. odag 접두사 다음에 오는 데이터 바인딩 표현식 부분은 선택 앱의 필드와 일치하는 이름이어야 합니다. On-demand 앱이 생성되면 선택 앱의 현재 선택 상태는 각 필드에 대해 바인딩할 원하는 값을 가져오는 데 사용됩니다. On-demand 앱이 생성되면 선택 앱의 현재 선택 상태는 각 필드에 대해 바인딩할 원하는 값을 가져오는 데 사용됩니다. 새로 만든 On-demand 앱의 로드 스크립트에 있는 $(odag_FIELDNAME) 표현식은 발생할 때마다 선택 앱의 선택 상태에서 해당 필드에 대해 선택된 값 목록으로 대체됩니다.
보다 특수화된 데이터 바인딩을 위해 다른 접두사를 사용할 수 있습니다. 특수한 경우에 맞게 조정하고 LOAD 문을 최적화하는 방법을 알아보려면 On-demand 템플릿 앱의 바인딩 표현식를 참조하십시오.
On-demand 바인딩을 로드 스크립트의 SELECT 및 WHERE 문에 직접 삽입할 수 있습니다. 바인딩을 WHERE 문에 직접 추가하면 문에서 다른 조건과 함께 조합하기가 더 쉽습니다.
로드 스크립트를 만들 때 자리 표시자 변수 $(odagActive)를 추가할 수 있습니다. 이렇게 하면 모든 데이터를 로드하지 않고 동적 보기에 대한 마스터 차트를 만들 수 있도록 샘플 데이터를 템플릿 앱에 로드할 수 있습니다.
다음 예에서 샘플 On-demand 템플릿 로드 스크립트를 설명합니다.
몇 가지 샘플 데이터 추가
이 예에서는 바인딩이 완료되지 않은 경우에도 앱을 로드할 수 있도록 샘플 값을 추가합니다.
IF '$(odagActive)'='' THEN
trace ODAG variables not inserted! Loading sample data.;
SET 'odag_Origin Code' = '''LAX''';
SET 'odag_Destination Code' = '''JFK''';
SET odagn_Year = 2015;
SET odag_Quarter = '''1''';
SET 'odag_Ticket Carrier Code' = '''CA''';
SET 'odag_Fare Class' = '''X''';
END IF;
템플릿 앱에서 데이터 로드
다음은 샘플 데이터를 로드하고 생성된 odag_FIELDNAME 바인딩으로 필터링하기 위한 샘플 로드 스크립트입니다. odagn_<Field Name> 바인딩은 이중 값에서 숫자를 선택하고 기본적으로 인용 부호를 사용하지 않습니다.
SQL SELECT *
FROM FlightDB.Flights
WHERE "Origin Code" IN ($(odag_Origin Code))
AND "Destination Code" IN ($(odag_Destination Code))
AND "Year" IN ($(odagn_Year))
AND "Quarter" IN ($(odag_Quarter))
AND "Ticket Carrier Code" IN ($(odag_Ticket Carrier Code))
AND "Fare Class" IN ($(odag_Fare Class));
단일 사인온(SSO)
On-demand 앱은 SSO를 지원하는 데이터 소스와 함께 단일 사인온(SSO)을 사용할 수 있습니다. 엔진 및 데이터 소스는 SSO를 허용하도록 구성해야 합니다.
자세한 내용은 Qlik Sense에서 SAML 단일 사인온에 대해 SAP HANA 구성 (영어로만 제공) 및 단일 사인온에 대해 Cloudera Impala 구성 (영어로만 제공)을 참조하십시오.
SSO에 대해 엔진 및 데이터 소스를 구성한 후 템플릿 앱은 템플릿 앱 스크립트에 다음 구문을 추가하여 SSO를 활성화해야 합니다.
///!ODAG_SSO
On-demand 앱 서비스는 On-demand 앱이 생성될 때 및 On-demand 앱이 다시 로드될 때마다 스크립트를 구문 분석합니다.
On-demand 앱이 SSO에서 로드되면 최종 사용자의 ID가 데이터 소스로 전송됩니다. 최종 사용자는 템플릿 앱의 데이터 연결에서 사용되는 소스에 대한 액세스 권한이 있어야 합니다. 대규모 데이터 집합이 선택된 경우에도 사용자에게 해당 소스에 대한 액세스 권한이 있는 데이터만 로드됩니다.
템플릿 앱에 대한 노드 다시 로드
관리자는 템플릿 앱에 부하 분산 규칙을 설정하여 다중 노드 환경에서 On-demand 앱을 다시 로드할 위치를 제어할 수 있습니다. 부하 분산 규칙이 설정되면 템플릿 앱에 대한 링크로 생성된 모든 앱이 템플릿 앱에 적용되는 규칙에 따라 로드됩니다. 자세한 내용은 on-demand 앱 관리 (영어로만 제공)를 참조하십시오.