SQL 변환 추가 | Qlik Cloud 도움말
기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

SQL 변환 추가

변환 작업에 SQL 기반 테이블을 포함할 수 있습니다. SQL 변환을 사용하면 파이프라인에 SQL SELECT 쿼리를 입력하여 복잡하거나 단순한 변환을 정의할 수 있습니다. 생성형 AI를 사용하여 텍스트 프롬프트에서 SQL assistant가 쿼리를 생성하도록 할 수 있습니다. 또한 매크로를 사용하여 초기 로드 또는 증분 로드가 수행될 때 실행되도록 쿼리를 조정할 수 있습니다.

SQL workbench를 사용하여 데이터를 탐색하고 변환에 SQL을 추가하기 전에 읽기 전용 SQL을 검증할 수 있습니다. 자세한 내용은 SQL Workbench를 사용한 데이터 탐색를 참조하십시오.

변환 작업 생성에 대한 자세한 내용은 데이터 변환를 참조하십시오.

SQL 변환 추가

변환 데이터 작업에서 SQL 변환을 추가하려면:

  1. 변환에서 쿼리에 포함할 데이터 집합을 선택하고 SQL 변환 추가를 클릭합니다.

    이름에서 변환의 이름을 설정합니다. 다른 설정에 대한 자세한 내용은 설정를 참조하십시오.

    SQL 변환을 생성할 준비가 되면 추가를 클릭합니다.

    SQL 변환 편집이 표시됩니다.

  2. 쿼리 창에 SQL 기반 테이블을 반환하는 쿼리를 작성합니다.

    자세한 내용은 SQL 쿼리 편집를 참조하십시오.

  3. 쿼리 실행을 클릭합니다.

    그러면 메타데이터와 데이터의 미리 보기를 가져옵니다.

  4. 매개 변수에서 매개 변수를 검토합니다.

    자세한 내용은 매개 변수를 참조하십시오.

  5. 메타데이터에서 기본 키를 설정합니다.

    자세한 내용은 메타데이터를 참조하십시오.

  6. 쿼리 결과에 만족하면 저장 후 닫기를 클릭합니다. 이제 데이터 집합이 대상 목록에 추가되며 미리 볼 수 있습니다.

SQL 쿼리 편집

쿼리 창에 SQL 기반 테이블을 반환하는 쿼리를 입력합니다. 쿼리는 선택한 소스 데이터 집합에서만 읽을 수 있지만 추가를 사용하여 소스 데이터 집합을 더 추가할 수 있습니다.

  • 개체에서 데이터 집합을 로드하는 문을 생성할 수 있습니다. 자세히를 클릭한 다음 SELECT 문 추가를 클릭합니다.

  • 자세히를 클릭한 다음 복사를 클릭하여 데이터 집합의 이름을 클립보드에 복사할 수 있습니다.

  • >를 클릭하여 데이터 집합 또는 열 이름을 편집기로 이동합니다.

  • 검색을 클릭하여 편집기에서 텍스트를 검색하고 바꿉니다.

정보 메모생성형 AI를 사용하여 쿼리를 생성하려면 SQL assistant를 사용할 수 있습니다. 자세한 내용은 텍스트 프롬프트에서 SQL 변환 생성를 참조하십시오. SQL assistantQlik Cloud Government에서 사용할 수 없습니다.

증분 로드를 사용하는 경우 매크로를 사용하여 초기 로드 또는 증분 로드가 수행될 때 실행되도록 쿼리를 조정할 수 있습니다.

자세한 내용은 매크로를 사용하여 로드 유형에 맞게 쿼리 조정를 참조하십시오.

바로 가기 키

정보 메모바로 가기 키는 Windows에서 작업한다고 가정하여 표현됩니다. macOS의 경우 Ctrl 대신 Command를 사용하십시오.
  • Ctrl+F 검색 및 바꾸기

  • Ctrl+/ 현재 줄 주석 처리/주석 해제

  • Ctrl+Enter 쿼리 실행

  • Ctrl+Z 실행 취소

  • Ctrl+Y 다시 실행

결과 미리 보기

결과에서 데이터의 샘플을 사용하여 결과를 미리 볼 수 있습니다.

정보 메모데이터 미리 보기는 Administration의 테넌트 수준에서 활성화되어야 합니다. 기능 제어 아래의 설정에서 Data Integration에서 데이터 보기 옵션을 찾을 수 있습니다.

데이터를 미리 보려면 다음 역할을 할당받아야 합니다.

  • 연결이 있는 공간의 데이터를 볼 수 있음.

  • 프로젝트가 있는 공간의 볼 수 있음.

데이터의 샘플을 사용한 결과가 표시됩니다. 행 수를 사용하여 샘플에 포함할 데이터 행 수를 설정할 수 있습니다.

  • 마지막으로 실행된 쿼리를 클릭하여 마지막으로 실행된 쿼리의 마지막 실행 시간 및 기간을 확인합니다.

결과 필터링

하나 이상의 열을 기준으로 결과를 필터링할 수 있습니다.

  • 필터링할 첫 번째 열에서 자세히를 클릭한 다음 필터를 클릭합니다.

    사용할 연산자와 필터링할 값을 선택합니다.

    필터 추가를 클릭하여 열 필터를 더 추가할 수 있습니다.

필터는 기존 샘플 데이터에만 영향을 미칩니다.

결과 정렬

특정 열을 기준으로 데이터 샘플을 정렬할 수 있습니다.

  • 정렬할 열에서 자세히를 클릭한 다음 오름차순 정렬 또는 내림차순 정렬을 클릭합니다.

정렬은 기존 샘플 데이터에만 영향을 미칩니다. 필터를 사용하여 2024년의 주문만 포함하고 정렬 순서를 반전시킨 경우에도 샘플 데이터에는 여전히 2024년의 주문만 포함됩니다.

표시된 열 관리

결과에 표시할 열을 선택할 수 있습니다. 변환을 저장할 때 선택 항목은 저장되지 않습니다.

  • 열에서 자세히를 클릭한 다음 열 숨기기를 클릭하여 열을 숨깁니다.

  • 아무 열에서나 자세히를 클릭한 다음 표시된 열을 클릭하여 모든 열의 표시를 관리합니다.

매개 변수

매개 변수를 클릭하여 SELECT 쿼리의 매개 변수를 변경합니다. 매개 변수는 소스 또는 대상 개체에 매핑되어야 합니다.

다음과 같은 경우 매개 변수가 자동으로 매핑됩니다.

  • 개체에서 SELECT 문 추가를 사용합니다.

  • >를 클릭하여 데이터 집합 또는 열 이름을 편집기로 이동합니다.

  • 매개 변수 이름이 개체의 테이블에 있는 테이블 이름과 일치합니다.

정보 메모임의의 매개 변수 이름을 사용하는 경우 매개 변수를 수동으로 매핑해야 합니다. 데이터 집합 이름과 일치하는 매개 변수 이름만 자동으로 매핑됩니다.

다음에 매핑할 수 있습니다.

  • 기록 유형 2 구조(_history)

  • 현재 구조

  • 대상 개체

    매개 변수가 증분 매크로 내에 정의된 경우에만 대상 개체를 매핑할 수 있습니다.

팁 메모매개 변수를 참조로 바꾸어 읽기 쉬운 쿼리를 만들 수 있습니다. 매개 변수의 값을 변경하면 SELECT 쿼리의 참조도 변경됩니다.

메타데이터

메타데이터에서 메타데이터 설정을 편집할 수 있습니다.

  • 열에서 기본 키를 설정합니다.

    키 제안 및 검증을 클릭하여 적합한 기본 키에 대한 제안을 받고 키를 검증할 수 있습니다.

  • Null 허용 열에서 열이 null을 허용하는지 설정합니다.

  • 열을 선택하고 편집을 클릭하여 열 이름, 키, null 허용 여부 및 데이터 유형을 설정합니다.

키 제안 및 검증

키 제안 및 검증을 클릭하여 적합한 기본 키에 대한 제안을 받고 키를 검증할 수 있습니다. 전체 SQL 쿼리가 한 번 이상 실행되었어야 합니다.

  • 교차 지역 추론에 동의한 경우 GenAI를 사용하여 키를 제안합니다. 이를 통해 Qlik Cloud가 테넌트 지역 외부로 추론 요청을 보낼 수 있습니다. 추론 처리 위치에 대한 자세한 내용과 최신 정보는 지역 간 추론 활성화를 참조하십시오.

    정보 메모Qlik은 생성된 출력을 제어하지 않습니다. GenAI의 특성상 응답은 검토나 편집 없이 요구 사항을 충족하는 SQL을 생성하지 않을 수 있습니다. 생성된 쿼리는 Qlik 고객 계약 조건에 따라 "콘텐츠"로 간주됩니다.
    Qlik Cloud 정부 메모

    GenAI 지원 키 제안은 Qlik Cloud Government에서 사용할 수 없습니다.

    GenAI가 활성화되지 않은 경우 소스 테이블 데이터를 기반으로 프로그래밍 방식으로 키가 제안됩니다.

  • 검증은 중복이나 NULL 값이 없는지 확인하는 SQL 쿼리를 실행하여 GenAI를 사용하지 않고 항상 수행됩니다.

    정보 메모검증은 쿼리가 데이터를 반환한 경우에만 사용할 수 있습니다.
  • 키 제안 및 검증

    쿼리 및 소스 테이블 키를 검토하고 유효한 기본 키를 제안합니다. 이 작업은 다소 시간이 걸릴 수 있습니다.

  • 키 검증

    기존 기본 키를 검증하여 고유하고 NULL이 아닌지 확인합니다. 이 작업은 다소 시간이 걸릴 수 있습니다.

  • 검증 없이 제안

    쿼리 및 소스 테이블 키를 검토하고 검증 없이 기본 키를 제안합니다. 키를 적용하기 전에 수동으로 검토하고 검증하십시오.

쿼리 실행

개발 중 언제든지 쿼리 실행을 클릭하여 쿼리를 실행할 수 있습니다. 쿼리를 처음 실행하면 메타데이터가 검색됩니다. 쿼리가 실행되면 메타데이터로 이동하여 변환을 완료하는 데 필요한 기본 키를 설정할 수 있습니다.

정보 메모편집기에 둘 이상의 쿼리가 포함된 경우 쿼리를 선택하고 쿼리 실행을 클릭하여 단일 쿼리를 실행할 수 있습니다.

매크로를 사용하여 로드 유형에 맞게 쿼리 조정

증분 로드를 사용하는 경우 매크로를 사용하여 초기 로드 또는 증분 로드가 수행될 때 실행되도록 쿼리를 조정할 수 있습니다.

매크로를 선택하고 해당 절 안에 쿼리를 추가합니다.

  • Q_RUN_INCREMENTAL은 증분 로드가 수행될 때만 실행되는 쿼리를 배치할 수 있는 절을 추가합니다.

  • Q_RUN_INITIAL_LOAD는 초기 로드가 수행될 때만 실행되는 쿼리를 배치할 수 있는 절을 추가합니다.

각 매크로에 전체 쿼리를 지정할 필요는 없습니다. 사용 사례에 따라 코드를 조정하거나 추가할 수 있습니다.

사용 사례: 날짜 범위를 사용한 증분 필터:

이 사용 사례에서는 사용자 지정 SQL을 사용하여 주문 데이터 집합을 변환해야 합니다. 대규모 데이터 집합이므로 증분 로드가 지난 12시간 동안의 주문만 고려하도록 증분 필터링을 포함하려고 합니다.

기본 쿼리는 다음과 같습니다.

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM “mydb”.”myStorageTask”.”ORDER” O JOIN “mydb”.”myStorageTask”.”ORDER_DETAIL” OD ON O.ORDER_ID = OD.ORDER_ID

다음은 증분 실행 중에 적용할 필터로, 지난 12시간 동안 추가된 주문만 고려합니다.

WHERE OD.UPDATE_DTM > DATEADD(hour, -12, CURRENT_TIMESTAMP())
팁 메모SQL 기반 테이블을 구현할 때 테이블 이름을 ${TABLE} 표기법으로 바꾸는 것이 좋습니다. 이렇게 하면 개발에서 프로덕션으로 이동할 때와 같이 환경마다 변경될 수 있는 데이터베이스 및 스키마 이름의 하드 코딩을 방지할 수 있습니다.

다음은 필터 매크로를 사용하고 테이블 이름을 ${TABLE} 표기법으로 바꾼 전체 쿼리입니다.

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID {{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}} WHERE OD.UPDATE_DTM > DATEADD(hour, -12, CURRENT_TIMESTAMP() ) {{/QLIK_FUNC_IF}}

결과적으로 초기 로드 쿼리는 다음과 같습니다.

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID

그리고 증분 로드 쿼리는 다음과 같습니다.

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID WHERE OD.UPDATE_DTM > DATEADD(hour, -12, CURRENT_TIMESTAMP() )

사용 사례: 대상의 데이터를 사용한 증분 필터:

이 사용 사례에서는 사용자 지정 SQL을 사용하여 주문 데이터 집합을 변환해야 합니다. 주문은 대규모 데이터 집합이므로 증분 로드가 대상 테이블의 데이터보다 최신인 주문 세부 정보 레코드만 고려하도록 증분 필터링을 포함하려고 합니다. 또한 행이 초기 로드 또는 증분 로드에 의해 처리되었는지 여부를 표시하려고 합니다.

정보 메모이 예에서 볼 수 있듯이 매크로를 사용하여 초기 로드 또는 증분 로드에 대한 쿼리의 모든 부분을 조정할 수 있습니다.

기본 쿼리는 다음과 같습니다.

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM “mydb”.”myStorageTask”.”ORDER” O JOIN “mydb”.”myStorageTask”.”ORDER_DETAIL” OD ON O.ORDER_ID = OD.ORDER_ID

다음은 증분 실행 중에 적용할 필터입니다. “ORDERS_DERIVED”는 대상 데이터 집합의 이름입니다.

WHERE OD.UPDATE_DTM > = (SELECT MAX(LAST_UPDATE_DTM) FROM “mydb”.”myTrasformTask”.”ORDERS_DERIVED” )
팁 메모증분 로드는 변환 작업에서 생성된 대상 개체에 ${TABLE} 표기법을 매핑할 수도 있습니다.

다음은 필터 매크로를 사용하고 테이블 이름을 ${TABLE} 표기법으로 바꾼 전체 쿼리입니다. 로드가 초기인 경우 LOADED_BYINIT로 설정되고 로드가 증분인 경우 INCR로 설정됩니다.

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT, OD.LAST_UPDATE_DTM, {{#QLIK_FUNC_IF Q_RUN_INITIAL_LOAD}} ‘INIT’ as LOADED_BY {{/QLIK_FUNC_IF}} {{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}} ‘INCR’ as LOADED_BY {{/QLIK_FUNC_IF}} FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID {{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}} WHERE OD.UPDATE_DTM >= (SELECT MAX(LAST_UPDATE_DTM) FROM ${TARGET_TABLE} ) {{/QLIK_FUNC_IF}}

결과적으로 초기 로드 쿼리는 다음과 같습니다.

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT, OD.LAST_UPDATE_DTM, ‘INIT’ as LOADED_BY FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID

그리고 증분 로드 쿼리는 다음과 같습니다.

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT, OD.LAST_UPDATE_DTM, ‘INCR’ as LOADED_BY FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID WHERE OD.UPDATE_DTM >= (SELECT MAX(LAST_UPDATE_DTM) FROM ${TARGET_TABLE} )

설정

설정을 클릭하여 SQL 변환의 설정을 편집합니다.

  • 이름에 대상 데이터 집합의 이름을 입력합니다.

    설명에 더 긴 설명을 추가할 수도 있습니다.

  • 구체화에서 변환된 출력을 구체화할지 여부를 선택합니다. 데이터 작업 설정에서 설정을 상속하도록 선택할 수 있습니다.

    • 켜기는 테이블을 만들고 관련 ELT 처리를 처리합니다.

    • 끄기를 선택하면 즉시 변환을 수행하는 보기가 만들어집니다.

  • 기록 데이터 저장소(유형 2)에서 기록 데이터를 보관할지 여부를 선택합니다. 데이터 작업 설정에서 설정을 상속하도록 선택할 수 있습니다. 이 설정을 사용하려면 실체화가 켜져 있어야 합니다.

  • 증분 로드를 사용하면 매크로를 사용하여 처리되는 데이터 집합을 줄이기 위해 필터나 기타 조건을 적용하여 증분 데이터 로드에 대한 쿼리를 조정할 수 있습니다. 증분 로드는 데이터가 테이블로 구체화된 경우에만 사용할 수 있습니다.

    • 증분 로드켜기인 경우

      작업을 처음 실행하면 초기 로드가 수행되어 쿼리의 모든 결과가 대상 테이블에 삽입됩니다. 후속 실행에서는 증분 처리를 위해 정의한 필터 또는 특정 조건을 활용하여 증분 로드를 실행합니다. 증분 로드 중에 작업은 데이터를 업데이트 또는 삽입으로만 처리하며 삭제는 관리되지 않습니다.

    • 증분 로드끄기인 경우

      작업을 처음 실행하면 초기 로드가 수행되어 쿼리의 모든 결과가 대상 테이블에 삽입됩니다. 후속 실행에서는 대상 테이블과 비교하고 신규, 변경 또는 삭제된 레코드를 처리하여 쿼리의 모든 결과를 처리합니다.

    정보 메모쿼리가 대상에 있어야 하는 모든 레코드를 선택하는 경우 증분 로드를 끄기로 설정합니다. 선택되지 않은 레코드는 대상에서 삭제됩니다.
  • 모범 사례

    • SQL 변환을 추가할 때 기본 키는 자동으로 정의되지 않습니다. 데이터 집합 탭에서 데이터 집합에 키를 추가합니다.

    • 변환된 출력에서 열 머리글을 수동으로 생성하지 마십시오.

    • SELECT와 *를 함께 사용하면 쿼리가 실행될 때마다 다른 열이 반환될 수 있으므로 사용하지 마십시오. 스키마에 변경 사항이 있는 경우 그에 따라 쿼리를 변경하고 테이블 설명을 다시 수행하십시오. 그런 다음 열을 편집하고 테이블을 조정할 수 있습니다.

    이 페이지가 도움이 되었습니까?

    이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 알려 주십시오!