マネージド I/O は、Apache Iceberg の次の機能をサポートしています。
| カタログ |
|
|---|---|
| 読み取り機能 | バッチ読み取り |
| 書き込み機能 |
|
Apache Iceberg 用の BigQuery テーブルの場合は、BigQuery Storage API で BigQueryIO コネクタを使用します。このテーブルはすでに存在している必要があります。動的テーブルの作成はサポートされていません。
要件
次の SDK は、Apache Iceberg のマネージド I/O をサポートしています。
- Apache Beam SDK for Java バージョン 2.58.0 以降
- Apache Beam SDK for Python バージョン 2.61.0 以降
構成
Apache Iceberg 向けマネージド I/O は、次の構成パラメータをサポートしています。
ICEBERG 読み取り
| 構成 | 種類 | 説明 |
|---|---|---|
| table |
str
|
Iceberg テーブルの識別子。 |
| catalog_name |
str
|
テーブルを含むカタログの名前。 |
| catalog_properties |
map[str, str]
|
Iceberg カタログの設定に使用されるプロパティ。 |
| config_properties |
map[str, str]
|
Hadoop 構成に渡されるプロパティ。 |
| drop |
list[str]
|
読み取りから除外する列名のサブセット。null または空の場合、すべての列が読み取られます。 |
| filter |
str
|
スキャン時にデータをフィルタリングする SQL に似た述語。例: 「id > 5 AND status = 'ACTIVE'」。Apache Calcite 構文(https://calcite.apache.org/docs/reference.html)を使用します。 |
| keep |
list[str]
|
読み取られる列名のサブセット。null または空の場合、すべての列が読み取られます。 |
ICEBERG 書き込み
| 構成 | 種類 | 説明 |
|---|---|---|
| table |
str
|
完全修飾テーブル識別子。複数の動的宛先に書き込むためのテンプレートを指定することもできます(例: `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」とは相互に排他的です。 |
| keep |
list[str]
|
入力レコードで保持するフィールド名のリスト。他のフィールドはすべて書き込み前に削除されます。「drop」および「only」とは相互に排他的です。 |
| 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
|
ストリーミング パイプラインの場合、スナップショットが生成される頻度を設定します。 |
次のステップ
コード例などの詳細については、次のトピックをご覧ください。