Verwaltete E/A unterstützt die folgenden Funktionen für Apache Iceberg:
| Kataloge |
|
|---|---|
| Lesefunktionen | Batchlesevorgang |
| Schreibfunktionen |
|
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 |
|---|---|---|
| Tabelle |
str
|
Kennung der Iceberg-Tabelle. |
| catalog_name |
str
|
Name des Katalogs, der die Tabelle enthält. |
| catalog_properties |
map[str, str]
|
Attribute, die zum Einrichten des Iceberg-Katalogs verwendet werden. |
| 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 null oder leer, 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 null oder leer, werden alle Spalten gelesen. |
ICEBERG Schreiben
| Konfiguration | Typ | Beschreibung |
|---|---|---|
| Tabelle |
str
|
Eine voll qualifizierte Tabellen-ID. Sie können auch eine Vorlage zum Schreiben in mehrere dynamische Ziele angeben, z. B. `dataset.my_{col1}_{col2.nested}_table`. |
| automatisches Sharding |
boolean
|
Aktiviert die dynamische Shardierung, um die Anzahl der parallelen Writer automatisch an das Datenvolumen anzupassen. Sie beheben Datenverzerrungen, indem Partitionen in mehrere Shards unterteilt werden, um Engpässe bei Schreibvorgängen mit hohem Durchsatz zu vermeiden. Nur im Verteilungsmodus „Hash“ verfügbar. |
| catalog_name |
str
|
Name des Katalogs, der die Tabelle enthält. |
| catalog_properties |
map[str, str]
|
Attribute, die zum Einrichten des Iceberg-Katalogs verwendet werden. |
| config_properties |
map[str, str]
|
Attribute, die an die Hadoop-Konfiguration übergeben werden. |
| direct_write_byte_limit |
int32
|
Legt für eine Streamingpipeline das Limit für das Verschieben von Bundles in den direkten Schreibpfad fest. |
| distribution_mode |
str
|
Definiert die Verteilung der Schreibdaten. Unterstützte Verteilungen: - none: Zeilen werden nicht gemischt (Standard) - hash: Zeilen werden vor dem Schreiben von Daten nach Partitionsschlüssel gemischt |
| drop |
list[str]
|
Eine Liste von Feldnamen, die vor dem Schreiben aus dem Eingabedatensatz gelöscht werden sollen. Kann nicht zusammen mit „keep“ und „only“ verwendet werden. |
| Notizen |
list[str]
|
Eine Liste der Feldnamen, die im Eingabedatensatz beibehalten werden sollen. Alle anderen Felder werden vor dem Schreiben gelöscht. Kann nicht zusammen mit „drop“ und „only“ verwendet werden. |
| nur |
str
|
Der Name eines einzelnen Datensatzfelds, in das geschrieben werden soll. Kann nicht zusammen mit „keep“ und „drop“ verwendet werden. |
| partition_fields |
list[str]
|
Felder, mit der eine Partitionsspezifikation erstellt wird, die beim Erstellen von Tabellen angewendet wird. Für ein Feld „foo“ sind folgende Partitionstransformationen verfügbar:
Weitere Informationen zu Partitionstransformationen finden Sie unter https://iceberg.apache.org/spec/#partition-transforms. |
| sort_fields |
list[str]
|
Felder, mit denen die Sortierreihenfolge der Tabelle festgelegt wird, die beim Erstellen der Tabelle angewendet wird. Jeder Eintrag hat das Format <term> [asc|desc] [nulls first|nulls last], wobei <term> ein Feldname oder eine der Partitionstransformationen ist (z. B. bucket(col, 4), day(ts)). Die Richtung ist standardmäßig aufsteigend. Die Null-Reihenfolge ist standardmäßig „nulls-first“ für aufsteigende und „nulls-last“ für absteigende Sortierung. Hinweis: Dadurch wird die deklarierte Sortierreihenfolge der Tabelle als Metadaten festgelegt. Beam sortiert die Datensätze jedoch nicht physisch, bevor sie geschrieben werden.
Weitere Informationen zu Sortierreihenfolgen finden Sie unter https://iceberg.apache.org/spec/#sort-orders.
|
| table_properties |
map[str, str]
|
Iceberg-Tabellenattribute, 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:
- Aus Apache Iceberg lesen
- Aus Apache Iceberg lesen (Job Builder-Benutzeroberfläche)
- In Apache Iceberg schreiben