기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

SQL 변환 추가

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

변환 작업 만들기에 대한 자세한 내용은 데이터 변환을 참조하십시오.

SQL 변환 추가

변환 데이터 작업에 SQL 변환을 추가하려면 다음을 수행합니다.

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

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

    SQL 변환을 만들 준비가 되면 추가를 클릭합니다.

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

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

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

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

    이렇게 하면 메타데이터와 데이터 미리 보기를 가져옵니다.

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

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

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

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

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

SQL 쿼리 편집

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

  • 데이터세트를 객체에서 로드하는 문을 생성할 수 있습니다. 더 보기을(를) 클릭한 다음 편집기에서 select 문 생성을(를) 클릭합니다.

  • 더 보기을(를) 클릭한 다음 복사를 클릭하여 데이터세트 이름을 클립보드에 복사할 수 있습니다.

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

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

정보 메모SQL 도우미를 사용하여 생성형 AI를 사용하는 쿼리를 생성할 수 있습니다. 자세한 내용은 텍스트 프롬프트에서 SQL 변환 생성을 참조하십시오. SQL 도우미Qlik Cloud 정부에서 사용할 수 없습니다.

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

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

키보드 바로 가기

정보 메모키보드 바로 가기는 Windows에서 작업하는 경우를 기준으로 설명합니다. macOS의 경우 Ctrl 대신 Command를 사용하십시오.
  • Ctrl+F 검색 및 바꾸기

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

  • Ctrl+Enter 쿼리 실행

  • Ctrl+Z 실행 취소

  • Ctrl+Y 다시 실행

결과 미리 보기

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

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

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

  • 연결이 있는 공간에서 데이터를 볼 수 있음 역할.

  • 프로젝트가 있는 공간에서 볼 수 있음 역할.

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

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

결과 필터링

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

  • 필터링할 첫 번째 열에서 더 보기을(를) 클릭한 다음 필터를 클릭합니다.

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

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

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

결과 정렬

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

  • 정렬할 열에서 더 보기을(를) 클릭한 다음 오름차순 정렬 또는 내림차순 정렬을(를) 클릭합니다.

정렬은 기존 샘플 데이터에만 영향을 미칩니다. 을 사용하여 2024년 주문만 포함하고 역순으로 정렬한 경우 샘플 데이터에는 여전히 2024년 주문만 포함됩니다.

표시된 열 관리

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

  • 열에서 더 보기을(를) 클릭한 다음 열 숨기기를 클릭하여 열을 숨깁니다.

  • 임의의 열에서 더 보기을(를) 클릭한 다음 표시된 열을 클릭하여 모든 열의 표시를 관리합니다.

매개 변수

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

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

  • 개체에서 편집기에서 select 문 생성을(를) 사용합니다.

  • 데이터 세트 또는 열 이름을 편집기로 이동하려면 >을(를) 클릭합니다.

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

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

다음으로 매핑할 수 있습니다.

  • 기록 유형 2 구조(_history)

  • 현재 구조

  • 대상 개체

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

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

메타데이터

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

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

  • Null 허용 열에서 해당 열이 Null을 허용하는지 여부를 설정합니다.

  • 열을 선택하고 편집을 클릭하여 열 이름, 키, 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를 사용하지 마십시오. 스키마가 변경된 경우 그에 따라 쿼리를 변경하고 Describe table을 다시 수행합니다. 그런 다음 열을 편집하고 테이블을 조정할 수 있습니다.

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

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