외부 Data Catalog에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로 메타데이터 마이그레이션
이 문서에서는 외부 Data Catalog에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로 메타데이터를 마이그레이션하는 방법을 보여줍니다. BigQuery Migration Service는 다음 외부 metastore에서 메타데이터 마이그레이션을 지원합니다.
- Apache Hive Metastore
- Apache Iceberg REST 카탈로그
제한사항
- 외부 Data Catalog에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로의 메타데이터 마이그레이션은 일회성 동기화입니다. 이 기능은 지속적 또는 주기적 동기화를 지원하지 않으므로 마이그레이션 후 수행된 쓰기는 다시 마이그레이션할 때까지 표시되지 않습니다.
- 중첩된 네임스페이스는 지원되지 않습니다.
- Iceberg REST 카탈로그는 Parquet 데이터 파일만 지원합니다.
- 경계 없는 레이크하우스는 Apache Iceberg V3 테이블을 지원하지 않습니다.
- 외부 Data Catalog에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로의 메타데이터 마이그레이션은 최대 10,000개의 테이블 마이그레이션만 지원합니다. 워크로드에서 10,000개 이상의 테이블을 처리해야 하는 경우 워크로드를 여러 마이그레이션으로 분할하는 것이 좋습니다.
- 외부 Data Catalog에서 Apache Iceberg용 Lakehouse REST 카탈로그 테이블로 메타데이터를 마이그레이션할 때는 조직 정책을 사용하여 도메인 제한 공유를 적용할 수 없습니다.
시작하기 전에
외부 Data Catalog에서 메타데이터를 마이그레이션하려면 먼저 다음 섹션의 단계를 수행해야 합니다.
API 사용 설정
BigLake, BigQuery Data Transfer, BigQuery Migration, Secret Manager, Storage Transfer API가 아직 사용 설정되지 않은 경우 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면 serviceusage.services.enable 권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할 부여 방법 알아보기
Data Transfer API를 사용 설정하면 서비스 에이전트가 생성됩니다.
권한 구성
- 전송을 만드는 사용자 또는 서비스 계정에 BigQuery 관리자 역할 (
roles/bigquery.admin)을 부여해야 합니다. 서비스 계정을 사용하는 경우 전송을 만드는 데만 사용됩니다. Data Transfer API를 사용 설정하면 서비스 에이전트(P4SA)가 생성됩니다.
서비스 에이전트에 Hive Metastore 전송을 실행하는 데 필요한 권한이 있는지 확인하려면 관리자에게 프로젝트의 서비스 에이전트에 다음 IAM 역할을 부여해 달라고 요청하세요.
- 스토리지 전송 관리자 (
roles/storagetransfer.admin) - 서비스 사용량 소비자(
roles/serviceusage.serviceUsageConsumer) - 스토리지 관리자 (
roles/storage.admin) -
메타데이터를 Lakehouse 런타임 카탈로그 (Iceberg REST 카탈로그 또는 Hive 카탈로그)로 마이그레이션하려면 BigLake 관리자 (
roles/biglake.admin) 역할이 필요합니다.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 서비스 에이전트에 필요한 권한을 부여할 수도 있습니다.
- 스토리지 전송 관리자 (
서비스 계정을 사용하는 경우 다음 명령어를 사용하여 서비스 에이전트에
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
Storage Transfer Service 서비스 에이전트(
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com)에 프로젝트의 다음 역할을 부여합니다.roles/storage.admin- 온프렘/HDFS에서 마이그레이션하는 경우
roles/storagetransfer.serviceAgent역할도 부여해야 합니다.
더 세분화된 권한을 구성할 수도 있습니다. 자세한 내용은 다음 가이드를 참조하세요.
필수 사용자 역할 및 권한
서비스 에이전트에 Apache Iceberg 마이그레이션을 위한 Lakehouse REST 카탈로그 테이블을 만들고, 수정하고, 실행하는 데 필요한 권한이 있는지 확인하려면 관리자에게 사용자에게 서비스 에이전트에 다음 IAM 역할을 부여해 달라고 요청하세요.
- 서비스 계정 사용자(
roles/iam.serviceAccountUser) - 마이그레이션 관리 편집자 (
roles/bigquerymigration.migrationEditor)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 서비스 에이전트에 필요한 권한을 부여할 수도 있습니다.
필수 서비스 계정 역할 및 권한
고객 제공 서비스 계정에 Apache Iceberg 마이그레이션을 위한 Lakehouse REST 카탈로그 테이블을 만들고, 수정하고, 실행하는 데 필요한 권한이 있는지 확인하려면 관리자에게 고객 제공 서비스 계정에 다음 IAM 역할을 부여해 달라고 요청하세요.
-
네트워크 연결에 대한 액세스: 서비스 계정의 Compute 네트워크 관리자 (
roles/compute.networkAdmin) -
BigQuery Data Transfer Service에 대한 액세스: 서비스 계정의 BigQuery 관리자 (
roles/bigquery.admin) -
레이크하우스 리소스에 대한 액세스: 서비스 계정에 대한 BigLake 편집자 (
roles/biglake.editor) 권한 -
보안 비밀에 대한 액세스: 고객 제공 보안 비밀에 대한 Secret Manager 보안 비밀 접근자 (
roles/secretmanager.secretAccessor)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 고객 제공 서비스 계정에 필요한 권한을 부여할 수도 있습니다.
또한 BigQuery Migration Service의 서비스 ID를 만들고 roles/iam.serviceAccountTokenCreator 역할을 부여해야 합니다.
서비스 ID를 만들려면 다음 명령어를 실행합니다.
gcloud beta services identity create --service=bigquerymigration.googleapis.com --project=PROJECT_ID
서비스 에이전트에 역할을 부여하려면 다음 명령어를 실행합니다.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bqms.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
다음을 바꿉니다.
SERVICE_ACCOUNT: 고객 제공 서비스 계정의 ID입니다.PROJECT_ID: 프로젝트 ID입니다.PROJECT_NUMBER: 프로젝트 번호
보안 비밀 구성
Apache Iceberg REST 카탈로그로 마이그레이션하는 경우 마이그레이션을 승인하기 위한 보안 비밀을 만들어야 합니다. 보안 비밀은 다음 형식이어야 합니다.
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"polaris_realm": "POLARIS_REALM",
"scope": "SCOPE"
}다음을 바꿉니다.
CLIENT_ID: OAuth 2.0 클라이언트 IDCLIENT_SECRET: OAuth 2.0 클라이언트 보안 비밀번호POLARIS_REALM: Polaris 카탈로그의 렐름입니다. 이 필드는 Apache Polaris에만 필요합니다. 예를 들면FINANCE입니다.SCOPE: (선택사항) OAuth 2.0 범위입니다. 기본값은PRINCIPAL_ROLE:ALL입니다.
Lakehouse 카탈로그 만들기
레이크하우스 카탈로그를 만듭니다. 마이그레이션된 메타데이터는 카탈로그를 만들 때 지정한 Cloud Storage 버킷에 저장됩니다.
메타데이터 이전
Lakehouse Iceberg REST 카탈로그 테이블로 메타데이터 마이그레이션을 시작하려면 다음을 수행합니다.
Google Cloud 콘솔에서 마이그레이션 > 서비스 페이지로 이동합니다.
개방형 레이크하우스 등록 또는 마이그레이션에서 마이그레이션 만들기를 클릭합니다.
마이그레이션 구성에서 다음을 수행합니다.
- 카탈로그 유형에서 외부 카탈로그를 선택합니다.
리전에서 리전을 선택합니다. 선택한 리전에 따라 마이그레이션 조정 및 데이터 전송이 실행되는 위치가 결정됩니다. 또한 마이그레이션 서비스가 네트워크 연결 또는 보안 비밀과 같은 리소스를 사용하거나 만드는 위치를 결정합니다.
리전 보안 비밀만 지원됩니다. 보안 비밀의 리전은 이 필드의 리전과 일치해야 합니다.
마이그레이션 표시 이름에 이 마이그레이션의 이름을 입력합니다.
소스 시스템 구성에서 다음을 수행합니다.
- URL에 Apache Iceberg 또는 Apache Hive metastore의 진입점 역할을 하는 기본 엔드포인트 URL을 입력합니다.
- 서비스 계정의 경우 목록에서 서비스 계정을 선택합니다. 지정하지 않으면 이 이전은 사용자 인증 정보를 사용하여 실행됩니다.
- (선택사항) 네트워크 연결에서 네트워크 연결을 선택합니다.
계속을 클릭합니다.
메타데이터 마이그레이션이 완료되면 외부 카탈로그의 메타데이터가 Lakehouse 카탈로그를 만들 때 지정한 Cloud Storage 버킷에 저장됩니다.
가격 책정
Lakehouse Iceberg REST 카탈로그 테이블로 메타데이터를 전송하는 데는 비용이 들지 않습니다. 메타데이터가 전송되면 Lakehouse 가격 책정이 적용됩니다.