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
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
-
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 SerDeDateTimeFormat
-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