Konvertieren Sie das Eingabedatenformat in Amazon Data Firehose - 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.

Konvertieren Sie das Eingabedatenformat in Amazon Data Firehose

Amazon Data Firehose kann das Format Ihrer Eingabedaten in Apache Parquet oder Apache JSON konvertieren, ORC bevor die Daten in Amazon S3 gespeichert werden. Parquet und ORC sind spaltenförmige Datenformate, die Platz sparen und schnellere Abfragen ermöglichen als zeilenorientierte Formate wie. JSON Wenn Sie ein anderes Eingabeformat alsJSON, wie z. B. durch Kommas getrennte Werte (CSV) oder strukturierten Text, konvertieren möchten, können Sie AWS Lambda um es in das erste umzuwandeln. JSON Weitere Informationen finden Sie unter Transformieren Sie Quelldaten in Amazon Data Firehose.

Sie können das Format Ihrer Daten konvertieren, auch wenn Sie Ihre Datensätze aggregieren, bevor Sie sie an Amazon Data Firehose senden.

Amazon Data Firehose benötigt die folgenden drei Elemente, um das Format Ihrer Datensatzdaten zu konvertieren:

Deserializer

Amazon Data Firehose benötigt einen Deserializer, um Ihre Eingabedaten zu lesen. JSON Sie können einen der folgenden zwei Deserializer-Typen wählen.

Wenn Sie mehrere JSON Dokumente zu demselben Datensatz kombinieren, stellen Sie sicher, dass Ihre Eingabe immer noch im unterstützten Format dargestellt wird. JSON Eine Reihe von JSON Dokumenten ist keine gültige Eingabe.

Dies ist zum Beispiel die richtige Eingabe: {"a":1}{"a":2}

Und das ist die falsche Eingabe: [{"a":1}, {"a":2}]

Wählen Sie OpenX, JSON SerDe wenn Ihre Eingabe Zeitstempel in den folgenden Formaten JSON enthält:

  • yyyy-MM-dd'T'HH:mm:ss[.S]'Z', wobei der Bruchteil bis zu 9 Stellen haben kann – z. B. 2017-02-07T15:13:01.39256Z.

  • yyyy-[M]M-[d]d HH:mm:ss[.S], wobei der Bruchteil bis zu 9 Stellen haben kann – z. B. 2017-02-07 15:13:01.14.

  • Epoch-Sekunden – z. B. 1518033528.

  • Epoch-Millisekunden – z. B. 1518033528123.

  • Fließkomma-Epoch-Sekunden – z. B. 1518033528.123.

Das OpenX JSON SerDe kann Punkte (.) in Unterstriche (_) umwandeln. Es kann auch JSON Schlüssel in Kleinbuchstaben umwandeln, bevor sie deserialisiert werden. Weitere Informationen zu den Optionen, die mit diesem Deserializer über Amazon Data Firehose verfügbar sind, finden Sie unter O. penXJson SerDe

Wenn Sie sich nicht sicher sind, welchen Deserializer Sie wählen sollen, verwenden Sie OpenX, es sei denn JSON SerDe, Sie haben Zeitstempel, die er nicht unterstützt.

Wenn Sie Zeitstempel in anderen als den zuvor aufgeführten Formaten haben, verwenden Sie Apache Hive. JSON SerDe Wenn Sie diesen Deserializer wählen, können Sie die zu verwendenden Zeitstempel-Formate angeben. Dazu wenden Sie die Mustersyntax der Joda-Time DateTimeFormat-Formatzeichenfolgen an. Weitere Informationen finden Sie unter Class DateTimeFormat.

Sie können auch den speziellen Wert millis zum Analysieren von Zeitstempeln in Epoch-Millisekunden verwenden. Wenn Sie kein Format angeben, verwendet Amazon Data Firehose java.sql.Timestamp::valueOf standardmäßig.

The Hive erlaubt Folgendes JSON SerDe nicht:

  • Punkte (.) in Spaltennamen.

  • Felder mit dem Typ uniontype.

  • Felder, die im Schema numerische Typen haben, die aber Zeichenketten im JSON sind. Wenn das Schema beispielsweise (eine Ganzzahl) und die JSON ist{"a":"123"}, SerDe gibt Hive einen Fehler aus.

Der Hive konvertiert verschachtelte Zeichenketten SerDe nicht in ZeichenkettenJSON. Wenn Sie zum Beispiel {"a":{"inner":1}} haben, behandelt er {"inner":1} nicht als Zeichenfolge.

Schema

Amazon Data Firehose benötigt ein Schema, um zu bestimmen, wie diese Daten interpretiert werden sollen. Verwenden von AWS Glue Sie, um ein Schema in der AWS Glue Data Catalog. Amazon Data Firehose referenziert dann dieses Schema und verwendet es, um Ihre Eingabedaten zu interpretieren. Sie können dasselbe Schema verwenden, um sowohl Amazon Data Firehose als auch Ihre Analysesoftware zu konfigurieren. Weitere Informationen finden Sie unter Auffüllen der AWS Glue Sie den Datenkatalog in den AWS Glue Leitfaden für Entwickler.

Anmerkung

Das Schema wurde erstellt in AWS Glue Der Datenkatalog sollte der Eingabedatenstruktur entsprechen. Andernfalls enthalten die konvertierten Daten keine Attribute, die nicht im Schema angegeben sind. Wenn Sie Nested verwendenJSON, verwenden Sie im Schema einen STRUCT Typ, der die Struktur Ihrer JSON Daten widerspiegelt. In diesem Beispiel erfahren Sie, wie Sie JSON mit verschachtelten Typen umgehen können. STRUCT

Wichtig

Für Datentypen, die keine Größenbeschränkung angeben, gibt es eine praktische Grenze von 32 MBs für alle Daten in einer einzigen Zeile.

Wenn Sie die Länge für CHAR oder angebenVARCHAR, kürzt Firehose die Zeichenketten beim Lesen der Eingabedaten auf die angegebene Länge. Wenn die zugrunde liegende Datenzeichenfolge länger ist, bleibt sie unverändert.

Serializer

Firehose benötigt einen Serializer, um die Daten in das spaltenförmige Zielspeicherformat (Parquet oderORC) zu konvertieren. Sie können einen der folgenden beiden Serialisierertypen wählen.

Welchen Serializer Sie auswählen sollten, hängt von den Anforderungen Ihres Unternehmens ab. Weitere Informationen zu den beiden Serializer-Optionen finden Sie unter und Parquet. ORC SerDe SerDe