BigQuery에서 Apache Iceberg 테이블 구성

Datastream을 사용하면 소스의 데이터를 BigQuery의 Apache Iceberg 테이블로 복제할 수 있습니다. Apache Iceberg 테이블은 표준 BigQuery 테이블과 동일한 완전 관리형 환경을 제공하면서 자체 Cloud Storage 버킷 내에 Parquet 형식으로 데이터를 저장합니다. 이 설정을 사용하면 기본 스토리지에 대한 전체 제어권을 유지하면서 BigQuery를 사용하여 데이터를 쿼리하고 분석할 수 있습니다.

Datastream은 추가 전용 쓰기 모드에서만 Apache Iceberg 테이블로의 스트리밍을 지원합니다. 자세한 내용은 쓰기 모드 구성을 참조하세요.

테이블 메타데이터

Datastream은 BigQuery 대상에 기록되는 각 테이블에 datastream_metadata라는 STRUCT 열을 추가합니다.

datastream_metadata 열에는 다음 필드가 포함됩니다.

  • UUID: 이 필드에는 STRING 데이터 유형이 포함됩니다.
  • SOURCE_TIMESTAMP: 이 필드에는 INTEGER 데이터 유형이 포함됩니다.
  • CHANGE_SEQUENCE_NUMBER: 이 필드에는 STRING 데이터 유형이 포함됩니다. 각 변경 이벤트에 대해 Datastream에 사용되는 내부 시퀀스 번호입니다.
  • CHANGE_TYPE: 이 필드에는 STRING 데이터 유형이 포함됩니다. 변경 이벤트의 유형을 나타냅니다. 추가 전용 쓰기 모드의 값은 INSERT입니다.
  • SORT_KEYS: 이 필드에는 STRING 값 배열이 포함됩니다. 이 값을 사용하여 변경 이벤트를 정렬할 수 있습니다.

Apache Iceberg 테이블로의 스트리밍 구성

Apache Iceberg 테이블에 데이터를 수집하도록 스트림을 설정하려면 다음 단계를 완료해야 합니다.

  1. 데이터를 저장할 Cloud Storage 버킷을 만듭니다.
  2. BigQuery에서 Cloud 리소스 연결을 만듭니다. 이 유형의 연결을 만드는 방법에 대한 자세한 내용은 Cloud 리소스 연결 만들기 및 설정을 참조하세요.
  3. 연결 서비스 계정의 식별자를 가져옵니다.

    bq show --location=LOCATION --connection --project_id=PROJECT_ID
    CONNECTION_NAME
    
  4. 생성된 Cloud Storage 버킷에 대한 Cloud 리소스 연결 액세스 권한을 부여합니다. 이렇게 하려면 연결 서비스 계정에 storage.admin IAM 권한을 추가합니다.

    gcloud storage buckets add-iam-policy-binding gs://YOUR_GCS_BUCKET \
    --member=serviceAccount:YOUR_SERVICE_ACCOUNT_ID \
    --role=roles/storage.admin
    
  5. Apache Iceberg 테이블 스트림을 만듭니다.

    Google Cloud 콘솔을 사용하여 Apache Iceberg 테이블 스트림을 만드는 방법은 스트림 만들기를 참조하세요.

    REST, Google Cloud CLI 또는 Terraform을 사용하여 Apache Iceberg 테이블로 데이터를 스트리밍하는 요청을 만드는 방법은 API를 사용하여 스트림 관리를 참조하세요.

다음 단계