您可以使用 Dataflow 工作建構工具藍圖,將雲端儲存空間 (Cloud Storage 或 Amazon S3) 中的現有 Apache Parquet 檔案,新增至 Lakehouse 中的 Apache Iceberg 資料表。
這個程序會使用IcebergAddFiles轉換。如果 Parquet 檔案位於 Cloud Storage,這項轉換會向 Lakehouse 註冊檔案,而不會移動或重新編寫基礎資料。如果檔案位於 Amazon S3 等外部儲存系統,系統會將檔案複製到 Cloud Storage,以便透過 Lakehouse 更快速地查詢,然後註冊檔案。
使用下列連線詳細資料,將雲端儲存空間中的 Parquet 檔案新增至 Lakehouse 的 Apache Iceberg 資料表。
事前準備
啟用 Dataflow、BigQuery 和 Lakehouse API。
如要取得建立資源所需的權限,請要求管理員授予您專案的必要 Identity and Access Management (IAM) 角色。
建立 Lakehouse for Apache Iceberg 目錄、命名空間和資料表,以便匯入資料。
建立雲端儲存空間 bucket (Cloud Storage 或 Amazon S3),並將 Parquet 檔案上傳至 bucket。
如果您使用的雲端儲存空間值區不是 Google Cloud Storage,請建立 Cloud Storage 值區來儲存工作錯誤記錄。
支援與限制
使用 Dataflow 將雲端儲存空間中的 Parquet 檔案匯入 Lakehouse for Apache Iceberg 時,有下列限制:
- 來源資料必須採用 Apache Parquet 格式,並儲存在 Cloud Storage 或 Amazon S3 中。
- 這項功能僅支援批次管道。
將 Parquet 檔案匯入 Lakehouse
請按照下列步驟,使用 Dataflow 工作建構工具 UI,將雲端儲存空間中的 Parquet 檔案匯入 Lakehouse 的 Iceberg 表格。
前往 Google Cloud 控制台的「Lakehouse for Apache Iceberg」頁面。
選取要匯入資料的目錄、命名空間和資料表。
在「Table details」(資料表詳細資料) 頁面上,按一下「Import table」(匯入資料表)。
在「匯入設定」對話方塊中,選取「將 Apache Parquet 檔案中的資料表匯入 Lakehouse (批次)」。
系統隨即會開啟 Dataflow 的「Job builder」(工作建立工具) 頁面。
在「來源」部分:
開啟已建立的 CreateGlobalInput 來源項目。
在「YAML 來源設定」編輯器部分,以
elements序列輸入一或多個 Parquet 檔案的路徑。如要提高匯入效率,註冊大量檔案時,請指定多組檔案 (glob)。例如:
reshuffle: true elements: - gs://BUCKET_NAME/restaurant-data/2023/*.parquet - gs://BUCKET_NAME/restaurant-data/2024/*.parquet按一下 [完成]。
在「Transforms」(轉換) 部分:
按一下「IcebergAddFiles」IcebergAddFiles轉換區段,開啟該區段。
在「Iceberg table」(Iceberg 資料表) 欄位中,輸入命名空間和資料表名稱。例如:NAMESPACE .TABLE_NAME 。
在「目錄屬性」下方,設定下列項目:
warehouse:目錄的 Cloud Storage 位置。 例如:
gs://CATALOG_PATH。header.x-goog-user-project:您的專案 ID: Google Cloud PROJECT_ID。
按一下 [完成]。
如要從 S3 遷移,您需要提供額外設定,將 Parquet 檔案複製到 Cloud Storage。如果檔案已在 Cloud Storage 中,則不需要執行這項操作。
按一下「CopyFilesToGCS」CopyFilesToGCS轉換區段即可開啟。
設定 gcs_file_path 設定參數的值,提供要複製暫存檔案的完整 Cloud Storage 值區。建議使用 Lakehouse 倉庫使用的相同 Cloud Storage 值區。
按一下 [完成]。
1 點選「Dataflow Options」(資料流程選項) 區段,將其展開。
- 按一下「add additional pipeline options」,提供與 S3 相關的 Apache Beam 管道選項。例如 s3_region_name、s3_access_key_id、s3_secret_access_key 和對應的值。
在「Sinks」(接收器) 部分中:
按一下「寫入結果」接收器即可開啟。
在「JSON 位置」欄位中,指定要寫入錯誤結果的 Cloud Storage 位置和檔案名稱。例如:
gs://BUCKET_NAME/errors/errors.json按一下 [完成]。
在「Dataflow Options」部分,按一下「Run job」。
如要進一步自訂用於註冊 Parquet 檔案的 Dataflow 管道,可以使用工作建構工具表單或 YAML 編輯器。
檢查工作輸出內容
工作完成後,您可以在 BigQuery 中查詢 Iceberg 資料表,確認資料已註冊。
在 Dataflow 工作清單中,確認工作狀態為「成功」。
如果工作失敗或發生錯誤,請查看 Cloud Storage 中的 JSON 錯誤記錄檔,瞭解詳細資料。
前往 Google Cloud 控制台的「BigQuery Studio」頁面。
在查詢編輯器中輸入 SQL 查詢,檢查資料表。您可以使用
PROJECT_ID.CATALOG>NAMESPACE.TABLE_NAME慣例進行查詢。SELECT * FROM `PROJECT_ID.CATALOG>NAMESPACE.TABLE_NAME` LIMIT 10按一下「執行」。
查看「查詢結果」,確認資料已正確處理。
後續步驟
- 詳情請參閱「關於 Lakehouse 執行階段目錄」。
- 詳情請參閱 Dataflow 工作建構工具 UI 總覽。