테이블 파티션 및 클러스터 만들기

이 문서에서는 Dataform Core를 사용하여 테이블 파티션 및 클러스터를 만드는 방법을 보여줍니다.

BigQuery는 파티션을 나눈 테이블 및 테이블 클러스터링을 지원합니다. BigQuery의 파티션 및 클러스터에 대한 자세한 내용은 파티션을 나눈 테이블 소개클러스터링된 테이블 만들기 및 사용을 참조하세요.

시작하기 전에

  1. Cloud 콘솔에서 Dataform 페이지로 이동합니다.

    Dataform 페이지로 이동

  2. 저장소를 선택하거나 만듭니다.

  3. 개발 작업공간을 선택하거나 만듭니다.

  4. 테이블을 만듭니다.

필요한 역할

테이블 파티션 및 클러스터를 구성하는 데 필요한 권한을 얻으려면 관리자에게 작업공간의 Dataform 편집자(roles/dataform.editor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

테이블 파티션 만들기

테이블 파티션을 만들려면 테이블 정의 SQLX 파일의 bigquery 블록에 BigQuery partition_expression을 추가합니다.

테이블 파티션을 만들려면 다음 단계를 따르세요.

  1. 개발 작업공간으로 이동합니다.
  2. 파일 창에서 definitions/를 펼칩니다.
  3. 테이블 정의 SQLX 파일을 엽니다.
  4. config 블록에서 테이블 유형 선언 아래에 bigquery 블록을 다음 형식으로 추가합니다.

    config {
      type: "table",
      bigquery: {
      }
    }
    
  5. bigquery 블록에 다음 코드 스니펫을 입력합니다.

        partitionBy: "PARTITION_EXPRESSION"
    

    PARTITION_EXPRESSION을 테이블 파티션 나누기의 표현식으로 바꿉니다.

  6. (선택사항): 형식을 클릭합니다.

다음 코드 샘플은 테이블 정의 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의 파티션 필터에 대한 자세한 내용은 파티션을 나눈 테이블에 필수 파티션 필터 속성 설정을 참조하세요.

파티션 필터를 설정하려면 다음 단계를 따르세요.

  1. 개발 작업공간으로 이동합니다.
  2. 파일 창에서 definitions/를 펼칩니다.
  3. 파티션을 나눈 테이블 정의 SQLX 파일을 엽니다.
  4. bigquery 블록에 다음 코드 스니펫을 입력합니다.

    requirePartitionFilter : true
    
  5. (선택사항): 형식을 클릭합니다.

다음 코드 샘플은 파티션을 나눈 테이블 SQLX 파일의 bigquery 블록에 설정된 파티션 필터를 보여줍니다.

config {
  type: "table",
  bigquery: {
    partitionBy: "DATE(ts)",
    requirePartitionFilter : true
  }
}
SELECT CURRENT_TIMESTAMP() AS ts

파티션 보관 기간 설정

파티션을 나눈 테이블의 모든 파티션 보관을 제어하려면 다음 단계를 따르세요.

  1. 개발 작업공간으로 이동합니다.
  2. 파일 창에서 definitions/를 펼칩니다.
  3. 파티션을 나눈 테이블 정의 SQLX 파일을 엽니다.
  4. bigquery 블록에 다음 코드 스니펫을 입력합니다.

    partitionExpirationDays: NUMBER_OF_DAYS
    

    NUMBER_OF_DAYS를 파티션을 보관할 일수로 바꿉니다.

  5. (선택사항): 형식을 클릭합니다.

다음 코드 샘플은 파티션을 나눈 테이블 SQLX 파일의 bigquery 블록에서 14일로 설정된 파티션 보관 기간을 보여줍니다.

config {
  type: "table",
  bigquery: {
    partitionBy: "DATE(ts)",
    partitionExpirationDays: 14,
  }
}
SELECT CURRENT_TIMESTAMP() AS ts

테이블 클러스터 만들기

테이블 클러스터를 만들려면 테이블 정의 SQLX 파일의 bigquery 블록에 BigQuery clustering_column_list를 추가합니다.

테이블 클러스터를 만들려면 다음 단계를 따르세요.

  1. 개발 작업공간으로 이동합니다.
  2. 파일 창에서 definitions/를 펼칩니다.
  3. 테이블 정의 SQLX 파일을 엽니다.
  4. bigquery 블록에 다음 코드 스니펫을 입력합니다.

        clusterBy: ["CLUSTER_COLUMN"]
    

    CLUSTER_COLUMN을 테이블을 클러스터링할 열 이름으로 바꿉니다.

  5. (선택사항): 형식을 클릭합니다.

다음 코드 샘플은 name 열과 revenue 열로 클러스터링된 파티션을 나눈 테이블을 보여줍니다.

config {
  type: "table",
  bigquery: {
    partitionBy: "DATE(ts)",
    clusterBy: ["name", "revenue"]
  }
}
SELECT CURRENT_TIMESTAMP() as ts, name, revenue

다음 단계