외부 데이터 카탈로그에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로 메타데이터 마이그레이션

이 문서에서는 외부 데이터 카탈로그에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로 메타데이터를 이전하는 방법을 보여줍니다. BigQuery Migration Service는 다음 외부 메타 스토어의 메타데이터 마이그레이션을 지원합니다.

  • Apache Hive Metastore
  • Apache Iceberg REST 카탈로그

제한사항

  • 외부 데이터 카탈로그에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로의 메타데이터 이전은 일회성 동기화입니다. 이 기능은 지속적 또는 주기적 동기화를 지원하지 않으므로 마이그레이션 후 이루어진 쓰기는 다시 마이그레이션할 때까지 표시되지 않습니다.
  • 중첩된 네임스페이스는 지원되지 않습니다.
  • Iceberg REST 카탈로그는 Parquet 데이터 파일만 지원합니다.
  • 레이크하우스는 Apache Iceberg V3 테이블을 지원하지 않습니다.
  • 외부 데이터 카탈로그에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로의 메타데이터 이전은 최대 10,000개의 테이블 이전만 지원합니다. 워크로드에서 10,000개가 넘는 테이블을 처리해야 하는 경우 워크로드를 여러 이전으로 분할하는 것이 좋습니다.
  • 외부 데이터 카탈로그에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로의 메타데이터 이전은 조직 정책을 사용하여 도메인 제한 공유를 적용하는 것을 지원하지 않습니다.

시작하기 전에

외부 데이터 카탈로그에서 메타데이터를 마이그레이션하려면 다음 섹션의 단계를 실행해야 합니다.

API 사용 설정

BigLake, BigQuery Data Transfer, BigQuery Migration, Secret Manager, Storage Transfer API를 사용 설정합니다.

API 사용 설정에 필요한 역할

API를 사용 설정하려면 serviceusage.services.enable 권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기

API 사용 설정

Data Transfer API를 사용 설정하면 서비스 에이전트가 생성됩니다.

권한 구성

  1. 전송을 만드는 사용자 또는 서비스 계정에는 BigQuery 관리자 역할 (roles/bigquery.admin)이 부여되어야 합니다. 서비스 계정을 사용하는 경우 전송을 만드는 데만 사용됩니다.
  2. Data Transfer API를 사용 설정하면 서비스 에이전트(P4SA)가 생성됩니다.

    서비스 에이전트에 Hive Metastore 전송을 실행하는 데 필요한 권한이 있는지 확인하려면 관리자에게 프로젝트의 서비스 에이전트에 다음 IAM 역할을 부여해 달라고 요청하세요.

    역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

    관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 서비스 에이전트에 필요한 권한을 부여할 수도 있습니다.

  3. 서비스 계정을 사용하는 경우 다음 명령어를 사용하여 서비스 에이전트에 roles/iam.serviceAccountTokenCreator 역할을 부여합니다.

    gcloud iam service-accounts add-iam-policy-binding
    SERVICE_ACCOUNT --member
    serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com --role
    roles/iam.serviceAccountTokenCreator
  4. 프로젝트에서 Storage Transfer Service 서비스 에이전트(project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com)에 다음 역할을 부여합니다.

    • roles/storage.admin
    • 온프레미스/HDFS에서 이전하는 경우 roles/storagetransfer.serviceAgent 역할도 부여해야 합니다.

    더 상세한 권한을 구성할 수도 있습니다. 자세한 내용은 다음 가이드를 참고하세요.

필수 사용자 역할 및 권한

서비스 에이전트에 Apache Iceberg 마이그레이션을 위한 Lakehouse REST 카탈로그 테이블을 만들고, 수정하고, 실행하는 데 필요한 권한이 있는지 확인하려면 관리자에게 사용자에게 다음 IAM 역할을 서비스 에이전트에 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 서비스 에이전트에 필요한 권한을 부여할 수도 있습니다.

필수 서비스 계정 역할 및 권한

고객 제공 서비스 계정에 Apache Iceberg 마이그레이션을 위한 Lakehouse REST 카탈로그 테이블을 만들고, 수정하고, 실행하는 데 필요한 권한이 있는지 확인하려면 관리자에게 고객 제공 서비스 계정에 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 고객 제공 서비스 계정에 필요한 권한을 부여할 수도 있습니다.

다음 명령어를 사용하여 서비스 에이전트에 roles/iam.serviceAccountTokenCreator 역할도 부여해야 합니다.

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member user:bigquerymigration-management-borg@prod.google.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member bigquerymigration-managementworker-borg@prod.google.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID

다음을 바꿉니다.

  • SERVICE_ACCOUNT: 서비스 계정의 ID입니다.
  • PROJECT_ID: 프로젝트 ID

보안 비밀 구성

Apache Iceberg REST 카탈로그로 마이그레이션하는 경우 마이그레이션을 승인하는 보안 비밀을 만들어야 합니다. 보안 비밀은 다음 형식으로 지정해야 합니다.

{
  "client_id": "CLIENT_ID",
  "client_secret": "CLIENT_SECRET<",
  "polaris_realm": "POLARIS_REALM"
  "scope": "SCOPE"
}

다음을 바꿉니다.

  • CLIENT_ID: OAuth2.0 클라이언트 ID
  • CLIENT_SECRET: OAuth2.0 클라이언트 보안 비밀번호
  • POLARIS_REALM: Polaris 카탈로그의 영역입니다. 이 필드는 Apache Polaris에만 필요합니다. 예를 들면 FINANCE입니다.
  • SCOPE: (선택사항) OAuth2.0 범위입니다. 기본값은 PRINCIPAL_ROLE:ALL입니다.

Lakehouse 카탈로그 만들기

Lakehouse 카탈로그 만들기 마이그레이션된 메타데이터는 카탈로그를 만들 때 지정한 Cloud Storage 버킷에 저장됩니다.

메타데이터 마이그레이션

Lakehouse Iceberg REST 카탈로그 테이블로 메타데이터 마이그레이션을 시작하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 마이그레이션 > 서비스 페이지로 이동합니다.

    이전 서비스로 이동

  2. 개방형 레이크하우스 등록 또는 마이그레이션에서 마이그레이션 만들기를 클릭합니다.

  3. 마이그레이션 구성에서 다음을 수행합니다.

    1. 카탈로그 유형으로 외부 카탈로그를 선택합니다.
    2. 리전에서 리전을 선택합니다. 선택한 리전에 따라 이전 오케스트레이션 및 데이터 전송이 실행되는 위치가 결정됩니다. 또한 마이그레이션 서비스가 네트워크 연결이나 비밀번호와 같은 리소스를 사용하거나 생성하는 위치를 결정합니다.

      리전별 보안 비밀만 지원됩니다. 보안 비밀의 리전은 이 필드의 리전과 일치해야 합니다.

    3. 마이그레이션 표시 이름에 이 마이그레이션의 이름을 입력합니다.

  4. 소스 시스템 구성에서 다음을 수행합니다.

    1. URL에 Apache Iceberg 또는 Apache Hive 메타스토어의 진입점 역할을 하는 기본 엔드포인트 URL을 입력합니다.
    2. 서비스 계정에서 목록의 서비스 계정을 선택합니다. 지정하지 않으면 사용자 사용자 인증 정보를 사용하여 이 이전이 실행됩니다.
    3. (선택사항) 네트워크 연결에서 네트워크 연결을 선택합니다.
  5. 계속을 클릭합니다.

메타데이터 이전이 완료되면 외부 카탈로그의 메타데이터가 Lakehouse 카탈로그를 만들 때 지정한 Cloud Storage 버킷에 저장됩니다.

가격 책정

메타데이터를 Lakehouse Iceberg REST 카탈로그 테이블로 전송하는 데는 비용이 들지 않습니다. 메타데이터가 전송되면 레이크하우스 가격이 적용됩니다.