Von Dataflow verwaltete E/A für Apache Iceberg

Verwaltete E/A unterstützt die folgenden Funktionen für Apache Iceberg:

Kataloge
  • Hadoop
  • Hive
  • REST-basierte Kataloge
  • BigQuery-Metastore (erfordert Apache Beam SDK 2.62.0 oder höher, wenn nicht Runner v2 verwendet wird)
Lesefunktionen Batchlesevorgang
Schreibfunktionen
  • Batchschreibvorgang
  • Streaming-Schreibvorgang
  • Dynamische Ziele
  • Dynamische Tabellenerstellung

Verwenden Sie für BigQuery-Tabellen für Apache Iceberg den BigQueryIO-Connector mit der BigQuery Storage API. Die Tabelle muss bereits vorhanden sein. Das dynamische Erstellen von Tabellen wird nicht unterstützt.

Voraussetzungen

Die folgenden SDKs unterstützen verwaltete E/A für Apache Iceberg:

  • Apache Beam SDK für Java Version 2.58.0 oder höher
  • Apache Beam SDK für Python Version 2.61.0 oder höher

Konfiguration

Verwaltete E/A für Apache Iceberg unterstützt die folgenden Konfigurationsparameter:

ICEBERG Lesen

Konfiguration Typ Beschreibung
table str Kennung der Iceberg-Tabelle.
catalog_name str Der Name des Katalogs, der die Tabelle enthält.
catalog_properties map[str, str] Eigenschaften zum Einrichten des Iceberg-Katalogs.
config_properties map[str, str] Attribute, die an die Hadoop-Konfiguration übergeben werden.
drop list[str] Eine Teilmenge von Spaltennamen, die nicht gelesen werden sollen. Wenn der Wert „null“ oder leer ist, werden alle Spalten gelesen.
filtern str SQL-ähnliches Prädikat zum Filtern von Daten zur Scanzeit. Beispiel: „id > 5 AND status = 'ACTIVE'“. Verwendet die Apache Calcite-Syntax: https://calcite.apache.org/docs/reference.html
Notizen list[str] Eine Teilmenge der Spaltennamen, die ausschließlich gelesen werden sollen. Wenn der Wert „null“ oder leer ist, werden alle Spalten gelesen.

ICEBERG Schreiben

Konfiguration Typ Beschreibung
table str Eine vollständig qualifizierte Tabellenkennung. Sie können auch eine Vorlage angeben, um in mehrere dynamische Ziele zu schreiben, z. B. `dataset.my_{col1}_{col2.nested}_table`.
catalog_name str Der Name des Katalogs, der die Tabelle enthält.
catalog_properties map[str, str] Eigenschaften zum Einrichten des Iceberg-Katalogs.
config_properties map[str, str] Attribute, die an die Hadoop-Konfiguration übergeben werden.
drop list[str] Eine Liste der Feldnamen, die vor dem Schreiben aus dem Eingabe-Datensatz entfernt werden sollen. Schließt sich mit „keep“ und „only“ gegenseitig aus.
Notizen list[str] Eine Liste der Feldnamen, die im Eingabe-Datensatz beibehalten werden sollen. Alle anderen Felder werden vor dem Schreiben gelöscht. Schließt sich gegenseitig mit „drop“ und „only“ aus.
nur str Der Name eines einzelnen Datensatzfelds, das geschrieben werden soll. Schließt sich gegenseitig mit „keep“ und „drop“ aus.
partition_fields list[str] Felder, die zum Erstellen einer Partitionsspezifikation verwendet werden, die beim Erstellen von Tabellen angewendet wird. Für das Feld „foo“ sind die folgenden Partitionstransformationen verfügbar:
  • foo
  • truncate(foo, N)
  • bucket(foo, N)
  • hour(foo)
  • day(foo)
  • month(foo)
  • year(foo)
  • void(foo)

Weitere Informationen zu Partitionstransformationen finden Sie unter https://iceberg.apache.org/spec/#partition-transforms.

table_properties map[str, str] Iceberg-Tabelleneigenschaften, die beim Erstellen der Tabelle festgelegt werden sollen. Weitere Informationen zu Tabelleneigenschaften finden Sie unter https://iceberg.apache.org/docs/latest/configuration/#table-properties.
triggering_frequency_seconds int32 Legt für eine Streamingpipeline die Häufigkeit fest, mit der Snapshots erstellt werden.

Nächste Schritte

Weitere Informationen und Codebeispiele finden Sie unter den folgenden Themen: