Megosztás a következőn keresztül:


Adattípusok

✅ Azure Stream Analytics ✅ Fabric Eventstream

Minden rekordhoz tartozik egy kapcsolódó adattípus. Az adattípusok azt az értékkészletet írják le (és korlátozzák), amelyeket egy ilyen típusú rekord vagy egy ilyen típusú kifejezés képes létrehozni.

Vegye figyelembe, hogy olyan rekordokról van szó, amelyek típusa nem oszlop. Egy oszlop minden rekordja más típusú lehet. Ha ez a legtöbb alkalmazás számára átlátható lesz, lehetővé teszi a sémaeltolódási forgatókönyvek és más szokatlan gépelési minták egyszerű kezelését.

Támogatott adattípusok

Alább látható a támogatott adattípusok listája.

Adattípus Leírás
bigint A -2^63 tartomány egészei (-9 223 372 036 854 775 808) és 2^63-1 (9 223 372 036 854 775 807).
float Lebegőpontos számok a tartományban – 1,79E+308–-2,23E-308, 0 és 2,23E-308– 1,79E+308. A lebegőpontos decimális értékek általában nem rendelkeznek pontos bináris reprezentációval. A pontosság elvesztése tapasztalható. Ez nem az Azure Stream Analyticsre vonatkozik, hanem minden lebegőpontos szám implementációban előfordul.
nvarchar(max) Unicode-karakterekből álló szöveges értékek. Megjegyzés: A maximálistól eltérő érték nem támogatott.
datetime Olyan dátumot határoz meg, amely a napidővel és a másodperc tört másodpercével (7 számjegy, 100 nanoszekundumos pontosság) van kombinálva, amely egy 24 órás óra és az UTC (időzóna eltolása 0) alapján történik.
egy kicsit Egy egész szám, amely 1, 0 vagy NULL értéket vehet fel. Ez az 1.2-es és újabb kompatibilitási szinten támogatott.
rekord Név-érték párok halmaza. Az értékeknek támogatott adattípusúnak kell lenniük.
tömb Rendezett értékgyűjtemény. Az értékeknek támogatott adattípusúnak kell lenniük.

Csatlakoztathat (vagy összehasonlíthat) egy bigint és egy lebegőpontos adattípust. Minden esetben helyesen fog működni, kivéve a nagyon nagy, nem ábrázolható bigint értékeket.

Megjegyzés:

Ha nagy adattípusokat olvas a tartományon kívül, az Azure Stream Analytics támogatja, a Stream Analytics-feladat nem deszerializálja az eseményeket az InputDeserializationError hibaüzenettel. Az adatokat előre feldolgozhatja és sztringgé alakíthatja. Az egyik lehetőség az Azure-függvények használata az adatok előzetes feldolgozására és az ilyen nagy egész számok sztringgé alakítására.

Típuskonverziók

Az adattípus-átalakításokra a következő szabályok vonatkoznak:

  • A bemeneti olvasási és kimeneti írási műveletek során a pontossági veszteség nélküli átalakítás implicit, és mindig sikeres
  • A kimeneti írási műveleteken belüli pontosságvesztést és túlcsordulást konfigurált hibaházirend kezeli (drop vagy retry értékre van állítva)
  • A kimeneti írási műveletek során előforduló típuskonvertálási hibákat a hibaházirend kezeli
  • A bemeneti olvasási műveletek során előforduló típuskonverziós hibák miatt a feladat elveti az eseményt

Az értékek lebegőpontossá alakításakor a pontosság romlása fordulhat elő. Ez nem az Azure Stream Analyticsre vonatkozik, hanem általában a lebegőpontos adattípusra. Ezért ez nem tekinthető hibának. Abban az esetben, ha minden számjegyet meg kell őrizni, az adatokat sztringként kell olvasni.

Adatok kiosztása

A streamelési SQL-nyelvben négy olyan függvény található, amelyek hasznosak az adatok adattípusának megfigyeléséhez és módosításához.

  • CAST : egyetlen oszlop egy adott típusra történő leadása – konvertálási hiba esetén a feladat meghiúsul
  • TRY_CAST : egyetlen oszlopot ad egy adott típushoz – a hibák null értékként lesznek átadva. A legjobb használat érdekében tekintse meg a bemenetek érvényesítésétTRY_CAST
  • CREATE TABLE : adjon meg egyetlen explicit sémát egy bemenethez. A konvertálási hibákat tartalmazó sorok törlődnek a streamből
  • GetType : egy oszlop típusát adja vissza

A legtöbb használati esetben az ajánlott beállítás a TRY_CAST használata. Ez a függvény a kimeneti típus biztosításával védi az alsóbb rétegbeli feldolgozást, ugyanakkor megakadályozza az adatvesztést azáltal, hogy a hiba értékét NULL értékre cseréli. A sor nincs elvetve, és az eredeti érték továbbra is kivetíthető egy másik oszlopban.

Erős garanciák esetén a CREATE TABLE használata ajánlott. Ez a megközelítés lehetővé teszi, hogy az adott bemenet sémájának feladatát tájékoztassa, az eltérés kockázata nélkül. A kompromisszum az, hogy egy adott bemeneten csak egyetlen séma definiálható, és a nem megfelelő sorok el lesznek dobva.

Ha lehetséges, az összes öntési műveletet explicit módon kell elvégezni ezeken a függvényeken keresztül, nem pedig implicit módon (csendesen) más függvényekben. Így elkerülhetők a típuseltérések, a váratlan viselkedések és a beszúrási hibák az olyan erősen gépelt kimenetek esetében, mint az SQL-adatbázisok. Az ilyen hibáktól a fő lekérdezési logika védelmének ellenőrzéséhez tekintse meg a bemeneti érvényesítést .

Konvertálás bitre

A rendszer az alábbi szabályokkal konvertálja az értékeket a lebegőpontos és a bit között:

Ettől kezdve
(BIT) 1 (FLOAT) 1.0
(BIT) 0 (FLOAT) 0,0
(BIT) NULLA (FLOAT) NULLA
(FLOAT) 0,0 (BIT) 0
(FLOAT) bármely más érték (BIT) 1
(FLOAT) NULLA (BIT) NULLA

Típusleképezések és szerializálási formátumok

Adattípus CSV a következőben: CSV kifelé JSON a következőben: JSON ki Avro in Avro out
bigint sztring 64 bites aláírt egész számmá alakítva 64 bites aláírt egész szám sztringgé alakítva a feladatkultúra használatával szám: 64 bites aláírt egész számmá konvertált egész szám;

Logikai: az 1.1 kompatibilitási szinten és a "hamis" alatt a rendszer 0-ra konvertálja a "true" értéket, a rendszer 1-esre konvertálja a "true" értéket.
szám: egész szám hosszú és int 64 bites aláírt egész számmá konvertálva;

Logikai: az 1.1 kompatibilitási szinten és a false alatt a rendszer 0-ra konvertálja, a true értéke 1 lesz
hosszú
lebeg sztring 64 bites aláírt lebegőpontos számmá alakítva 64 bites aláírt lebegőpontos szám sztringgé alakítva a feladatkultúra használatával szám: 64 bites aláírt lebegőpontos számmá konvertált törtrész szám: tört 64 bites aláírt lebegőpontos számmá konvertált kettős és lebegőpontos dupla
nvarchar(max) karakterlánc karakterlánc karakterlánc karakterlánc karakterlánc karakterlánc
datetime az ISO 8601 szabvány szerint datetime-ra konvertált sztring sztring az ISO 8601 szabvány használatával az ISO 8601 szabvány szerint datetime-ra konvertált sztring dátum/idő sztringgé alakítva az ISO 8601 szabvány használatával az ISO 8601 szabvány szerint datetime-ra konvertált sztring dátum/idő sztringgé alakítva az ISO 8601 szabvány használatával
bit (1.2-es és újabb kompatibilitási szint ) a "true", "false" vagy "null" sztring 1, 0 vagy null egész számmá alakul. "igaz" vagy "hamis" sztringgé alakítva Logikai: a "false" 0-ra, a "true" 1-re lesz konvertálva Logikai érték: logikai érték Logikai: a hamis 0-ra lesz konvertálva, az igaz érték 1-re lesz konvertálva Boolean
rekord Nincs adat. Nem támogatott, a "Record" sztring kimenete JSON-objektum JSON-objektum Avro rekordtípus Avro rekordtípus
tömb Nincs adat. Nem támogatott, a "Tömb" sztring kimenete JSON-objektum JSON-objektum Avro rekordtípus Avro rekordtípus

Megjegyzés:

A Parquethez nincs szükség adattípus-átalakításra.

Típusleképezés strukturált adattárakba való íráskor

Adattípus SQL Power BI Azure Cosmos DB PostgreSQL Azure Data Explorer
bigint bigint, int, smallint, tinyint, minden sztringtípus (ntext, nvarchar, char, ...) igen numerikus: egész szám bigint

Ha az oszloptípus kis vagy egész szám, "helytelen bináris adatformátum" hibaüzenet jelenik meg.
dinamikus, int, hosszú
lebeg float, real, decimális, numerikus, minden sztringtípus ( ntext, nvarchar, char, ...) igen szám: tört dupla pontosság, numerikus. Legfeljebb 1,78E+308

Ha az oszlop típusa valós, "helytelen bináris adatformátum" hibaüzenet jelenik meg.
dinamikus, valós, dupla
nvarchar(max) Minden sztringtípus (ntext, nvarchar, char, uniqueidentifier...) igen karakterlánc karakter változó, szöveg dinamikus, sztring
datetime datetime, datetime2, datetimeoffset, minden sztringtípus ( ntext, nvarchar, char, ...) igen dátum/idő sztringgé alakítva az ISO 8601 szabvány használatával timestamptz for UTC timestamp, timestamp otherwise dinamikus, sztring, datetime
bit (1.2-es és újabb kompatibilitási szint ) bigint, int, smallint, tinyint, bit, minden sztringtípus (ntext, nvarchar, char, ...) igen logikai érték: 1 igaz, 0 hamisra konvertálva egy kicsit dinamikus, bool
rekord Nem támogatott, a "Record" sztring kimenete Nem támogatott, a "Record" sztring kimenete JSON-objektum Nem támogatott dynamic, bool, long, datetime, byte array, real, double, string
tömb Nem támogatott, a "Tömb" sztring kimenete Nem támogatott, a "Tömb" sztring kimenete JSON-objektum Nem támogatott dinamikus, sztring