將中繼資料從外部資料目錄遷移至 Lakehouse REST 目錄資料表 (適用於 Apache Iceberg)
本文說明如何將外部資料目錄中的中繼資料,遷移至 Lakehouse REST 目錄的 Apache Iceberg 資料表。BigQuery 遷移服務支援從下列外部中繼資料存放區遷移中繼資料:
- Apache Hive Metastore
- Apache Iceberg REST 目錄
限制
- 從外部資料目錄到 Apache Iceberg 的 Lakehouse REST 目錄資料表,中繼資料遷移作業只會同步處理一次。這項功能不支援持續或定期同步,因此遷移後進行的任何寫入作業,都必須再次遷移才會顯示。
- 不支援巢狀命名空間。
- Iceberg REST 目錄僅支援 Parquet 資料檔案。
- 無邊界湖倉不支援 Apache Iceberg V3 資料表。
- 從外部資料目錄遷移至 Lakehouse REST 目錄資料表的中繼資料,僅支援最多 10,000 個資料表的遷移作業。如果工作負載需要處理超過 10,000 個資料表,建議您將工作負載分割為多個遷移作業。
- 從外部資料目錄將中繼資料遷移至 Apache Iceberg 的 Lakehouse REST 目錄資料表時,系統不支援使用機構政策強制執行網域限制分享。
事前準備
如要從外部資料目錄遷移中繼資料,請先完成下列章節中的步驟。
啟用 API
啟用 BigLake、BigQuery 資料移轉、BigQuery 移轉、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 角色:
- Storage Transfer 管理員 (
roles/storagetransfer.admin) - 服務使用情形用戶 (
roles/serviceusage.serviceUsageConsumer) - 儲存空間管理員 (
roles/storage.admin) -
如要將中繼資料遷移至 Lakehouse 執行階段目錄 (Iceberg REST 目錄或 Hive 目錄):
BigLake 管理員 (
roles/biglake.admin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
- Storage Transfer 管理員 (
如果您使用服務帳戶,請執行下列指令,將
roles/iam.serviceAccountTokenCreator角色授予服務代理程式:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator
在專案中,將下列角色授予 Storage 移轉服務代理程式 (
project-PROJECT_NUMBER@storage-transfer-service.s3ns-system.iam.gserviceaccount.com):roles/storage.admin- 如果您是從地端/HDFS 遷移,也必須授予
roles/storagetransfer.serviceAgent角色。
您也可以設定更精細的權限。詳情請參閱下列指南:
必要使用者角色和權限
為確保服務代理具備必要權限,能建立、修改及執行 Lakehouse REST 目錄資料表,以進行 Apache Iceberg 遷移作業,請要求管理員將下列 IAM 角色授予服務代理:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
管理員或許也能透過自訂角色或其他預先定義的角色,授予服務代理必要權限。
服務帳戶的必要角色和權限
為確保客戶提供的服務帳戶具備必要權限,能建立、修改及執行 Lakehouse REST 目錄資料表,以進行 Apache Iceberg 遷移,請要求管理員將下列 IAM 角色授予客戶提供的服務帳戶:
-
網路連結的存取權:
服務帳戶的Compute 網路管理員 (
roles/compute.networkAdmin) -
BigQuery 資料移轉服務的存取權:
服務帳戶的 BigQuery 管理員 (
roles/bigquery.admin) -
存取 Lakehouse 資源:
服務帳戶的 BigLake 編輯者 (
roles/biglake.editor) -
密鑰存取權:
客戶提供的密鑰具有 Secret Manager 密鑰存取者 (
roles/secretmanager.secretAccessor) 角色。
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
管理員或許也能透過自訂角色或其他預先定義的角色,將必要權限授予客戶提供的服務帳戶。
您也必須為 BigQuery 遷移服務建立服務身分,並授予 roles/iam.serviceAccountTokenCreator 角色。
如要建立服務身分,請執行下列指令:
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.s3ns-system.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
更改下列內容:
SERVICE_ACCOUNT:客戶提供的服務帳戶 IDPROJECT_ID:專案 IDPROJECT_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 目錄
建立 Lakehouse 目錄。 遷移的中繼資料會儲存在您建立目錄時指定的 Cloud Storage 值區中。
遷移中繼資料
如要開始將中繼資料遷移至 Lakehouse Iceberg REST 目錄資料表,請按照下列步驟操作:
在 Cloud de Confiance 控制台,依序前往「Migration」(遷移) >「Services」(服務) 頁面。
在「註冊或遷移開放式湖倉」下方,按一下「建立遷移」。
在「遷移設定」下方,執行下列操作:
- 選取外部目錄做為目錄類型。
在「區域」部分,選取區域。所選區域會決定遷移協調程序和資料轉移的執行位置。此外,這項設定也會決定遷移服務使用或建立任何資源的位置,例如網路附件或密鑰。
系統僅支援區域密鑰。密鑰的區域必須與這個欄位中的區域相符。
在「遷移作業顯示名稱」部分,輸入這項遷移作業的名稱。
在「來源系統設定」下方,執行下列操作:
- 在「網址」部分,輸入做為 Apache Iceberg 或 Apache Hive Metastore 進入點的基準端點網址。
- 在「服務帳戶」中,從清單選取服務帳戶。 如未指定,這項遷移作業會使用使用者憑證執行。
- (選用) 在「Network attachment」(網路連結) 部分,選取網路連結。
按一下「繼續」。
中繼資料遷移作業完成後,外部目錄中的中繼資料會儲存在您建立 Lakehouse 目錄時指定的 Cloud Storage bucket 中。
定價
將中繼資料轉移至 Lakehouse Iceberg REST 目錄資料表無需付費。中繼資料移轉完成後,即適用 Lakehouse 定價。