스크립트 구문 및 데이터 구조에 대한 이해
추출, 변환 및 로드
일반적으로 데이터를 앱이나 스크립트에 로드하는 방식은 추출, 변환 및 로드 프로세스로 설명할 수 있습니다.
-
추출
첫 번째 단계는 데이터 소스 시스템에서 데이터를 추출하는 것입니다. 스크립트에서 SELECT 또는 LOAD 문을 사용하여 이를 정의합니다. 이 두 문 사이의 차이점은 다음과 같습니다.
- SELECT 문은 ODBC 데이터 소스 또는 OLE DB 공급자의 데이터를 선택하는 데 사용됩니다. SELECT SQL 문은 Qlik Sense가 아니라 데이터 공급자가 평가합니다.
- LOAD 문은 파일, 스크립트에 정의된 데이터, 이전에 로드한 테이블, 웹 페이지, 이후 SELECT 문의 결과에서 또는 자동으로 데이터를 생성하여 데이터를 로드하는 데 사용됩니다.
-
변환
변환 단계에는 스크립트 함수 및 규칙을 사용하여 데이터를 편집하고 원하는 데이터 모델 구조를 이끌어내는 작업이 포함됩니다. 일반적인 작업은 다음과 같습니다.
- 새로운 값 계산
- 코딩된 값 변환
- 필드 이름 바꾸기
- 테이블 조인
- 값 집계
- 피벗
- 데이터 검증
-
로드 또는 내보내기
마지막 단계에서는 스크립트를 실행하여 정의한 데이터 모델을 앱에 로드하거나 스크립트에서 데이터를 로드하고 내보냅니다.
Qlik Sense에서 데이터를 효율적으로 처리할 수 있는 데이터 모델을 만들려고 합니다. 일반적으로 이런 경우, 순환 참조 없이 적절히 정규화된 스타 스키마 또는 눈송이형 스키마, 즉 각 엔터티가 별도의 테이블에 보관되는 모델을 사용해야 합니다. 다시 말해, 일반적인 데이터 모델은 다음과 같습니다.
- 측정값(단위 숫자, 판매 금액, 예산 등)을 계산하는 데 사용되는 숫자 및 차원에 대한 키가 포함된 중앙 팩트 테이블.
- 해당하는 모든 특성(제품, 고객, 범주, 캘린더, 공급자 등)과 함께 차원이 포함된 주변 테이블.
데이터 로드 문
데이터는 LOAD 또는 SELECT 문으로 로드됩니다. 위 문은 각각 내부 테이블을 생성합니다. 테이블은 항상 데이터 목록으로 표시될 수 있으며, 각 레코드(행)는 개체 유형의 새로운 인스턴스가 되고 각 필드(열)는 개체의 특정 특성 또는 속성이 됩니다.
이 두 문 사이의 차이점은 다음과 같습니다.
- SELECT 문은 ODBC 데이터 소스 또는 OLE DB 공급자의 데이터를 선택하는 데 사용됩니다. SELECT SQL 문은 Qlik Sense가 아니라 데이터 공급자가 평가합니다.
- LOAD 문은 파일, 스크립트에 정의된 데이터, 이전에 로드한 테이블, 웹 페이지, 이후 SELECT 문의 결과에서 또는 자동으로 데이터를 생성하여 데이터를 로드하는 데 사용됩니다.
규칙
앱과 스크립트에 데이터를 로드할 때 다음 규칙이 적용됩니다.
- Qlik Sense는 LOAD 또는 SELECT 문으로 생성된 테이블을 구분하지 않습니다. 이는 여러 테이블이 로드될 때 테이블이 LOAD 또는 SELECT 문 또는 이 둘의 조합으로 로드되어도 상관이 없음을 의미합니다.
- 문이나 데이터베이스에 있는 원래 테이블 내의 필드 순서는 Qlik Sense 논리에서 무의미합니다.
- 필드 이름은 필드를 식별하고 연결을 만드는 추가 프로세스에서 사용됩니다. 필드 이름은 대/소문자가 구분되므로 종종 스크립트에서 필드 이름을 변경해야 하는 경우가 있습니다.
스크립트의 실행
일반적인 LOAD 또는 SELECT 문의 이벤트 순서를 대략적으로 정리하면 다음과 같습니다.
- 표현식 평가
- as로 필드의 이름 바꾸기
- alias로 필드의 이름 바꾸기
- 필드 이름의 한정
- 필드 이름이 일치하는 경우 데이터 매핑
- 내부 테이블에 데이터 저장