View a markdown version of this page

Verhalten von Iceberg für Streaming-Tabellen - Amazon Kinesis Data Streams

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verhalten von Iceberg für Streaming-Tabellen

In diesem Thema erfahren Sie, wie Streaming-Tabellen Daten aus AWS Glue Schema Registry-Schemas Apache Iceberg-Tabellen zuordnen, einschließlich Typzuordnung, Feldbehandlung, Tabellenverwaltung und Formatspezifikationen.

AWS Glue Zuordnung von Schema-Registry zu Iceberg-Typen

Die Streaming-Tabelle ordnet die JSON-Schematypen aus der AWS Glue Schemaregistry den Apache Iceberg-Typen wie folgt zu:

Zuordnung von Schema-Registry zu Iceberg-Typ
JSON-Schematyp Iceberg-Typ Hinweise
string(schlicht) string Standardmäßige Zeichenkettenzuordnung.
stringmit Format date-time timestamptz Zeitstempel mit Zeitzone.
stringmit Format date date Kalenderdatum.
stringmit Format time time Uhrzeit.
stringmit Format uuid uuid Universell eindeutiger Bezeichner.
stringmit Kodierung oder byte base64 binary Binärdaten, die als Base64 codiert sind.
integer(32-Bit oder weniger) int Werte mit maximalem oder exklusivem Maximum <= 2^31.
integer(größer als 32-Bit) long Werte, die den 32-Bit-Bereich überschreiten.
number mit multipleOf decimal Fixed-point Dezimal mit einer von MultipleOf abgeleiteten Genauigkeit.
number(schlicht) double IEEE 754 Gleitkomma mit doppelter Genauigkeit.
boolean boolean Wahr oder falsch.
objectmit benannten Eigenschaften struct Benannte Felder werden Strukturfeldern zugeordnet.
object mit additionalProperties map Key-value Karte mit Zeichenkettenschlüsseln.
array list Geordnete Sammlung von Elementen.
enum string Als Zeichenketten gespeicherte Enum-Werte.

Erforderliche Spalten

Felder, die im required JSON-Schema-Array aufgeführt sind, werden in der Iceberg-Tabelle zu erforderlichen Spalten (keine NULL-Werte zulässig). Wenn ein erforderliches Feld in einem Datensatz fehlt, wird der Datensatz an die Warteschlange mit unleserlichen Buchstaben gesendet.

Spalte „Partitionsschlüssel“

Ihre Tabelle muss eine timestamptz Spalte enthalten, die für eine zeitbasierte Partitionierung nach Stunden verwendet werden kann (die TIME_HOUR Transformation). Im AWS Glue Schema Registry Schema ist dies ein string Feld mit dem date-time Format, das dem Typ timestamptz Iceberg entspricht.

Die Quellspalte, auf die die Partition verweist, wird automatisch als erforderlich markiert, unabhängig davon, ob sie im required Array des Schemas erscheint. Datensätze, denen der Partitionsschlüsselwert fehlt, werden an die Warteschlange mit toten Buchstaben gesendet.

Sie können einen Job zum Ablaufen von Amazon S3-Tabellen für Datensätze auf der Grundlage der Partitionsspalte der Tabelle aktivieren. Weitere Informationen finden Sie unter Ablauf des Datensatzes.

Handhabung von Feldern

Die Streaming-Tabelle behandelt Diskrepanzen zwischen eingehenden Datensätzen und dem Iceberg-Tabellenschema wie folgt:

  • Zusätzliche Felder — Felder, die im Datensatz vorhanden, aber nicht im Schema definiert sind, werden gelöscht und nicht in die Iceberg-Tabelle geschrieben.

  • Fehlende optionale Felder — Optionale Felder, die nicht im Datensatz vorhanden sind, werden wie null in der Iceberg-Tabelle geschrieben.

  • Fehlende Pflichtfelder — Wenn ein erforderliches Feld in einem Datensatz fehlt, wird der gesamte Datensatz in die Warteschlange für unzustellbare Briefe gestellt.

Beschränkung der Verschachtelung

Die Streaming-Tabelle unterstützt eine maximale Verschachtelungstiefe von 16 Ebenen für komplexe Typen (Strukturen, Maps und Listen). Schemas, die 16 Verschachtelungsebenen überschreiten, werden bei der Erstellung der Bereitstellung abgelehnt.

Eigenschaften verwalteter Tabellen

Die Streaming-Tabelle verwaltet die Eigenschaften der Iceberg-Tabelle automatisch. Diese Eigenschaften werden bei der Erstellung der Tabelle festgelegt und sollten nicht extern geändert werden. Die Streaming-Tabelle verwendet diese Eigenschaften, um das Schreibverhalten, die Komprimierung und die Metadatenverwaltung zu steuern.

Da die Tabelle von Amazon Kinesis Data Streams verwaltet wird, sollten Sie ihr Schema nicht aktualisieren, ihre Tabelleneigenschaften nicht ändern oder direkt in ihre Daten schreiben oder sie löschen. Sie können die Tabelle mit AWS Analysediensten und jeder kompatiblen Apache Iceberg-Abfrage-Engine abfragen. Weitere Informationen zu verwalteten Tabellen-Buckets finden Sie unter Using AWS managed Table Buckets im Amazon S3-Benutzerhandbuch.

Wartung von S3 Tables

Bei der Bereitstellung an Streaming-Tabellen auf Apache Iceberg, die von S3 Tables unterstützt werden, werden die folgenden Wartungsvorgänge automatisch ausgeführt:

  • Komprimierung — Kleine Datendateien werden regelmäßig zu größeren Dateien komprimiert, um die Abfrageleistung zu verbessern und den Metadaten-Overhead zu reduzieren.

  • Ablauf des Snapshots — Abgelaufene Snapshots werden bereinigt, um den Metadatenspeicher zurückzugewinnen und die Größe der Tabellenmetadaten zu reduzieren.

  • Bereinigung unreferenzierter Dateien — Verwaiste Datendateien, auf die in keinem Snapshot mehr verwiesen wird, werden entfernt, um Speicherplatz freizugeben.

Ablauf des Datensatzes

Sie können einen Ablaufzeitraum für Datensätze für Ihre Iceberg-Tabelle konfigurieren. Wenn diese Option aktiviert ist, entfernt Amazon S3 Tables automatisch Datensätze, die älter als der angegebene Aufbewahrungszeitraum sind, während Wartungsarbeiten, basierend auf der timestamptz Partitionsspalte der Tabelle. Weitere Informationen finden Sie im Amazon S3-Benutzerhandbuch unter Verwaltung des Ablaufs von Amazon S3-Tabellen-Datensätzen.

Spezifikationen des Formats

Die Streaming-Tabelle verwendet die folgenden Formatspezifikationen für Iceberg-Tabellen:

  • Version im Iceberg-Format — v2

  • Iceberg-Spezifikationsversion — 1.9.0

  • Dateiformat — Apache Parquet