View a markdown version of this page

Iceberg-Verhalten 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.

Iceberg-Verhalten für Streaming-Tabellen

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

AWS Glue Zuordnung von Schema Registry zu Iceberg-Typen

Die Streaming-Tabelle ordnet JSON-Schematypen aus AWS Glue Schema Registry den Apache Iceberg-Typen zu, wie in der folgenden Tabelle dargestellt.

JSON-Schematyp Iceberg-Typ Hinweise
string(schlicht) string Standardmäßige Zeichenkettenzuweisung.
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 Maximum oder ExclusiveMaximum <= 2^31.
integer(größer als 32-Bit) long Werte, die den 32-Bit-Bereich überschreiten.
number mit multipleOf decimal Fixed-point Dezimalzahl mit von MultipleOf abgeleiteter Genauigkeit.
number(einfach) double IEEE 754 Gleitkommazahl mit doppelter Genauigkeit.
boolean boolean Richtig 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 Aufzählungswerte.

Erforderliche Spalten

Felder, die im required JSON-Schema-Array aufgeführt sind, werden in der Iceberg-Tabelle zu Pflichtspalten (ohne Nullwerte zulässig). Wenn ein erforderliches Feld in einem Datensatz fehlt, wird der Datensatz an die Warteschlange für unzustellbare Briefe gesendet.

Spalte mit dem Partitionsschlüssel

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

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, bei denen der Wert für den Partitionsschlüssel fehlt, werden an die Warteschlange mit unerlaubten Briefen gesendet.

Sie können einen Job zum Ablaufen von Datensätzen in Amazon S3 Tables 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 Pflichtfeld in einem Datensatz fehlt, wird der gesamte Datensatz an die Warteschlange für unzustellbare Briefe gesendet.

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 Lieferung abgelehnt.

Eigenschaften verwalteter Tabellen

Die Streaming-Tabelle verwaltet die Eigenschaften von Iceberg-Tabellen 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 ihre Daten nicht direkt bearbeiten oder 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 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 durchgeführt:

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

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

  • Säuberung nicht referenzierter Dateien — Verwaiste Datendateien, auf die kein Snapshot mehr verweist, werden entfernt, um Speicherplatz zurückzugewinnen.

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 bei Wartungsvorgängen automatisch Datensätze, die älter als die angegebene Aufbewahrungszeit sind, basierend auf der timestamptz Partitionsspalte der Tabelle. Weitere Informationen finden Sie unter Verwaltung des Ablaufs von Amazon S3 S3-Tabellendatensätzen im Amazon S3 S3-Benutzerhandbuch.

Formatspezifikationen

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

  • Version im Eisberg-Format — v2

  • Iceberg-Spezifikationsversion — 1.9.0

  • Dateiformat — Apache Parquet