Freigeben über


Datentypen

✅ Azure Stream Analytics ✅ Fabric Eventstream

Jeder Datensatz weist einen zugehörigen Datentyp auf. Ein Datentyp beschreibt (und beschränkt) den Wertesatz, den ein Datensatz dieses Typs enthalten kann, oder einen Ausdruck dieses Typs erzeugen kann.

Bitte beachten Sie, dass es sich um Datensätze handelt, die über einen Typ und keine Spalten verfügen. Jeder Datensatz einer Spalte kann einen anderen Typ aufweisen. Wenn dies für die meisten Anwendungen transparent ist, ermöglicht sie eine einfache Behandlung von Schemaabweichungsszenarien und anderen ungewöhnlichen Typisierungsmustern.

Unterstützte Datentypen

Nachfolgend finden Sie die Liste der unterstützten Datentypen.

Datentyp Beschreibung
bigint Ganze Zahlen im Bereich -2^63 (-9.223.372.036.854.775.808) bis 2^63-1 (9.223.372.036.854.775.875.807).
Schweben Gleitkommazahlen im Bereich - 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. Der Verlust der Präzision kann auftreten. Dies ist nicht spezifisch für Azure Stream Analytics, sondern erfolgt in allen Gleitkommazahlenimplementierungen.
nvarchar(max) Textwerte, bestehend aus Unicode-Zeichen. Hinweis: Ein anderer Wert als "max" wird nicht unterstützt.
Datum/Uhrzeit Definiert ein Datum, das mit einer Tageszeit mit Bruch sekunden (7 Ziffern, Genauigkeit von 100 Nanosekunden) kombiniert wird, die auf einer 24-Stunden-Uhr und relativ zu UTC (Zeitzonenversatz 0) basiert.
Bit Eine ganze Zahl, die einen Wert von 1, 0 oder NULL annehmen kann. Dies wird in Kompatibilitätsebene 1.2 und höher unterstützt.
Datensatz (record) Set of name/value pairs. Werte müssen vom unterstützten Datentyp sein.
Array Sortierte Auflistung von Werten. Werte müssen vom unterstützten Datentyp sein.

Sie können einen Bigint und einen Float-Datentyp verknüpfen (oder vergleichen). Es funktioniert in allen Fällen ordnungsgemäß, mit Ausnahme der großflächigen Werte, die nicht dargestellt werden können.

Hinweis

Beim Lesen von Bigint-Datentypen außerhalb des Bereichs unterstützt Azure Stream Analytics ihren Stream Analytics-Auftrag nicht, die Ereignisse mit der Fehlermeldung "InputDeserializationError" deserialisieren. Sie können die Daten vorab verarbeiten und in eine Zeichenfolge konvertieren. Eine Option ist die Verwendung von Azure-Funktionen, um die Daten vorzuverarbeitet und solche großen Ganzzahlen in eine Zeichenfolge zu konvertieren.

Typkonvertierungen

Dies sind die Regeln für Datentypkonvertierungen:

  • Konvertierung ohne Genauigkeitsverlust bei Eingabelese- und Ausgabeschreibvorgängen ist implizit und ist immer erfolgreich.
  • Genauigkeitsverlust und Überlauf innerhalb von Ausgabeschreibvorgängen werden durch konfigurierte Fehlerrichtlinie behandelt (auf Drop oder Retry festgelegt)
  • Typkonvertierungsfehler, die während Ausgabeschreibvorgängen auftreten, werden von der Fehlerrichtlinie behandelt.
  • Fehler bei der Typkonvertierung, die während Eingabelesevorgängen auftreten, führen dazu, dass der Auftrag das Ereignis ablöscht.

Ein Genauigkeitsverlust kann beim Konvertieren von Werten in float auftreten. Es ist nicht spezifisch für Azure Stream Analytics, sondern für den Float-Datentyp im Allgemeinen. Daher wird er nicht als Fehler betrachtet. In dem Fall, in dem jede Ziffer aufbewahrt werden muss, sollten die Daten als Zeichenfolge gelesen werden.

Umwandeln von Daten

Es gibt vier Funktionen in der SQL-Streamingsprache, die nützlich sind, um den Datentyp Ihrer Daten zu beobachten und anzupassen.

  • CAST : Wandeln Sie eine einzelne Spalte in einen bestimmten Typ um – schlägt den Auftrag bei Konvertierungsfehlern fehl.
  • TRY_CAST : Umwandeln einer einzelnen Spalte in einen bestimmten Typ – Fehler werden als NULL durchlaufen. Informationen zur optimalen Verwendung finden Sie in der Eingabeüberprüfung . TRY_CAST
  • CREATE TABLE : Definieren eines einzelnen expliziten Schemas für eine Eingabe. Zeilen mit Konvertierungsfehlern werden aus dem Datenstrom entfernt.
  • GetType : Zurückgeben des Typs einer Spalte

Für die meisten Anwendungsfälle empfiehlt es sich, TRY_CAST zu verwenden. Diese Funktion schützt die nachgelagerte Verarbeitung, indem der Ausgabetyp sichergestellt wird, während der Verlust von Daten verhindert wird, indem der Fehlerwert durch NULL ersetzt wird. Die Zeile wird nicht gelöscht, und dieser ursprüngliche Wert kann weiterhin in einer anderen Spalte projiziert werden.

Für starke Garantien empfiehlt es sich, CREATE TABLE zu verwenden. Dieser Ansatz ermöglicht es, den Auftrag des Schemas einer bestimmten Eingabe ohne Abweichungsrisiko zu informieren. Der Kompromiss ist, dass nur ein einzelnes Schema für eine bestimmte Eingabe definiert werden kann, und nicht kompatible Zeilen werden gelöscht.

Wenn möglich, sollten alle Umwandlungsvorgänge explizit über diese Funktionen erfolgen, anstatt implizit (im Hintergrund) in anderen Funktionen. Dadurch werden Typenkonflikten, unerwartete Verhaltensweisen und Einfügefehler für stark typierte Ausgaben wie SQL-Datenbanken vermieden. Lesen Sie die Eingabeüberprüfung , um die Hauptabfragelogik vor solchen Fehlern zu schützen.

Konvertierung in Bit

Werte werden zwischen Float und Bit mit den folgenden Regeln konvertiert:

Von Bis
(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-Ausgabe JSON in JSON out Avro in Avro out
bigint Zeichenfolge, die in eine 64-Bit-Ganzzahl konvertiert wurde 64-Bit-ganzzahlige Vorzeichen, die in eine Zeichenfolge mit Auftragskultur konvertiert wurde Zahl: ganze Zahl, die in eine 64-Bit-Ganzzahl konvertiert wird;

Boolescher Wert: In Kompatibilitätsebene 1.1 und unter "false" wird "false" in 0 konvertiert, "true" wird in 1 konvertiert.
Zahl: ganze Zahl long und int konvertiert in 64 Bit ganze Zahl;

Boolescher Wert: In Kompatibilitätsebene 1.1 und unter "false" wird "true" in "0" konvertiert. "true" wird in "1" konvertiert.
lang
schweben Zeichenfolge, die in eine 64-Bit-signierte Gleitkommazahl konvertiert wurde 64-Bit-signierte Gleitkommazahl, die mithilfe der Auftragskultur in eine Zeichenfolge konvertiert wird Zahl: Bruch, der in eine 64-Bit-signierte Gleitkommazahl konvertiert wurde Zahl: Bruch double and float converted to 64 bit signed float point number doppelt
nvarchar(max) Schnur Schnur Schnur Schnur Schnur Schnur
datetime Zeichenfolge, die nach dem ISO 8601-Standard in "datetime" konvertiert wurde Zeichenfolge mit ISO 8601-Standard Zeichenfolge, die nach dem ISO 8601-Standard in "datetime" konvertiert wurde datetime converted to string using ISO 8601 standard Zeichenfolge, die nach dem ISO 8601-Standard in "datetime" konvertiert wurde datetime converted to string using ISO 8601 standard
Bit (Kompatibilitätsebene 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" Boolescher Wert: "false" wird in 0 konvertiert, "true" wird in 1 konvertiert. Boolescher Wert: boolescher Wert Boolescher Wert: False wird in 0 konvertiert, true wird in 1 konvertiert. Boolescher Wert
aufzeichnen Nicht verfügbar Wird nicht unterstützt, wird die Zeichenfolge "Record" ausgegeben. JSON-Objekt JSON-Objekt Avro-Datensatztyp Avro-Datensatztyp
Anordnung Nicht verfügbar Nicht unterstützt, wird die Zeichenfolge "Array" ausgegeben. JSON-Objekt JSON-Objekt Avro-Datensatztyp Avro-Datensatztyp

Hinweis

Für Parkett ist keine Datentypkonvertierung erforderlich.

Typzuordnung beim Schreiben in strukturierte Datenspeicher

Datentyp SQL Power BI Azure Cosmos DB (ein Microsoft-Datenbankdienst) PostgreSQL Azure-Daten-Explorer
bigint bigint, int, smallint, tinyint, alle Zeichenfolgentypen (ntext, nvarchar, char, ...) ja numerisch: ganze Zahl bigint

Wenn der Spaltentyp klein oder ganzzahlig ist, tritt der Fehler "falsches Binärdatenformat" auf.
dynamisch, int, long
schweben float, real, dezimal, numerisch, alle Zeichenfolgentypen ( ntext, nvarchar, char, ...) ja Zahl: Bruch doppelte Genauigkeit, numerisch. Auf 1,78E+308 beschränkt

Wenn der Spaltentyp real ist, tritt der Fehler "falsches Binärdatenformat" auf.
dynamisch, real, double
nvarchar(max) Alle Zeichenfolgentypen (ntext, nvarchar, char, uniqueidentifier...) ja Schnur Zeichen variierend, Text Dynamisch, Zeichenfolge
datetime datetime, datetime2, datetimeoffset, all string types ( ntext, nvarchar, char, ...) ja datetime converted to string using ISO 8601 standard Timestamptz für UTC-Zeitstempel, Andernfalls Zeitstempel Dynamisch, Zeichenfolge, Datetime
Bit (Kompatibilitätsebene 1.2 und höher) bigint, int, smallint, tinyint, bit, all string types (ntext, nvarchar, char, ...) ja boolescher Wert: 1 wird in "true" konvertiert, 0 in "false" konvertiert. Bit dynamisch, bool
aufzeichnen Wird nicht unterstützt, wird die Zeichenfolge "Record" ausgegeben. Wird nicht unterstützt, wird die Zeichenfolge "Record" ausgegeben. JSON-Objekt Nicht unterstützt Dynamic, bool, long, datetime, byte array, real, double, string
Anordnung Nicht unterstützt, wird die Zeichenfolge "Array" ausgegeben. Nicht unterstützt, wird die Zeichenfolge "Array" ausgegeben. JSON-Objekt Nicht unterstützt Dynamisch, Zeichenfolge