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>
ダイナミック デスティネーション
Apache Iceberg のマネージド I/O は、ダイナミック デスティネーションをサポートしています。コネクタは、単一の固定テーブルに書き込む代わりに、受信レコード内のフィールド値に基づいて宛先テーブルを動的に選択できます。
ダイナミック デスティネーションを使用するには、table 構成パラメータのテンプレートを提供します。詳細については、ダイナミック デスティネーションをご覧ください。
例
次の例は、マネージド I/O を使用して Apache Iceberg に書き込む方法を示しています。
Apache Iceberg テーブルに書き込む
次の例では、メモリ内の JSON データを Apache Iceberg テーブルに書き込みます。
Java
Dataflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ダイナミック デスティネーションによる書き込み
次の例では、入力データのフィールドに基づいて異なる Apache Iceberg テーブルに書き込みます。
Java
Dataflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。