將中繼資料從外部資料目錄遷移至 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) 取得這項權限。瞭解如何授予角色

啟用 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.s3ns-system.iam.gserviceaccount.com --role
    roles/iam.serviceAccountTokenCreator
  4. 在專案中,將下列角色授予 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 角色授予客戶提供的服務帳戶:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

管理員或許也能透過自訂角色或其他預先定義的角色,將必要權限授予客戶提供的服務帳戶。

您也必須為 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:客戶提供的服務帳戶 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 用戶端 ID
  • CLIENT_SECRET:OAuth 2.0 用戶端密鑰
  • POLARIS_REALM:Polaris 目錄的領域。這個欄位僅適用於 Apache Polaris。例如:FINANCE
  • SCOPE:(選用) OAuth 2.0 範圍。預設值為 PRINCIPAL_ROLE:ALL

建立 Lakehouse 目錄

建立 Lakehouse 目錄。 遷移的中繼資料會儲存在您建立目錄時指定的 Cloud Storage 值區中。

遷移中繼資料

如要開始將中繼資料遷移至 Lakehouse Iceberg REST 目錄資料表,請按照下列步驟操作:

  1. 在 Cloud de Confiance 控制台,依序前往「Migration」(遷移) >「Services」(服務) 頁面。

    前往遷移服務

  2. 在「註冊或遷移開放式湖倉」下方,按一下「建立遷移」

  3. 在「遷移設定」下方,執行下列操作:

    1. 選取外部目錄做為目錄類型。
    2. 在「區域」部分,選取區域。所選區域會決定遷移協調程序和資料轉移的執行位置。此外,這項設定也會決定遷移服務使用或建立任何資源的位置,例如網路附件或密鑰。

      系統僅支援區域密鑰。密鑰的區域必須與這個欄位中的區域相符。

    3. 在「遷移作業顯示名稱」部分,輸入這項遷移作業的名稱。

  4. 在「來源系統設定」下方,執行下列操作:

    1. 在「網址」部分,輸入做為 Apache Iceberg 或 Apache Hive Metastore 進入點的基準端點網址。
    2. 在「服務帳戶」中,從清單選取服務帳戶。 如未指定,這項遷移作業會使用使用者憑證執行。
    3. (選用) 在「Network attachment」(網路連結) 部分,選取網路連結。
  5. 按一下「繼續」

中繼資料遷移作業完成後,外部目錄中的中繼資料會儲存在您建立 Lakehouse 目錄時指定的 Cloud Storage bucket 中。

定價

將中繼資料轉移至 Lakehouse Iceberg REST 目錄資料表無需付費。中繼資料移轉完成後,即適用 Lakehouse 定價