如果您必須重寫或移動大量資料,將 Delta Lake 資料表遷移至 Lakehouse for Apache Iceberg 可能相當複雜且所費不貲。如要在 Lakehouse 中提供 Delta Lake 資料,但不想移動或重新編寫基礎檔案,可以使用 Dataflow 工作建構工具。工作建構工具提供低程式碼或無程式碼介面,可將 Cloud Storage Delta Lake 資料表直接匯入 Lakehouse。
如果是新資料表,Dataflow 會自動建立結構定義。 如果是現有資料表,結構定義不會修改,因此目的地資料表結構定義必須正確對應來源 Delta Lake 資料表,工作才能成功。
使用下列連線詳細資料,從儲存在 Cloud Storage 中的 Delta Lake 資料表匯入資料。
事前準備
如要匯入 Delta Lake 資料表資料,請準備下列項目:
啟用 Dataflow、BigQuery 和 Lakehouse API。
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。如要取得建立資源所需的權限,請要求管理員授予您專案的必要 Identity and Access Management (IAM) 角色。
儲存在 Cloud Storage bucket 中的現有 Delta Lake 資料表。資料表目錄必須是有效的 Delta Lake 資料表根目錄,內含 Parquet 資料檔案和
_delta_log/交易記錄目錄。Lakehouse Iceberg 目錄、命名空間和資料表,用於匯入資料。
支援與限制
使用 Dataflow 將 Delta Lake 資料表資料匯入 Lakehouse for Apache Iceberg 時,有下列限制:
- 如要使用這項功能,請使用批次管道作業。
- 現有目的地資料表的結構定義不會修改。目的地資料表結構定義必須正確對應至來源 Delta Lake 資料表結構定義。
- 來源資料必須是儲存在 Cloud Storage 中的有效 Delta Lake 資料表。資料表根目錄必須包含 Parquet 資料檔案,以及 Delta Lake 建立的
_delta_log/交易記錄目錄 (內含 JSON 或 Parquet 記錄檔)。 - Delta Lake 資料表來源不支援 Amazon S3。
匯入 Delta Lake 資料表
如要將 Delta Lake 資料表匯入 Lakehouse for Apache Iceberg,請完成下列步驟:
前往 Google Cloud 控制台的「Lakehouse runtime catalog」(Lakehouse 執行階段目錄) 頁面。
選取要匯入資料的目錄、命名空間和資料表。
在「Table details」(資料表詳細資料) 頁面中,按一下「Import table」(匯入資料表),然後選取「From Delta Lake (Batch)」(從 Delta Lake 匯入 (批次))。
系統會開啟 Dataflow 的「Job builder」(工作建立工具) 頁面,並載入「Delta Lake to Lakehouse」(從 Delta Lake 遷移至 Lakehouse) 藍圖。
在「來源」部分:
如要展開「ReadFromDeltaLake」「Delta Lake table」來源面板,請按一下 展開箭頭。
在「資料表路徑」欄位中,輸入 Delta Lake 資料表根目錄的 Cloud Storage URI (包含資料檔案和
_delta_log/目錄的目錄)。例如:gs://BUCKET_NAME/tables/TABLE_NAME。選用:在「Hadoop 設定屬性」欄位中,設定從 Cloud Storage 讀取資料所需的任何其他 Hadoop 設定屬性。例如:
fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem。按一下「完成」。
在「Sink」(接收器) 部分:
選用:查看「WriteToIceberg」 Lakehouse 資料表接收器面板。這個面板中的資訊 (例如 Lakehouse 資料表、目錄名稱和倉庫位置) 通常會預先填入。
按一下「完成」。
在「Dataflow options」(Dataflow 選項) 部分,按一下「Run job」(執行工作)。
如要進一步自訂用於匯入 Delta Lake 資料表的 Dataflow 管道,可以使用工作建構工具表單或 YAML 編輯器。
檢查工作輸出內容
工作完成後,您可以在 BigQuery 中查詢 Iceberg 資料表,確認資料已註冊。
在 Dataflow 工作清單中,確認工作狀態為「成功」。
如果工作失敗或發生錯誤,請查看工作記錄或 worker 記錄瞭解詳情。
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器中輸入 SQL 查詢,檢查資料表。您可以使用
PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME慣例查詢:SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;按一下「執行」。
查看「查詢結果」,確認資料已正確處理。
後續步驟
- 進一步瞭解如何使用工作建構工具 UI 建立自訂工作。
- 詳情請參閱「BigQuery 中的 Apache Iceberg Lakehouse 資料表簡介」。