如要從 Dataflow 寫入 Apache Iceberg,請使用受管理 I/O 連接器。
代管 I/O 支援 Apache Iceberg 的下列功能:
目錄 |
|
---|---|
讀取功能 | 批次讀取 |
寫入功能 |
|
如果是 Apache Iceberg 專用 BigQuery 資料表,請搭配 BigQuery Storage API 使用 BigQueryIO
連接器。資料表必須已存在,不支援動態建立資料表。
依附元件
將下列依附元件新增至專案:
Java
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-managed</artifactId>
<version>${beam.version}</version>
</dependency>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-io-iceberg</artifactId>
<version>${beam.version}</version>
</dependency>
設定
受管理 I/O 會使用下列 Apache Iceberg 設定參數:
讀取及寫入設定 | 資料類型 | 說明 |
---|---|---|
table |
字串 | Apache Iceberg 資料表的 ID。示例:
"db.table1" 。 |
catalog_name |
字串 | 目錄的名稱。範例:"local" 。 |
catalog_properties |
地圖 | Apache Iceberg 目錄的設定屬性對應。必要屬性取決於目錄。詳情請參閱 Apache Iceberg 說明文件中的
CatalogUtil 。 |
config_properties |
地圖 | 一組選用的 Hadoop 設定屬性。詳情請參閱 Apache Iceberg 說明文件中的
CatalogUtil 。 |
撰寫設定 | 資料類型 | 說明 |
triggering_frequency_seconds |
整數 | 對於串流寫入管道,接收器嘗試產生快照的頻率 (以秒為單位)。 |
動態目的地
Apache Iceberg 的受管理 I/O 支援動態目的地。連接器可以根據傳入記錄中的欄位值,動態選取目的地資料表,而不是寫入單一固定資料表。
如要使用動態目的地,請為 table
設定參數提供範本。詳情請參閱動態目的地。
範例
下列範例說明如何使用 Managed I/O 寫入 Apache Iceberg。
寫入 Apache Iceberg 資料表
以下範例會將記憶體內 JSON 資料寫入 Apache Iceberg 資料表。
Java
如要向 Dataflow 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
使用動態目的地寫入
以下範例會根據輸入資料中的欄位,寫入不同的 Apache Iceberg 資料表。
Java
如要向 Dataflow 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
後續步驟
- 從 Apache Iceberg 讀取資料。
- 進一步瞭解受管理 I/O。