Apache Iceberg 向けの Dataflow マネージド I/O

マネージド I/O は、Apache Iceberg の次の機能をサポートしています。

カタログ
  • Hadoop
  • Hive
  • REST ベースのカタログ
  • BigQuery metastore(Runner v2 を使用していない場合は Apache Beam SDK 2.62.0 以降が必要です)
読み取り機能 バッチ読み取り
書き込み機能

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」で使用可能なパーティション変換は次のとおりです。
  • foo
  • truncate(foo, N)
  • bucket(foo, N)
  • hour(foo)
  • day(foo)
  • month(foo)
  • year(foo)
  • void(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 ストリーミング パイプラインの場合、スナップショットが生成される頻度を設定します。

次のステップ

コード例などの詳細については、次のトピックをご覧ください。