스크립트 구문 및 데이터 구조에 대한 이해

추출, 변환 및 로드

일반적으로 앱에 데이터를 로드하는 방법은 추출, 변환, 로드 프로세스로 설명할 수 있습니다.

  • 추출

    첫 번째 단계는 데이터 소스 시스템에서 데이터를 추출하는 것입니다. 스크립트에서 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에 데이터를 로드할 때 다음과 같은 규칙이 적용됩니다.

  • Qlik SenseLOAD 또는 SELECT 문으로 생성된 테이블을 구분하지 않습니다. 이는 여러 테이블이 로드될 때 테이블이 LOAD 또는 SELECT 문 또는 이 둘의 조합으로 로드되어도 상관이 없음을 의미합니다.
  • 문이나 데이터베이스에 있는 원래 테이블 내의 필드 순서는 Qlik Sense 논리에서 무의미합니다.
  • 필드 이름은 필드를 식별하고 연결을 만드는 추가 프로세스에서 사용됩니다. 필드 이름은 대/소문자가 구분되므로 종종 스크립트에서 필드 이름을 변경해야 하는 경우가 있습니다.

스크립트의 실행

일반적인 LOAD 또는 SELECT 문의 이벤트 순서를 대략적으로 정리하면 다음과 같습니다.

  1. 표현식 평가
  2. as로 필드의 이름 바꾸기
  3. alias로 필드의 이름 바꾸기
  4. 필드 이름의 한정
  5. 필드 이름이 일치하는 경우 데이터 매핑
  6. 내부 테이블에 데이터 저장