Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
✅Eventstream prostředků infrastruktury Azure Stream Analytics ✅
Každý záznam má související datový typ. Datový typ popisuje (a omezení) množinu hodnot, které může záznam daného typu obsahovat, nebo výraz tohoto typu může vytvořit.
Upozorňujeme, že se jedná o záznamy, které mají typ, nikoli sloupce. Každý záznam sloupce může mít jiný typ. Pokud to bude pro většinu aplikací transparentní, umožňuje jednoduché zpracování scénářů posunu schématu a dalších neobvyklých vzorů psaní.
Podporované datové typy
Níže je seznam podporovaných datových typů.
| Datový typ | Popis |
|---|---|
| bigint | Celá čísla v rozsahu -2^63 (-9 223 372 036 854 775 808) až 2^63-1 (9 223 372 036 854 775 807). |
| float | Čísla s plovoucí desetinou čárkou v rozsahu - 1,79E+308 až -2,23E-308, 0 a 2,23E-308 až 1,79E+308. Desetinné hodnoty s plovoucí desetinnou čárkou obvykle nemají přesnou binární reprezentaci. Může dojít ke ztrátě přesnosti. To není specifické pro Azure Stream Analytics, ale dochází ve všech implementacích čísel s plovoucí desetinou čárkou. |
| nvarchar(max) | Textové hodnoty, které se skládají z znaků Unicode. Poznámka: Jiná hodnota než maximum není podporována. |
| datetime | Definuje datum v kombinaci s časem dne se zlomkovými sekundami (7 číslic, přesností nanosekund 100 nanosekund), které jsou založeny na 24hodinovém formátu a relativním vzhledem k času UTC (posun časového pásma 0). |
| trochu | Celé číslo, které může mít hodnotu 1, 0 nebo NULL. To je podporováno ve verzi kompatibility 1.2 a vyšší. |
| záznam | Sada párů název/hodnota Hodnoty musí být podporovaného datového typu. |
| pole | Seřazená kolekce hodnot. Hodnoty musí být podporovaného datového typu. |
Můžete se připojit (nebo porovnat) velký a plovoucí datový typ. Funguje správně ve všech případech s výjimkou velmi velkých velkých hodnot, které nelze reprezentovat.
Poznámka:
Při čtení velkých datových typů mimo rozsah podporuje Azure Stream Analytics, vaše úloha Stream Analytics nebude moct deserializovat události chybovou zprávou : InputDeserializationError. Data můžete předem zpracovat a převést na řetězec. Jednou z možností je použití funkcí Azure k předběžnému zpracování dat a převodu velkých celých čísel na řetězec.
Převody typů
Toto jsou pravidla pro převody datových typů:
- Převod bez ztráty přesnosti během vstupních operací čtení a zápisu je implicitní a je vždy úspěšný.
- Ztrátu přesnosti a přetečení uvnitř výstupních operací zápisu zpracovává nakonfigurovaná zásada chyb (nastavená na hodnotu Drop nebo Retry).
- Chyby převodu typů, ke které dochází během výstupních operací zápisu, se zpracovávají zásadami chyb.
- Chyby převodu typů, ke které dochází během vstupních operací čtení, způsobují, že úloha událost zahodí.
Při převodu hodnot na hodnotu float může dojít ke ztrátě přesnosti. Obecně se nevztahuje na Azure Stream Analytics, ale na datový typ float. Proto se nepovažuje za chybu. V případě, že je potřeba šetřit každou číslici, by se data měla číst jako řetězec.
Přetypování dat
V streamovacím jazyce SQL jsou k dispozici čtyři funkce, které jsou užitečné pro pozorování a úpravu datového typu vašich dat.
- CAST : Přetypování jednoho sloupce na daný typ – selže úloha v případě chyby převodu.
-
TRY_CAST : Přetypování jednoho sloupce na daný typ – chyby se dají procházet jako NULL. Informace o tom, jak nejlépe používat, najdete v ověření vstupu .
TRY_CAST - CREATE TABLE : Definujte jedno explicitní schéma pro vstup. Řádky s chybami převodu se odeberou ze streamu.
- GetType : vrácení typu sloupce
Ve většině případů se doporučuje použít TRY_CAST. Tato funkce chrání podřízené zpracování tím, že zajišťuje výstupní typ a zároveň brání ztrátě dat nahrazením hodnoty v chybě hodnotou NULL. Řádek se nezahodí a původní hodnota se stále dá promítnuta do jiného sloupce.
Pro silné záruky doporučujeme použít CREATE TABLE. Tento přístup umožňuje informovat úlohu schématu daného vstupu bez rizika odchylky. Kompromisem je, že na daném vstupu lze definovat pouze jedno schéma a řádky, které nedodržují předpisy, se zahodí.
Pokud je to možné, měly by se všechny operace přetypování provádět explicitně prostřednictvím těchto funkcí, nikoli implicitně (bezobslužně) v jiných funkcích. Tím se zabrání neshodám typů, neočekávanému chování a chybám vložení u výstupů se silnými typy, jako jsou databáze SQL. Informace o ochraně hlavní logiky dotazů před těmito chybami najdete v ověření vstupu .
Převod na bit
Hodnoty budou převedeny mezi plovoucí a bitovou sadou s následujícími pravidly:
| Od | K |
|---|---|
| (BIT) 1 | (FLOAT) 1.0 |
| (BIT) 0 | (FLOAT) 0.0 |
| (BIT) NULA | (FLOAT) NULA |
| (FLOAT) 0.0 | (BIT) 0 |
| (FLOAT) libovolná jiná hodnota | (BIT) 1 |
| (FLOAT) NULA | (BIT) NULA |
Mapování typů a formáty serializace
| Datový typ | Sdílený svazek clusteru ve svazek | Sdílený svazek clusteru | JSON v | Json out | Avro in | Avro out |
|---|---|---|---|---|---|---|
| bigint | řetězec převedený na 64bitové celé číslo se znaky | 64bitové celé číslo se znaky převedené na řetězec pomocí jazykové verze úlohy | číslo: celé číslo převedené na 64bitové celé číslo se signedem; Logická hodnota: v úrovni kompatibility 1.1 a pod hodnotou false se převede na hodnotu 0, hodnota true se převede na 1. |
číslo: celé číslo | dlouhé a int převedené na 64bitové celé číslo se signedm; Logická hodnota: V úrovni kompatibility 1.1 a pod hodnotou false se převede na hodnotu 0, pravda se převede na 1. |
dlouhý |
| plout | řetězec převedený na 64bitové číslo s plovoucí desetinnou čárkou | 64bitové číslo s plovoucí desetinnou čárkou převedené na řetězec pomocí jazykové verze úlohy | číslo: zlomek převeden na 64bitové číslo s plovoucí desetinnou čárkou | číslo: zlomek | double and float converted to 64 bit signed float point number | dvojitý |
| nvarchar(max) | řetězec | řetězec | řetězec | řetězec | řetězec | řetězec |
| datum a čas | řetězec převedený na datum a čas podle standardu ISO 8601 | řetězec používající normu ISO 8601 | řetězec převedený na datum a čas podle standardu ISO 8601 | datum a čas převedený na řetězec pomocí standardu ISO 8601 | řetězec převedený na datum a čas podle standardu ISO 8601 | datum a čas převedený na řetězec pomocí standardu ISO 8601 |
| bit (úroveň kompatibility 1.2 a vyšší) | řetězec "true", "false" nebo "null" se odpovídajícím způsobem převede na celočíselnou hodnotu 1, 0 nebo null. | převedeno na řetězec "true" nebo "false" | Logická hodnota: "false" se převede na 0, hodnota true se převede na 1. | Logická hodnota: logická hodnota | Logická hodnota: False je převedena na hodnotu 0, hodnota true se převede na 1. | Boolean |
| záznamu | není k dispozici | Nepodporuje se, řetězec záznamu se vypíše. | Objekt JSON | Objekt JSON | Typ záznamu Avro | Typ záznamu Avro |
| pole | není k dispozici | Nepodporuje se, řetězec Array se vypíše. | Objekt JSON | Objekt JSON | Typ záznamu Avro | Typ záznamu Avro |
Poznámka:
Pro Parquet není nutný žádný převod datového typu.
Mapování typů při zápisu do strukturovaných úložišť dat
| Datový typ | SQL | Power BI | Azure Cosmos DB | PostgreSQL | Azure Data Explorer |
|---|---|---|---|---|---|
| bigint | bigint, int, smallint, tinyint, all string types (ntext, nvarchar, char, ...) | Ano | numeric: celé číslo | bigint Pokud je typ sloupce malýint nebo celé číslo, dojde k chybě "nesprávný binární formát dat". |
dynamická, int, dlouhá |
| plout | float, real, decimal, numeric, all string types ( ntext, nvarchar, char, ...) | Ano | číslo: zlomek | dvojitá přesnost, číselná. Omezeno na 1,78E+308 Pokud je typ sloupce skutečný, dojde k chybě "nesprávný binární formát dat". |
dynamický, skutečný, dvojitý |
| nvarchar(max) | Všechny typy řetězců (ntext, nvarchar, char, uniqueidentifier...) | Ano | řetězec | různé znaky, text | dynamic, string |
| datum a čas | datetime, datetime2, datetimeoffset, všechny typy řetězců ( ntext, nvarchar, char, ...) | Ano | datum a čas převedený na řetězec pomocí standardu ISO 8601 | timestamptz pro časové razítko UTC, časové razítko v opačném případě | dynamic, string, datetime |
| bit (úroveň kompatibility 1.2 a vyšší) | bigint, int, smallint, tinyint, bit, všechny typy řetězců (ntext, nvarchar, char, ...) | Ano | logická hodnota: 1 se převede na hodnotu true, 0 se převede na false. | trochu | dynamická, logická hodnota |
| záznamu | Nepodporuje se, řetězec záznamu se vypíše. | Nepodporuje se, řetězec záznamu se vypíše. | Objekt JSON | Není podporováno | dynamic, bool, long, datetime, byte array, real, double, string |
| pole | Nepodporuje se, řetězec Array se vypíše. | Nepodporuje se, řetězec Array se vypíše. | Objekt JSON | Není podporováno | dynamic, string |