Liefern Sie Daten mit Amazon Data Firehose an Apache Iceberg Tables - Amazon Data Firehose

Die Bereitstellung von Amazon Data Firehose-Streams an Apache Iceberg Tables in Amazon S3 befindet sich in der Vorschauversion und kann sich ändern.

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.

Liefern Sie Daten mit Amazon Data Firehose an Apache Iceberg Tables

Anmerkung

Die Bereitstellung von Firehose-Streams an Apache Iceberg Tables in Amazon S3 befindet sich in der Vorschauphase. Verwenden Sie diese Funktion nicht für Produktionsworkloads.

Apache Iceberg ist ein leistungsstarkes Open-Source-Tabellenformat für die Durchführung von Big-Data-Analysen. Apache Iceberg bringt die Zuverlässigkeit und Einfachheit von SQL Tabellen in Amazon S3 S3-Data Lakes und ermöglicht es Open-Source-Analyse-Engines wie Spark, Flink, Trino, Hive und Impala, gleichzeitig mit denselben Daten zu arbeiten. Weitere Informationen zu Apache Iceberg finden Sie unter. https://iceberg.apache.org/

Sie können Firehose verwenden, um Streaming-Daten direkt an Apache Iceberg Tables in Amazon S3 zu übermitteln. Mit dieser Funktion können Sie Datensätze aus einem einzelnen Stream in verschiedene Apache Iceberg-Tabellen weiterleiten und automatisch Einfüge-, Aktualisierungs- und Löschvorgänge auf Datensätze in den Apache Iceberg-Tabellen anwenden. Diese Funktion erfordert die Verwendung von AWS Glue Data Catalog.

Anmerkung

Apache Iceberg Tables ist in den USA Ost (Nord-Virginia), USA West (Oregon), Europa (Irland), Asien-Pazifik (Tokio), Kanada (Zentral) und Asien-Pazifik (Sydney) verfügbar AWS-Regionen zur Vorschau.

Überlegungen und Einschränkungen

Die Firehose-Unterstützung für Apache Iceberg-Tabellen als Vorschauversion hat die folgenden Überlegungen und Einschränkungen.

  • Durchsatz — Wenn Sie Direct PUT als Quelle für die Bereitstellung von Daten an Apache Iceberg-Tabellen verwenden, beträgt der maximale Durchsatz pro Stream 5 MiB/Sekunde in den Regionen USA Ost (Nord-Virginia), USA West (Oregon) und Europa (Irland) und 1 MiB/Sekunde in den Regionen Asien-Pazifik (Tokio), Kanada (Zentral) und Asien-Pazifik (Sydney). Wenn Sie nur Daten ohne Aktualisierungen und Löschungen in Iceberg-Tabellen einfügen und mit einem höheren Durchsatz für Ihren Stream testen möchten, können Sie das Formular Firehose Limits verwenden, um eine Erhöhung des Durchsatzlimits zu beantragen.

  • Spalten — Für Spaltennamen und Werte verwendet Firehose nur die erste Ebene von Knoten in einer mehrstufigen Verschachtelung. JSON Firehose wählt beispielsweise die Knoten aus, die in der ersten Ebene verfügbar sind, einschließlich des Positionsfeldes. Die Spaltennamen und die Datentypen der Quelldaten sollten mit denen der Zieltabellen übereinstimmen, damit Firehose erfolgreich liefern kann. In diesem Fall erwartet Firehose, dass Sie in Ihren Iceberg-Tabellen entweder eine Spalte vom Datentyp Structure oder Map haben, die dem Positionsfeld entspricht. Firehose unterstützt 16 Verschachtelungsebenen. Es folgt ein Beispiel für eine verschachtelte. JSON

    { "version":"2016-04-01", "deviceId":"<solution_unique_device_id>", "sensorId":"<device_sensor_id>", "timestamp":"2024-01-11T20:42:45.000Z", "value":"<actual_value>", "position":{ "x":143.595901, "y":476.399628, "z":0.24234876 } }

    Wenn die Spaltennamen oder Datentypen nicht übereinstimmen, gibt Firehose einen Fehler aus und übermittelt Daten an den S3-Fehler-Bucket. Wenn alle Spaltennamen und Datentypen in den Apache Iceberg-Tabellen übereinstimmen, der Quelldatensatz jedoch ein zusätzliches neues Feld enthält, überspringt Firehose das neue Feld.

  • Ein JSON Objekt pro Datensatz — Sie können nur ein JSON Objekt in einem Firehose-Datensatz senden. Wenn Sie mehrere JSON Objekte innerhalb eines Datensatzes aggregieren und senden, gibt Firehose einen Fehler aus und übermittelt Daten an den S3-Fehler-Bucket.

  • Streaming-Quellen — Firehose unterstützt Amazon Managed Streaming for Apache Kafka derzeit nicht als Quelle für Apache Iceberg Tables.

  • Komprimierung — Jedes Mal, wenn Sie mit Firehose schreiben, werden Datendateien generiert. Tausende kleiner Datendateien erhöhen den Metadaten-Overhead und beeinträchtigen die Leseleistung. Um eine optimale Abfrageleistung zu erzielen, sollten Sie eine Lösung in Betracht ziehen, bei der in regelmäßigen Abständen kleine Datendateien in weniger größere Datendateien umgeschrieben werden. Dieser Vorgang wird als Komprimierung bezeichnet. AWS Glue Data Catalog unterstützt die automatische Komprimierung Ihrer Apache Iceberg-Tabellen. Weitere Informationen finden Sie unter Verdichtungsverwaltung im AWS Glue-Benutzerhandbuch. Weitere Informationen finden Sie unter Automatische Komprimierung von Apache Iceberg-Tabellen. Sie können Iceberg-Tabellen auch optimieren, indem Sie den Speicherverbrauch mit VACUUMeiner Anweisung reduzieren, die die Tabellenverwaltung für Apache Iceberg-Tabellen durchführt.