Kompatibilitási szint az Azure Stream Analytics-feladatokhoz
Ez a cikk az Azure Stream Analytics kompatibilitási szintjét ismerteti.
A Stream Analytics egy felügyelt szolgáltatás, amely rendszeres funkciófrissítésekkel és folyamatos teljesítménybeli fejlesztésekkel rendelkezik. A szolgáltatás futtatókörnyezeteinek legtöbb frissítése automatikusan elérhetővé válik a végfelhasználók számára, a kompatibilitási szinttől függetlenül. Ha azonban egy új funkció megváltoztatja a meglévő feladatok viselkedését, vagy megváltozik az adatok felhasználása a futó feladatokban, ezt a módosítást egy új kompatibilitási szinten vezetjük be. A kompatibilitási szint beállításának csökkentésével a meglévő Stream Analytics-feladatok jelentős módosítások nélkül is futtathatók. Ha készen áll a legújabb futtatókörnyezeti viselkedésre, a kompatibilitási szint növelésével engedélyezheti.
Kompatibilitási szint kiválasztása
A kompatibilitási szint szabályozza a Stream Analytics-feladatok futtatókörnyezeti viselkedését.
Az Azure Stream Analytics jelenleg három kompatibilitási szintet támogat:
- 1.2 – Legújabb viselkedés a legújabb fejlesztésekkel
- 1.1 – Előző viselkedés
- 1.0 – Az Azure Stream Analytics néhány évvel ezelőtti általános elérhetősége során bevezetett eredeti kompatibilitási szint.
Új Stream Analytics-feladat létrehozásakor ajánlott a legújabb kompatibilitási szint használatával létrehozni. Kezdje el a feladattervezést a legújabb viselkedésekre támaszkodva, hogy később elkerülje a további módosításokat és összetettségeket.
A kompatibilitási szint beállítása
A Stream Analytics-feladatok kompatibilitási szintjét a Azure Portal vagy a create job REST API-hívással állíthatja be.
A feladat kompatibilitási szintjének frissítése a Azure Portal:
- A Azure Portal segítségével keresse meg a Stream Analytics-feladatot.
- A kompatibilitási szint frissítése előtt állítsa le a feladatot. A kompatibilitási szint nem frissíthető, ha a feladat futó állapotban van.
- A Konfigurálás fejléc alatt válassza a Kompatibilitási szint lehetőséget.
- Válassza ki a kívánt kompatibilitási szint értékét.
- Válassza a lap alján található Mentés lehetőséget.
A kompatibilitási szint frissítésekésekor a T-fordító a kiválasztott kompatibilitási szintnek megfelelő szintaxissal ellenőrzi a feladatot.
Kompatibilitási szint 1.2
Az 1.2-es kompatibilitási szinten a következő főbb változások lépnek életbe:
AMQP üzenetkezelési protokoll
1.2 szint: Az Azure Stream Analytics az Advanced Message Queueing Protocol (AMQP) üzenetkezelési protokollt használja a Service Bus-üzenetsorok és -témakörök írásához. Az AMQP lehetővé teszi, hogy platformfüggetlen hibrid alkalmazásokat hozzon létre nyílt standard protokollal.
Térinformatikai funkciók
Előző szintek: Az Azure Stream Analytics földrajzi számításokat használt.
1.2 szint: Az Azure Stream Analytics lehetővé teszi a mértani előre jelzett földrajzi koordináták kiszámítását. A térinformatikai függvények aláírása nem változik. Szemantikájuk azonban kissé eltér, így a korábbinál pontosabb számítást tesz lehetővé.
Az Azure Stream Analytics támogatja a térinformatikai referenciaadatok indexelését. A térinformatikai elemeket tartalmazó referenciaadatok indexelhetők a gyorsabb illesztési számításokhoz.
A frissített térinformatikai függvények teljes mértékben kifejezik a jól ismert szöveg (WKT) térinformatikai formátumát. Megadhatja azokat a térinformatikai összetevőket, amelyeket korábban nem támogatott a GeoJson.
További információ: Frissítések az Azure Stream Analytics térinformatikai funkcióihoz – felhőbeli és IoT Edge.
Párhuzamos lekérdezés-végrehajtás több partícióval rendelkező bemeneti forrásokhoz
Előző szintek: Az Azure Stream Analytics-lekérdezések megkövetelik a PARTITION BY záradék használatát a lekérdezésfeldolgozás párhuzamosításához a bemeneti forráspartíciók között.
1.2 szint: Ha a lekérdezési logika párhuzamosítható a bemeneti forráspartíciók között, az Azure Stream Analytics külön lekérdezési példányokat hoz létre, és párhuzamosan futtatja a számításokat.
Natív tömeges API-integráció az Azure Cosmos DB kimenetével
Előző szintek: Az upsert viselkedés beszúrása vagy egyesítése megtörtént.
1.2 szint: Natív tömeges API-integráció az Azure Cosmos DB-kimenettel maximalizálja az átviteli sebességet, és hatékonyan kezeli a szabályozási kéréseket. További információ : Az Azure Stream Analytics kimenete az Azure Cosmos DB-be oldalon.
Az upsert viselkedés beszúrása vagy cseréje.
DateTimeOffset az SQL-kimenetbe való íráskor
Korábbi szintek:A DateTimeOffset típusok UTC-hez lettek igazítva.
1.2 szint: A DateTimeOffset már nincs módosítva.
Hosszú az SQL-kimenetbe való íráskor
Előző szintek: Az értékek csonkultak a céltípus alapján.
1.2 szint: A céltípushoz nem illeszkedő értékeket a rendszer a kimeneti hibaszabályzatnak megfelelően kezeli.
Rekord- és tömb szerializálás az SQL-kimenetbe való íráskor
Előző szintek: A rekordok "Record" (Rekord) néven, a tömbök pedig "Tömbként" lettek megírva.
1.2 szint: A rekordok és tömbök JSON formátumban vannak szerializálva.
A függvények előtagjának szigorú ellenőrzése
Előző szintek: A függvényelőtagok nem voltak szigorúan érvényesítve.
1.2 szint: Az Azure Stream Analytics szigorúan ellenőrzi a függvényelőtagokat. Ha előtagot ad hozzá egy beépített függvényhez, az hibát okoz. Példáulmyprefix.ABS(…)
nem támogatott.
Ha előtagot ad hozzá a beépített összesítésekhez, az szintén hibát eredményez. Például myprefix.SUM(…)
nem támogatott.
A "rendszer" előtag felhasználó által definiált függvényekhez való használata hibát eredményez.
Tömb és objektum kulcstulajdonságokként való letiltása az Azure Cosmos DB kimeneti adapterében
Előző szintek: A tömb- és objektumtípusok kulcstulajdonságként támogatottak.
1.2 szint: A tömb- és objektumtípusok már nem támogatottak kulcstulajdonságként.
Logikai típus deszerializálása JSON-ban, AVRO-ban és PARQUET-ben
Előző szintek: Az Azure Stream Analytics deszerializálja a logikai értéket BIGINT típusúra – hamis leképezéseket 0-ra, a valódi leképezéseket pedig 1-re. A kimenet csak akkor hoz létre logikai értékeket JSON-ban, AVRO-ban és PARQUET-ben, ha explicit módon konvertálja az eseményeket BIT értékké.
Például egy átmenő lekérdezés, például SELECT value INTO output1 FROM input1
egy JSON { "value": true }
beolvasása az 1. bemenetből, JSON-értéket { "value": 1 }
ír a kimenet1-be.
1.2 szint: Az Azure Stream Analytics deszerializálja a logikai értéket BIT típusúra. False maps to 0 and true maps to 1. Egy átmenő lekérdezés, például SELECT value INTO output1 FROM input1
egy JSON { "value": true }
beolvasása az input1-ből, JSON-értéket { "value": true }
ír a kimenetbe1. A bitet a lekérdezésbe beírhatja, így meggyőződhet arról, hogy azok a logikai típust támogató formátumok kimenetében true (igaz) és false (hamis) értékként jelennek meg.
Kompatibilitási szint 1.1
Az 1.1-es kompatibilitási szinten a következő főbb változások lépnek életbe:
Service Bus XML-formátum
1.0 szint: Az Azure Stream Analytics a DataContractSerializert használta, így az üzenet tartalma XML-címkéket tartalmazott. Például:
@\u0006string\b3http://schemas.microsoft.com/2003/10/Serialization/\u0001{ "SensorId":"1", "Temperature":64\}\u0001
1.1 szint: Az üzenet tartalma közvetlenül, további címkék nélkül tartalmazza a streamet. Például: { "SensorId":"1", "Temperature":64}
A mezőnevek kis- és nagybetűkre vonatkozó érzékenységének megőrzése
1.0 szint: A mezőneveket kisbetűsre módosították, amikor az Azure Stream Analytics-motor feldolgozta.
1.1 szint: a kis- és nagybetűk megkülönböztetése megmarad a mezőnevek esetében, amikor az Azure Stream Analytics-motor feldolgozta őket.
Megjegyzés
A kis- és nagybetűk megőrzése még nem érhető el az Edge-környezettel üzemeltetett Stream-elemzési feladatokhoz. Ennek eredményeképpen a rendszer az összes mezőnevet kisbetűssé alakítja, ha a feladat az Edge-en fut.
FloatNaNDeserializationDisabled
1.0 szint: A CREATE TABLE parancs nem szűrte az eseményeket NaN (Not-a-Number) értékekkel. Például: Infinity, -Infinity) egy FLOAT oszloptípusban, mert ezek a számok nem szerepelnek a dokumentált tartományban.
1.1 szint: A CREATE TABLE lehetővé teszi egy erős séma megadását. A Stream Analytics-motor ellenőrzi, hogy az adatok megfelelnek-e ennek a sémának. Ezzel a modellel a parancs NaN-értékekkel szűrheti az eseményeket.
A datetime sztringek DateTime típusúra való automatikus konvertálásának letiltása bejövő forgalom esetén jSON-ra
1.0 szint: A JSON-elemző automatikusan date/time/zone típusúra konvertálja a dátum-/idő/zónaadatokat tartalmazó sztringértékeket bejövő forgalom esetén, így az érték azonnal elveszíti az eredeti formázási és időzóna-információkat. Mivel ez bejövő forgalom esetén történik, még akkor is, ha ezt a mezőt nem használták a lekérdezésben, a rendszer UTC DateTime-ra konvertálja.
1.1 szint: A dátum-/idő-/zónainformációkat tartalmazó sztringértékek nem konvertálnak automatikusan DATETIME típusra. Ennek eredményeképpen a rendszer megőrzi az időzónával kapcsolatos információkat és az eredeti formázást. Ha azonban az NVARCHAR(MAX) mezőt egy DATETIME kifejezés (PÉLDÁUL DATEADD függvény) részeként használják a lekérdezésben, a függvény a számítás végrehajtásához DATETIME típusra konvertálja, és elveszíti az eredeti űrlapját.