Datentypen (Azure Stream Analytics)

In Azure Stream Analytics verfügt jeder Datensatz über einen verknüpften Datentyp. Ein Datentyp beschreibt (und beschränkt) den Satz von Werten, die ein Datensatz dieses Typs enthalten kann, oder einen Ausdruck dieses Typs erzeugen kann.

Beachten Sie, dass es sich um Datensätze handelt, die einen Typ und keine Spalten haben. Jeder Datensatz einer Spalte kann einen anderen Typ haben. Wenn dies für die meisten Anwendungen transparent ist, ermöglicht dies eine einfache Behandlung von Schemadriftszenarien und anderen ungewöhnlichen Typisierungsmustern.

Unterstützte Datentypen

Es folgt die Liste der unterstützten Datentypen.

Datentyp Beschreibung
BIGINT Ganze Zahlen im Bereich von -2^63 (-9.223.372.036.854.775.808) bis 2^63-1 (9.223.372.036.854.775.807).
float Gleitkommazahlen im Bereich von -1,79E+308 bis -2,23E-308, 0 und 2,23E-308 bis 1,79E+308. Für Gleitkomma-Dezimalwerte gibt es in der Regel keine genaue binäre Darstellung. Es kann zu Genauigkeitsverlusten führen. Dies ist nicht spezifisch für Azure Stream Analytics sondern tritt in allen Implementierungen von Gleitkommazahlen auf.
nvarchar(max) Aus Unicode-Zeichen bestehende Textwerte. Hinweis: Ein anderer Wert als max wird nicht unterstützt.
datetime Definiert ein Datum, das mit einer Tageszeit mit Sekundenbruchteilen (7 Ziffern, 100 Nanosekunden Genauigkeit) kombiniert wird, die auf einer 24-Stunden-Uhr und relativ zur UTC (Zeitzonenoffset 0) basiert.
bit Eine ganze Zahl, die den Wert 1, 0 oder NULL übernehmen kann. Dies wird ab Kompatibilitätsgrad 1.2 unterstützt.
Datensatz (record) Eine Gruppe von Name-Wert-Paaren. Werte müssen den unterstützten Datentyp haben.
array Geordnete Auflistung von Werten. Werte müssen den unterstützten Datentyp haben.

Sie können einen bigint- und einen float-Datentyp miteinander verbinden (oder vergleichen). Sie funktioniert in allen Fällen ordnungsgemäß, mit Ausnahme der sehr großen bigint-Werte, die nicht dargestellt werden können.

Typkonvertierungen

Dies sind die Regeln für Datentypkonvertierungen:

  • Die Konvertierung ohne Genauigkeitsverlust während Lese- und Ausgabe-Schreibvorgängen ist implizit und immer erfolgreich.
  • Genauigkeitsverlust und Überlauf innerhalb von Ausgabeschreibvorgängen werden durch eine konfigurierte Fehlerrichtlinie behandelt (entweder auf Drop oder Retry festgelegt).
  • Typkonvertierungsfehler, die während Ausgabe-Schreibvorgängen auftreten, werden von der Fehlerrichtlinie behandelt.
  • Typkonvertierungsfehler, die während Eingabelesevorgängen auftreten, bewirken, dass der Auftrag das Ereignis abfing.

Beim Konvertieren von Werten in float kann es zu einem Genauigkeitsverlust kommen. Sie ist nicht spezifisch für Azure Stream Analytics, sondern für den float-Datentyp im Allgemeinen. Daher wird es nicht als Fehler betrachtet. Wenn jede Ziffer gespeichert werden muss, sollten die Daten als Zeichenfolge gelesen werden.

Umwandlung von Daten

Die Streamingsprache SQL drei Funktionen, die zum Beobachten und Anpassen des Datentyps Ihrer Daten nützlich sind.

Wenn möglich, sollten alle Umwandlungsvorgänge explizit über diese Funktionen und nicht implizit (im Hintergrund) in anderen Funktionen durchgeführt werden. Dadurch werden Typkonflikte, unerwartetes Verhalten und Einfügefehler für stark typierte Ausgaben wie SQL vermieden.

Konvertierung in Bit

Werte werden mit den folgenden Regeln zwischen float und bit konvertiert:

Von Beschreibung
(BIT) 1 (FLOAT) 1.0
(BIT) 0 (FLOAT) 0.0
(BIT) NULL (FLOAT) NULL
(FLOAT) 0.0 (BIT) 0
(FLOAT) beliebiger anderer Wert (BIT) 1
(FLOAT) NULL (BIT) NULL

Typzuordnungen und Serialisierungsformate:

Datentyp CSV in CSV out JSON in JSON-Ausgabe Avro in Avro out
bigint Zeichenfolge, die in eine 64-Bit-Ganzzahl mit Vorzeichen konvertiert wird 64-Bit-Ganzzahl mit Vorzeichen, die mithilfe der Auftragskultur in eine Zeichenfolge konvertiert wurde number: ganze Zahl, konvertiert in 64-Bit-Ganzzahl mit Vorzeichen;

Boolescher Wert: In Kompatibilitätsgrad 1.1 und unter wird "false" in 0 konvertiert, "true" in 1.
number: integer long und int konvertiert in eine 64-Bit-Ganzzahl mit Vorzeichen;

Boolescher Wert: In Kompatibilitätsgrad 1.1 und unter false wird in 0 konvertiert, true in 1.
long
float In eine 64-Bit-Gleitkommazahl konvertierte Zeichenfolge 64-Bit-Gleitkommazahl mit Vorzeichen, die mithilfe der Auftragskultur in eine Zeichenfolge konvertiert wurde number: Bruch konvertiert in 64-Bit-Gleitkommazahl mit Vorzeichen number: fraction In eine 64-Bit-Gleitkommazahl konvertierte "double"- und "float"-Werte double
nvarchar(max) Zeichenfolge Zeichenfolge Zeichenfolge Zeichenfolge Zeichenfolge Zeichenfolge
datetime In Datum/Uhrzeit gemäß ISO 8601-Standard konvertierte Zeichenfolge Zeichenfolge mit iso 8601-Standard In Datum/Uhrzeit gemäß ISO 8601-Standard konvertierte Zeichenfolge In eine Zeichenfolge gemäß ISO 8601-Standard konvertierte Angabe von Datum/Uhrzeit In Datum/Uhrzeit gemäß ISO 8601-Standard konvertierte Zeichenfolge In eine Zeichenfolge gemäß ISO 8601-Standard konvertierte Angabe von Datum/Uhrzeit
bit (Kompatibilitätsgrad 1.2 und höher) Die Zeichenfolge "true", "false" oder "null" wird entsprechend in den ganzzahligen Wert 1, 0 oder NULL konvertiert. konvertiert in die Zeichenfolge "true" oder "false" Boolean: "false" wird in 0 konvertiert, "true" wird in 1 konvertiert. Boolean: boolescher Wert Boolescher Wert: FALSE wird in 0 konvertiert, TRUE wird in 1 konvertiert. boolean
record Wird nicht unterstützt, wird die Zeichenfolge "Record" ausgegeben. JSON-Objekt JSON-Objekt Avro-Datensatztyp Avro-Datensatztyp
array Wird nicht unterstützt, wird die Zeichenfolge "Array" ausgegeben. JSON-Objekt JSON-Objekt Avro-Datensatztyp Avro-Datensatztyp

Hinweis

Für Parquet ist keine Datentypkonvertierung erforderlich.

Typzuordnung beim Schreiben in strukturierte Datenspeicher:

Datentyp SQL Power BI Document DB
bigint bigint, int, smallint, tinyint, alle Zeichenfolgentypen (ntext, nvarchar, char, ...) Ja numeric: integer
float float, real, decimal, numeric, all string types ( ntext, nvarchar, char, ...) Ja number: fraction
nvarchar(max) Alle Zeichenfolgentypen (ntext, nvarchar, char, uniqueidentifier...) ja Zeichenfolge
datetime datetime, datetime2, datetimeoffset, alle Zeichenfolgentypen ( ntext, nvarchar, char, ...) Ja In eine Zeichenfolge gemäß ISO 8601-Standard konvertierte Angabe von Datum/Uhrzeit
bit (Kompatibilitätsgrad 1.2 und höher) bigint, int, smallint, tinyint, bit, alle Zeichenfolgentypen (ntext, nvarchar, char, ...) Ja boolescher Wert: 1 wird in TRUE konvertiert, 0 in FALSE.
record Wird nicht unterstützt, wird die Zeichenfolge "Record" ausgegeben. Wird nicht unterstützt, wird die Zeichenfolge "Record" ausgegeben. JSON-Objekt
array Wird nicht unterstützt, wird die Zeichenfolge "Array" ausgegeben. Wird nicht unterstützt, wird die Zeichenfolge "Array" ausgegeben. JSON-Objekt