Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
✅ 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 |