I/O terkelola Dataflow untuk Apache Iceberg

I/O Terkelola mendukung kemampuan berikut untuk Apache Iceberg:

Katalog
  • Hadoop
  • Hive
  • Katalog berbasis REST
  • Metastore BigQuery (memerlukan Apache Beam SDK 2.62.0 atau yang lebih baru jika tidak menggunakan Runner v2)
Kemampuan membaca Baca batch
Kemampuan menulis

Untuk tabel BigQuery untuk Apache Iceberg, gunakan konektor BigQueryIO dengan BigQuery Storage API. Tabel harus sudah ada; pembuatan tabel dinamis tidak didukung.

Persyaratan

SDK berikut mendukung I/O terkelola untuk Apache Iceberg:

  • Apache Beam SDK untuk Java versi 2.58.0 atau yang lebih baru
  • Apache Beam SDK untuk Python versi 2.61.0 atau yang lebih baru

Konfigurasi

I/O Terkelola untuk Apache Iceberg mendukung parameter konfigurasi berikut:

ICEBERG Baca

Konfigurasi Jenis Deskripsi
table str ID tabel Iceberg.
catalog_name str Nama katalog yang berisi tabel.
catalog_properties map[str, str] Properti yang digunakan untuk menyiapkan katalog Iceberg.
config_properties map[str, str] Properti yang diteruskan ke Konfigurasi Hadoop.
drop list[str] Subkumpulan nama kolom yang akan dikecualikan dari pembacaan. Jika null atau kosong, semua kolom akan dibaca.
filter str Predikat seperti SQL untuk memfilter data pada waktu pemindaian. Contoh: "id > 5 AND status = 'ACTIVE'". Menggunakan sintaksis Apache Calcite: https://calcite.apache.org/docs/reference.html
keep list[str] Subset nama kolom yang akan dibaca secara eksklusif. Jika null atau kosong, semua kolom akan dibaca.

ICEBERG Menulis

Konfigurasi Jenis Deskripsi
table str ID tabel yang sepenuhnya memenuhi syarat. Anda juga dapat memberikan template untuk menulis ke beberapa tujuan dinamis, misalnya: `dataset.my_{col1}_{col2.nested}_table`.
catalog_name str Nama katalog yang berisi tabel.
catalog_properties map[str, str] Properti yang digunakan untuk menyiapkan katalog Iceberg.
config_properties map[str, str] Properti yang diteruskan ke Konfigurasi Hadoop.
drop list[str] Daftar nama kolom yang akan dihapus dari rekaman input sebelum penulisan. Tidak dapat muncul bersamaan dengan 'keep' dan 'only'.
keep list[str] Daftar nama kolom yang akan disimpan dalam rekaman input. Semua kolom lainnya akan dihapus sebelum penulisan. Tidak dapat muncul bersamaan dengan 'drop' dan 'only'.
saja str Nama kolom satu catatan yang harus ditulis. Tidak dapat muncul bersamaan dengan 'keep' dan 'drop'.
partition_fields list[str] Kolom yang digunakan untuk membuat spesifikasi partisi yang diterapkan saat tabel dibuat. Untuk kolom 'foo', transformasi partisi yang tersedia adalah:
  • foo
  • truncate(foo, N)
  • bucket(foo, N)
  • hour(foo)
  • day(foo)
  • month(foo)
  • year(foo)
  • void(foo)

Untuk mengetahui informasi selengkapnya tentang transformasi partisi, buka https://iceberg.apache.org/spec/#partition-transforms.

table_properties map[str, str] Properti tabel Iceberg yang akan ditetapkan pada tabel saat dibuat. Untuk mengetahui informasi selengkapnya tentang properti tabel, buka https://iceberg.apache.org/docs/latest/configuration/#table-properties.
triggering_frequency_seconds int32 Untuk pipeline streaming, menetapkan frekuensi pembuatan snapshot.

Langkah berikutnya

Untuk informasi dan contoh kode selengkapnya, lihat topik berikut: