이 문서에서는 테이블 정의 파일에서 추가 테이블 설정을 구성하는 방법을 보여줍니다. Dataform Core를 사용하면 pre_operations
및 post_operations
를 정의하여 테이블 생성 전이나 후에 SQL 문을 실행할 수 있습니다. 또한 database
또는 schema
등의 테이블 설정을 재정의하고 테이블 생성을 중지할 수 있습니다.
시작하기 전에
필요한 역할
추가 테이블 설정을 구성하는 데 필요한 권한을 얻으려면 관리자에게 작업공간에 대한 Dataform 편집자(roles/dataform.editor
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
테이블 설정 재정의
선택한 테이블의 스키마, 데이터베이스, 이름을 재정의할 수 있습니다.
기본적으로 테이블은 dataform.json
에서 설정한 스키마 및 데이터베이스 구성을 따릅니다. 테이블 이름은 테이블 정의 SQLX 파일의 이름과 동일합니다.
선택한 테이블의 스키마와 이름을 재정의하려면 다음 단계를 따르세요.
개발 작업공간으로 이동합니다.
파일 창에서
definitions/
를 펼칩니다.SQLX 테이블 정의 파일을 엽니다.
config
블록에 다음 코드 스니펫을 입력합니다.{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
다음을 바꿉니다.
OVERRIDDEN_SCHEMA
: 테이블을 만들 BigQuery 데이터 세트OVERRIDDEN_DATABASE
: 테이블을 만들 BigQuery 프로젝트의 IDOVERRIDDEN_NAME
: 테이블의 이름으로, SQLX 테이블 정의 파일 이름과 다름
(선택사항): 형식을 클릭합니다.
재정의된 테이블 이름으로 테이블 참조
- 재정의된 테이블 이름으로 테이블을 참조하려면
ref
함수에서name: ""
에 설정된 재정의된 테이블 이름을 입력합니다.
다음 코드 샘플은 이름이 overridden_name
으로 재정의된 테이블을 참조합니다.
SELECT * FROM ${ref("overridden_name")}
테이블 생성 전에 실행할 SQL 문 정의
BigQuery에서 선택한 테이블을 만들기 전에 하나 이상의 SQL 문을 실행하도록 Dataform을 구성할 수 있습니다. Dataform에서 선택한 테이블을 만들기 전에 SQL 문을 실행하려면 테이블 정의 SQLX 파일의 pre_operations
블록에 문을 추가합니다.
Dataform에서 특정 테이블을 만들기 전에 실행되는 커스텀 SQL 문을 만들려면 다음 단계를 따르세요.
개발 작업공간으로 이동합니다.
파일 창에서
definitions/
를 펼칩니다.SQLX 테이블 정의 파일을 엽니다.
config
블록 외부에pre_operations { ... }
를 입력합니다.pre_operations { ... }
내부에 SQL 문을 추가합니다.선택사항: 여러 문을 추가하려면
---
로 구분하세요.(선택사항): 형식을 클릭합니다.
다음 코드 샘플은 select 문에서 사용할 수 있는 임시 함수를 만드는 pre_operations
문을 보여줍니다.
pre_operations {
CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
RETURNS FLOAT64
AS ((x + 4) / y);
}
테이블 생성 후에 실행할 SQL 문 정의
BigQuery에서 선택한 테이블을 만든 후에 하나 이상의 SQL 문을 실행하도록 Dataform을 구성할 수 있습니다. Dataform에서 선택한 테이블을 만든 후에 SQL 문을 실행하려면 테이블 정의 SQLX 파일의 post_operations
블록에 문을 추가합니다. post_operations
블록에 여러 SQL 문을 추가할 수 있습니다.
Dataform에서 특정 테이블을 만든 후에 실행되는 커스텀 SQL 문을 만들려면 다음 단계를 따르세요.
개발 작업공간으로 이동합니다.
파일 창에서
definitions/
를 펼칩니다.SQLX 테이블 정의 파일을 엽니다.
config
블록 외부에post_operations { ... }
를 입력합니다.post_operations { ... }
내부에 SQL 문을 추가합니다.(선택사항): 형식을 클릭합니다.
다음 코드 샘플은 생성된 테이블에 대한 액세스 권한을 그룹에 부여하는 post_operations
문을 보여줍니다.
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
테이블 생성 중지
Dataform에서 BigQuery에 선택한 테이블을 만들지 못하도록 하려면 SQLX 테이블 정의 파일에서 테이블을 사용 중지하면 됩니다. Dataform은 사용 중지된 테이블을 종속 항목 그래프에 유지하지만 컴파일 및 생성을 수행하지 않습니다. 예를 들어 테이블이 실패하여 문제를 해결하는 동안 전체 워크플로가 실패하지 않게 하려는 경우에 이 방법이 유용할 수 있습니다.
테이블을 사용 중지하려면 다음 단계를 따르세요.
개발 작업공간으로 이동합니다.
파일 창에서
definitions/
를 펼칩니다.SQLX 테이블 정의 파일을 선택합니다.
파일의
config
블록에disabled: true
를 입력합니다.(선택사항): 형식을 클릭합니다.
다음 코드 샘플은 사용 중지된 테이블을 보여줍니다.
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
다음 단계
dataform.json
에서 Dataform 설정을 구성하는 방법을 자세히 알아보려면 Dataform 설정 구성을 참조하세요.어설션으로 테이블 데이터를 테스트하는 방법은 어설션으로 테이블 테스트를 참조하세요.
include를 사용하여 코드를 재사용하는 방법은 include로 변수 및 함수 재사용을 참조하세요.
실행을 수동으로 트리거하는 방법은 실행 트리거를 참조하세요.