BigQuery는 파티션을 나눈 테이블과 테이블 클러스터링을 지원합니다. BigQuery의 파티션 및 클러스터에 관한 자세한 내용은 파티션을 나눈 테이블 소개 및 클러스터형 테이블 만들기 및 사용을 참고하세요.
시작하기 전에
필요한 역할
테이블 파티션 및 클러스터를 구성하는 데 필요한 권한을 얻으려면 관리자에게 작업공간에 대한 Dataform 편집자(roles/dataform.editor
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
테이블 파티션 만들기
테이블 파티션을 만들려면 테이블 정의 SQLX 파일의 bigquery
블록에 BigQuery partition_expression을 추가합니다.
테이블 파티션을 만들려면 다음 단계를 따르세요.
- 개발 작업공간으로 이동합니다.
- 파일 창에서
definitions/
를 펼칩니다. - 테이블 정의 SQLX 파일을 엽니다.
config
블록에서 테이블 유형 선언 아래에 다음 형식으로bigquery
블록을 추가합니다.config { type: "table", bigquery: { } }
bigquery
블록에 다음 코드 스니펫을 입력합니다.partitionBy: "PARTITION_EXPRESSION"
PARTITION_EXPRESSION을 테이블 파티션 나누기의 표현식으로 바꿉니다.
(선택사항): 형식을 클릭합니다.
다음 코드 샘플은 테이블 정의 SQLX 파일에서 시간별로 테이블을 파티셔닝하는 방법을 보여줍니다.
config {
type: "table",
bigquery: {
partitionBy: "DATETIME_TRUNC(<timestamp_column>, HOUR)"
}
}
다음 코드 샘플은 테이블 정의 SQLX 파일에서 정수 값으로 테이블을 파티셔닝하는 방법을 보여줍니다.
config {
type: "table",
bigquery: {
partitionBy: "RANGE_BUCKET(<integer_column>, GENERATE_ARRAY(0, 1000000, 1000))"
}
}
파티션 필터 설정
BigQuery의 파티션 필터에 대한 자세한 내용은 파티션을 나눈 테이블에 필수 파티션 필터 속성 설정을 참조하세요.
파티션 필터를 설정하려면 다음 단계를 따르세요.
- 개발 작업공간으로 이동합니다.
- 파일 창에서
definitions/
를 펼칩니다. - 파티션을 나눈 테이블 정의 SQLX 파일을 엽니다.
bigquery
블록에 다음 코드 스니펫을 입력합니다.requirePartitionFilter : true
(선택사항): 형식을 클릭합니다.
다음 코드 샘플은 파티션을 나눈 테이블 SQLX 파일의 bigquery
블록에 설정된 파티션 필터를 보여줍니다.
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
requirePartitionFilter : true
}
}
SELECT CURRENT_TIMESTAMP() AS ts
파티션 보관 기간 설정
파티션을 나눈 테이블의 모든 파티션 보관을 제어하려면 다음 단계를 따르세요.
- 개발 작업공간으로 이동합니다.
- 파일 창에서
definitions/
를 펼칩니다. - 파티션을 나눈 테이블 정의 SQLX 파일을 엽니다.
bigquery
블록에 다음 코드 스니펫을 입력합니다.partitionExpirationDays: NUMBER_OF_DAYS
NUMBER_OF_DAYS를 파티션을 보관할 일수로 바꿉니다.
(선택사항): 형식을 클릭합니다.
다음 코드 샘플은 파티션을 나눈 테이블 SQLX 파일의 bigquery
블록에서 14일로 설정된 파티션의 보관 기간을 보여줍니다.
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
partitionExpirationDays: 14,
}
}
SELECT CURRENT_TIMESTAMP() AS ts
테이블 클러스터 만들기
테이블 클러스터를 만들려면 테이블 정의 SQLX 파일의 bigquery
블록에 BigQuery clustering_column_list를 추가합니다.
테이블 클러스터를 만들려면 다음 단계를 따르세요.
- 개발 작업공간으로 이동합니다.
- 파일 창에서
definitions/
를 펼칩니다. - 테이블 정의 SQLX 파일을 엽니다.
bigquery
블록에 다음 코드 스니펫을 입력합니다.clusterBy: ["CLUSTER_COLUMN"]
CLUSTER_COLUMN을 테이블을 클러스터링할 열의 이름으로 바꿉니다.
(선택사항): 형식을 클릭합니다.
다음 코드 샘플은 name
및 revenue
열로 클러스터링된 파티션을 나눈 테이블을 보여줍니다.
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
clusterBy: ["name", "revenue"]
}
}
SELECT CURRENT_TIMESTAMP() as ts, name, revenue
다음 단계
- include를 사용하여 코드를 재사용하는 방법은 include로 변수 및 함수 재사용을 참조하세요.
- 증분 테이블을 구성하는 방법은 증분 테이블 구성을 참고하세요.