Verwenden der Funktion der Schemaerkennung für Streaming-Daten - Entwicklerhandbuch für Amazon Kinesis Data Analytics for SQL Applications

Für neue Projekte empfehlen wir, den neuen Managed Service für Apache Flink Studio anstelle von Kinesis Data Analytics for SQL Applications zu verwenden. Der Managed Service für Apache Flink Studio kombiniert Benutzerfreundlichkeit mit fortschrittlichen Analysefunktionen, sodass Sie in wenigen Minuten anspruchsvolle Anwendungen zur Stream-Verarbeitung erstellen können.

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.

Verwenden der Funktion der Schemaerkennung für Streaming-Daten

Anmerkung

Nach dem 12. September 2023 können Sie keine neuen Anwendungen mit Kinesis Data Firehose als Quelle erstellen, wenn Sie Kinesis Data Analytics für SQL nicht bereits verwenden. Weitere Informationen finden Sie unter Limits.

Die Bereitstellung eines Eingabeschemas, das die Zuordnung der Datensätze in der Streaming-Eingabe zu einem In-Application-Stream beschreibt, kann langwierig und fehleranfällig sein. Sie können die DiscoverInputSchema-API (Erkennungs-API genannt), um ein Schema abzuleiten. Mithilfe der Verwendung von Beispieldatensätzen in der Streaming-Quelle kann die API ein Schema ableiten (d. h. Spaltennamen, Datentypen und Position des Datenelements in den eingehenden Daten).

Anmerkung

Informationen zum Verwenden der Discovery-API zum Erstellen eines Schemas aus einer in Amazon S3 gespeicherten Datei finden Sie unter Verwenden der Funktion der Schemaerkennung für statische Daten.

Die Konsole verwendet die Erkennungs-API für die Generierung eines Schemas für eine angegebene Streaming-Quelle. Mithilfe der Konsole können Sie das Schema auch aktualisieren, einschließlich des Hinzufügens und Entfernens von Spalten, des Änderns von Spaltennamen oder Datentypen usw. Gehen Sie bei den Änderungen jedoch sorgfältig vor, um sicherzustellen, dass Sie kein ungültiges Schema erstellen.

Nachdem Sie ein Schema für Ihren In-Application-Stream fertiggestellt haben, gibt es Funktionen, die Sie zur Bearbeitung von Zeichenfolgen- und Datums-/Uhrzeitwerten verwenden können. Sie können diese Funktionen in Ihrem Anwendungscode verwenden, wenn Sie im resultierenden In-Application-Stream mit Zeilen arbeiten. Weitere Informationen finden Sie unter Beispiel: Transformieren von DateTime Werten.

Benennung von Spalten während der Schemaerkennung

Während der Schemaerkennung versucht Amazon Kinesis Data Analytics einen möglichst großen Teil des ursprünglichen Spaltennamens aus der Streaming-Eingabequelle beizubehalten, außer in folgenden Fällen:

  • Der Spaltenname der Quelle ist ein reserviertes SQL-Schlüsselwort wie TIMESTAMP, USER, VALUES oder YEAR.

  • Der Spaltenname des Quell-Streams enthält nicht unterstützte Zeichen. Es werden nur Buchstaben, Ziffern und Unterstriche (_) unterstützt.

  • Die Spaltenname des Quell-Streams beginnt mit einer Zahl.

  • Der Spaltenname des Quell-Streams enthält mehr als 100 Zeichen.

Wenn eine Spalte umbenannt wird, beginnt der umbenannte Spaltenname mit COL_. In einigen Fällen können keine der ursprünglichen Spaltennamen beibehalten werden, beispielsweise wenn der gesamte Name aus nicht unterstützten Zeichen besteht. In einem solchen Fall wird die Spalte mit COL_# benannt, wobei # eine Zahl ist, die den Platz der Spalte in der Spaltenreihenfolge angibt.

Nach dem Abschluss der Erkennung können Sie das Schema über die Konsole aktualisieren, um Spalten hinzuzufügen oder zu entfernen oder um Spaltennamen, Datentypen oder Datengröße zu ändern.

Beispiele für während der Erkennung vorgeschlagene Spaltennamen

Spaltenname im Quell-Stream Während der Erkennung vorgeschlagener Spaltenname

USER

COL_USER

USER@DOMAIN

COL_USERDOMAIN

@@

COL_0

Probleme bei der Schemaerkennung

Was geschieht, wenn Kinesis Data Analytics kein Schema für eine bestimmte Streaming-Quelle ableitet?

Kinesis Data Analytics leitet Ihr Schema für gängige Formate wie CSV und JSON ab, die UTF-8 kodiert sind. Kinesis Data Analytics unterstützt alle mit UTF-8 kodierten Datensätze (einschließlich Rohtexte wie Anwendungsprotokolle und Datensätze) mit einem benutzerdefinierten Spalten- und Zeilentrennzeichen. Wenn Kinesis Data Analytics kein Schema ableitet, können Sie ein Schema manuell mittels des Schema-Editors in der Konsole (oder über die API) definieren.

Wenn Ihre Daten keinem Muster folgen (das Sie mittels des Schema-Editors angeben können), können Sie ein Schema als einzelne Spalte vom Typ VARCHAR(N) definieren, wobei N die größte Anzahl von Zeichen ist, die Ihr Datensatz voraussichtlich enthalten wird. Anschließend können Sie die Zeichenfolgen- und Datum-/Uhrzeitbearbeitung verwenden, um Ihre Daten zu strukturieren, wenn sie sich in einem In-Application-Stream befinden. Beispiele finden Sie unter Beispiel: Transformieren von DateTime Werten.