Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
✅ 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ét
TRY_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 | Há |
|---|---|
| (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 |