受管理 I/O 支援 Apache Iceberg 的下列功能:
目錄 |
|
---|---|
讀取功能 | 批次讀取 |
寫入功能 |
|
如果是 Apache Iceberg 專用 BigQuery 資料表,請搭配 BigQuery Storage API 使用 BigQueryIO
連接器。資料表必須已存在,不支援動態建立資料表。
需求條件
下列 SDK 支援 Apache Iceberg 的代管 I/O:
- Java 適用的 Apache Beam SDK 2.58.0 以上版本
- Python 適用的 Apache Beam SDK 2.61.0 以上版本
設定
Apache Iceberg 的受管理 I/O 支援下列設定參數:
ICEBERG
閱讀
設定 | 類型 | 說明 |
---|---|---|
table |
str
|
Iceberg 資料表的 ID。 |
catalog_name |
str
|
包含資料表的目錄名稱。 |
catalog_properties |
map[str, str]
|
用於設定 Iceberg 目錄的屬性。 |
config_properties |
map[str, str]
|
傳遞至 Hadoop 設定的屬性。 |
drop |
list[str]
|
要排除讀取的資料欄名稱子集。如果為空值或空白,系統會讀取所有資料欄。 |
篩選器 |
str
|
類似 SQL 的述詞,可在掃描時篩選資料。例如:「id > 5 AND status = 'ACTIVE'」。使用 Apache Calcite 語法:https://calcite.apache.org/docs/reference.html |
保留 |
list[str]
|
要讀取的資料欄名稱子集。如果為空值或空白,系統會讀取所有資料欄。 |
ICEBERG
寫入
設定 | 類型 | 說明 |
---|---|---|
table |
str
|
完全符合規定的資料表 ID。您也可以提供範本,將資料寫入多個動態目的地,例如:`dataset.my_{col1}_{col2.nested}_table`。 |
catalog_name |
str
|
包含資料表的目錄名稱。 |
catalog_properties |
map[str, str]
|
用於設定 Iceberg 目錄的屬性。 |
config_properties |
map[str, str]
|
傳遞至 Hadoop 設定的屬性。 |
drop |
list[str]
|
要從輸入記錄中捨棄的欄位名稱清單 (寫入前)。與「keep」和「only」互斥。 |
保留 |
list[str]
|
要保留在輸入記錄中的欄位名稱清單。寫入前,系統會捨棄所有其他欄位。與「drop」和「only」互斥。 |
僅限 |
str
|
要寫入的單一記錄欄位名稱。與「keep」和「drop」互斥。 |
partition_fields |
list[str]
|
用於建立分區規格的欄位,會在建立資料表時套用。以「foo」欄位為例,可用的分割轉換如下:
如要進一步瞭解分區轉換,請前往 https://iceberg.apache.org/spec/#partition-transforms。 |
table_properties |
map[str, str]
|
建立資料表時要在資料表上設定的 Iceberg 資料表屬性。 如要進一步瞭解資料表屬性,請前往 https://iceberg.apache.org/docs/latest/configuration/#table-properties。 |
triggering_frequency_seconds |
int32
|
如果是串流管道,則設定產生快照的頻率。 |
後續步驟
如需更多資訊和程式碼範例,請參閱下列主題: