이 문서에서는 종속 항목을 선언하여 Dataform에서 SQL 워크플로의 객체 간 관계를 정의하는 방법을 보여줍니다.
SQL 워크플로의 객체 간 종속 항목 관계를 정의할 수 있습니다. 종속 항목 관계에서 종속 객체의 실행은 종속 항목 객체의 실행에 따라 달라집니다. 즉, Dataform은 종속 항목 객체 다음에 종속 객체를 실행합니다. 종속 객체의 SQLX 정의 파일 내에서 종속 항목을 선언하여 관계를 정의합니다.
종속 항목 선언은 Dataform에서 SQL 워크플로 객체를 실행하는 순서를 결정하는 SQL 워크플로의 종속 항목 트리를 구성합니다.
다음 SQL 워크플로 객체 간의 종속 항목 관계를 정의할 수 있습니다.
- 데이터 소스 선언
- Dataform 테이블 정의 및 SQL 작업에서 이러한 데이터 소스를 참조할 수 있는 BigQuery 데이터 소스의 선언입니다. 데이터 소스 선언을 종속 항목으로 설정할 수 있지만 종속 객체로 설정할 수는 없습니다.
- 테이블
- 선언된 데이터 소스 또는 SQL 워크플로의 다른 테이블을 기반으로 Dataform에서 만드는 테이블입니다. Dataform은 테이블, 증분 테이블, 뷰, 구체화된 뷰와 같은 테이블 유형을 지원합니다. 테이블을 종속 항목과 종속으로 설정할 수 있습니다.
- 커스텀 SQL 작업
- Dataform이 수정하지 않고 그대로 BigQuery에서 실행하는 SQL 문입니다.
type: operations
파일에서 정의된 커스텀 SQL 작업을 종속 항목 및 종속으로 설정할 수 있습니다. 커스텀 SQL 작업을ref
함수에서 종속 항목으로 선언하려면 커스텀 SQL 작업 SQLX 정의 파일에서hasOutput
속성을true
로 설정해야 합니다. - 어설션
- 테이블 데이터를 테스트하는 데 사용할 수 있는 데이터 품질 테스트 쿼리입니다.
Dataform은 SQL 워크플로를 업데이트할 때마다 어설션을 실행하고 어설션이 실패할 경우 알림을 제공합니다.
type: assertion
파일에 정의된 어설션을 종속 항목으로,config
블록의 종속 항목을 선언하여 종속으로 설정할 수 있습니다.
다음과 같은 방법으로 종속 항목 관계를 정의할 수 있습니다.
- Dataform Core
ref
함수를 사용하여 종속 항목을 선언하고SELECT
문에서 종속 항목을 참조합니다. - SQLX 정의 파일의
config
블록에서 종속 항목 목록을 선언합니다.
시작하기 전에
- 저장소에서 개발 작업공간을 만들고 초기화합니다.
- 선택사항: 데이터 소스를 선언합니다.
- 최소 둘 이상의 SQL 워크플로 객체를 만듭니다. 테이블, 어설션, 데이터 소스 선언 또는 작업
필요한 역할
테이블, 어설션, 데이터 소스 선언, 커스텀 SQL 작업의 종속 항목을 선언하는 데 필요한 권한을 얻으려면 관리자에게 작업공간의 Dataform 편집자(roles/dataform.editor
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
종속 항목을 ref
함수의 인수로 선언
SELECT
문에서 종속 항목을 참조하고 자동으로 선언하려면 종속 항목을 ref
함수의 인수로 추가합니다.
ref
함수는 SQL 워크플로에서 true
로 설정된 hasOutput
속성을 사용하여 모든 테이블, 데이터 소스 선언 또는 커스텀 SQL 작업을 참조하고 자동으로 종속되도록 하는 Dataform Core 기본 제공 함수입니다.
ref
함수에 대한 자세한 내용은 Dataform Core 컨텍스트 메서드 참조를 확인하세요.
테이블 정의에서 ref
함수를 사용하는 방법에 대한 자세한 내용은 테이블 정의 정보를 참조하세요.
다음 코드 샘플은 증분 테이블의 incremental_table.sqlx
SQLX 정의 파일에서 ref
함수의 인수로 추가된 source_data
데이터 소스 선언을 보여줍니다.
// filename is incremental_table.sqlx
config { type: "incremental" }
SELECT * FROM ${ref("source_data")}
앞의 코드 샘플에서 source_data
은 자동으로 incremental_table
의 종속 항목을 선언합니다.
다음 코드 샘플은 어설션의 custom_assertion.sqlx
SQLX 정의 파일에서 ref
함수의 인수로 추가된 some_table
테이블 정의 SQLX 파일을 보여줍니다.
// filename is custom_assertion.sqlx
config { type: "assertion" }
SELECT
*
FROM
${ref("some_table")}
WHERE
a is null
or b is null
or c is null
앞의 코드 샘플에서 some_table
은 자동으로 custom_assertion
의 종속 항목을 선언합니다. 실행 중에 Dataform은 먼저 some_table
을 실행한 다음 some_table
이 생성되면 custom_assertion
을 실행합니다.
config
블록에서 종속 항목 선언
종속의 SQL 문 정의에서 참조되지 않지만 테이블, 어설션 또는 커스텀 SQL 작업 전에 실행해야 하는 종속 항목을 선언하려면 다음 단계를 따르세요.
- 개발 작업공간의 파일 창에서
definitions/
디렉터리를 펼칩니다. - 수정할 테이블, 어설션 또는 커스텀 SQL 작업 SQLX 파일을 선택합니다.
파일의
config
블록에 다음 코드 스니펫을 입력합니다.dependencies: [ "DEPENDENCY", ]
DEPENDENCY를 종속 항목으로 추가하려는 테이블, 어설션, 데이터 소스 선언 또는 커스텀 SQL 작업의 파일 이름으로 바꿉니다. 여러 파일 이름을 쉼표로 구분하여 입력할 수 있습니다.
(선택사항): 형식을 클릭합니다.
다음 코드 샘플은 테이블 정의 파일의 config
블록에 종속 항목으로 추가된 some_table
테이블과 some_assertion
어설션을 보여줍니다.
config { dependencies: [ "some_table", "some_assertion" ] }
다음 단계
- 어설션을 종속 항목으로 설정하는 방법은 어설션으로 테이블 테스트를 참조하세요.
- 데이터 소스를 선언하는 방법은 데이터 소스 선언을 참조하세요.
- 커스텀 SQL 작업을 정의하는 방법은 커스텀 SQL 작업 추가를 참조하세요.
- include를 사용하여 SQL 워크플로에서 코드를 재사용하는 방법은 include로 변수 및 함수 재사용을 참조하세요.