Azure Digital Twins lekérdezés beépülő modul az Azure Data Explorerhez
Ez a cikk az Azure Data Explorer Azure Digital Twins lekérdezés beépülő moduljáról szól.
Az Azure Data ExplorerHez készült Azure Digital Twins beépülő modul lehetővé teszi olyan Azure Data Explorer-lekérdezések futtatását, amelyek az Azure Digital Twins graph és az Azure Data Explorer idősorozat-adatbázisai között férnek hozzá és egyesítenek adatokat. A beépülő modul használatával kontextusba rendezheti a különböző idősor-adatokat a digitális ikerpéldányok és kapcsolataik érvelésével, hogy betekintést nyerjen a modellezett környezetek viselkedésébe.
Ezzel a beépülő modullal például megírhat egy Kusto-lekérdezést, amely a következő:
- Kiválasztja a fontos digitális ikerpéldányokat az Azure Digital Twins lekérdezési beépülő modulon keresztül,
- Összekapcsolja ezeket az ikerpéldányokat az Azure Data Explorer adott idősorával, majd
- Speciális idősorozat-elemzéseket végez ezeken az ikerpéldányokon.
Ha az Azure Digital Twinsben lévő ikergráfból származó adatokat az Azure Data Explorer idősoradataival kombinálja, azzal megértheti a megoldás különböző részeinek működési viselkedését.
Azure Digital Twins-adatok betöltése az Azure Data Explorerbe
Mielőtt lekérdezi a beépülő modult, az Azure Digital Twins-adatokat az Azure Data Explorerbe kell betöltenie. Ennek két fő módja van: az adatelőzmények funkcióval vagy a közvetlen betöltéssel. Az alábbi szakaszokban részletesebben tárgyaljuk ezeket a lehetőségeket.
Betöltés az adatelőzményekkel
Az IoT-adatok Azure Digital Twinsből az Azure Data Explorerbe való betöltésének legegyszerűbb módja az adatelőzmények funkció használata. Ez a funkció lehetővé teszi, hogy kapcsolatot létesítsen az Azure Digital Twins-példány és az Azure Data Explorer-fürt között, és a gráffrissítések (beleértve az ikertulajdonság-frissítéseket, az iker életciklus-eseményeket és a kapcsolat életciklus-eseményeit) automatikusan a fürtbe lesznek szinkronizálva. Ez jó választás, ha eszköz telemetriai adatokat használ a digitális ikerpéldányok életre keltéséhez. A funkcióval kapcsolatos további információkért tekintse meg az adatelőzményeket (az Azure Data Explorerrel).
Közvetlen betöltés
Az IoT-adatokat közvetlenül az Azure Data Explorer-fürtbe is betöltheti az IoT Hubról vagy más forrásokból. Ezután az Azure Digital Twins-gráf használatával környezetfüggővé válik az idősor adatai közös Azure Digital Twins-/Azure Data Explorer-lekérdezések használatával. Ez a lehetőség jó választás a közvetlen betöltési számítási feladatokhoz – azonban nem használhatja az Azure Digital Twins eseményalapú architektúráját más ikerpéldányok frissítésére, alárendelt szolgáltatások aktiválására vagy értesítések küldésére az ikerpéldányok állapotának módosításakor. A folyamatról további információt a szakasz további részében talál.
Adatok leképezése az Azure Data Explorer és az Azure Digital Twins között
Ha közvetlenül az Azure Data Explorerbe betölti az idősoradatokat, előfordulhat, hogy ezeket a nyers idősoradatokat olyan sémává kell konvertálnia, amely alkalmas közös Azure Digital Twins-/Azure Data Explorer-lekérdezésekre.
Az Azure Data Explorer frissítési szabályzata lehetővé teszi, hogy automatikusan átalakítsa és hozzáfűzze az adatokat egy céltáblához, amikor új adatokat szúr be egy forrástáblába.
Ha az eszköz telemetriai adataiban szereplő érzékelőazonosító eltér az Azure Digital Twins megfelelő ikerazonosítójától, egy frissítési szabályzattal bővítheti a nyers idősor adatait az ikerazonosítóval, és megőrizheti azokat egy céltáblában. Az ikerazonosító használatával a céltábla ezután csatlakoztatható az Azure Digital Twins beépülő modul által kiválasztott digitális ikerpéldányokhoz.
Tegyük fel például, hogy a következő táblázatot hozta létre az Azure Data Explorer-példányba áramló nyers idősorok tárolására.
.create-merge table rawData (Timestamp:datetime, someId:string, Value:string, ValueType:string)
Létrehozhat egy leképezési táblát, amely ikerazonosítókkal és egyéb választható mezőkkel kapcsolja össze az idősorozat-azonosítókat.
.create-merge table mappingTable (someId:string, twinId:string, otherMetadata:string)
Ezután hozzon létre egy céltáblát a bővített idősoradatok tárolásához.
.create-merge table timeseriesSilver (twinId:string, Timestamp:datetime, someId:string, otherMetadata:string, ValueNumeric:real, ValueString:string)
Ezután hozzon létre egy függvényt Update_rawData
a nyers adatok gazdagításához a leképezési táblához való csatlakozással. Ezzel hozzáadja az ikerazonosítót az eredményként kapott céltáblához.
.create-or-alter function with (folder = "Update", skipvalidation = "true") Update_rawData() {
rawData
| join kind=leftouter mappingTable on someId
| project
Timestamp, ValueNumeric = toreal(Value), ValueString = Value, ...
}
Végül hozzon létre egy frissítési szabályzatot a függvény meghívásához és a céltábla frissítéséhez.
.alter table timeseriesSilver policy update
@'[{"IsEnabled": true, "Source": "rawData", "Query": "Update_rawData()", "IsTransactional": false, "PropagateIngestionProperties": false}]'
A céltábla létrehozása után az Azure Digital Twins beépülő modullal kiválaszthatja az érdeklődésre számot tartó ikerpéldányokat, majd összekapcsolhatja őket a céltábla idősoradataival.
Példaséma
Íme egy példa egy sémára, amely a megosztott adatok ábrázolására használható. A példa az Azure Data Explorer ikertulajdonság-frissítésekre vonatkozó adatelőzmény-sémáját követi.
TimeStamp |
SourceTimeStamp |
TwinId |
ModelId |
Name |
Value |
RelationshipTarget |
RelationshipID |
---|---|---|---|---|---|---|---|
2021-02-01 17:24 | 2021-02-01 17:11 | ConfRoomTempSensor | dtmi:com:example:TemperatureSensor;1 |
hőmérséklet | 301.0 |
A digitális ikertulajdonságok kulcs-érték párként (name, value
) vannak tárolva.
name
és value
dinamikus adattípusokként vannak tárolva.
A séma a kapcsolatok tulajdonságainak tárolását is támogatja a mezők és relationshipID
a relationshipTarget
mezők szerint. A kulcs-érték séma nem szükséges oszlopot létrehozni minden ikertulajdonsághoz.
Tulajdonságok megjelenítése több mezővel
Érdemes lehet több mezővel rendelkező tulajdonságot tárolni a sémában. Ezeket a tulajdonságokat egy JSON-objektumnak a sémában való value
tárolásával jelöljük.
Ha például egy három mezőből álló tulajdonságot szeretne ábrázolni a roll, a pitch és a yaw számára, az értékobjektum a következőképpen nézne ki: {"roll": 20, "pitch": 15, "yaw": 45}
.
A beépülő modul használata
Ha az Azure Digital Twins-adatok az Azure Data Explorerben lesznek, a beépülő modul használatával lekérdezheti azokat.
A beépülő modult egy Kusto-lekérdezésben az alábbi paranccsal hívhatja meg. Két helyőrző van, <Azure-Digital-Twins-endpoint>
és <Azure-Digital-Twins-query>
ezek az Azure Digital Twins-példány végpontjának és az Azure Digital Twins-lekérdezésnek megfelelő sztringek.
evaluate azure_digital_twins_query_request(<Azure-Digital-Twins-endpoint>, <Azure-Digital-Twins-query>)
Fontos
A beépülő modul felhasználójának Azure Digital Twins-adatolvasói vagy Azure Digital Twins-adattulajdonosi szerepkört kell biztosítani, mivel a hitelesítéshez a felhasználó Microsoft Entra-jogkivonata szolgál. A szerepkör hozzárendelésével kapcsolatos információk az Azure Digital Twins biztonsági megoldásaiban találhatók.
A beépülő modul az Azure Digital Twins Query API meghívásával működik, és a lekérdezés nyelvi struktúrája ugyanaz, mint az API használatakor, két kivétellel:
A
*
záradékban lévőSELECT
helyettesítő karakter nem támogatott. Ehelyett a beépülő modullal végrehajtott Azure Digital Twin-lekérdezések aliasokat használnak aSELECT
záradékban.Vegyük például az alábbi Azure Digital Twins-lekérdezést, amelyet az API használatával hajtunk végre:
SELECT * FROM DIGITALTWINS
Ha a lekérdezést a beépülő modul használatakor szeretné végrehajtani, a következő módon kell újraírni:
SELECT T FROM DIGITALTWINS T
Előfordulhat, hogy a beépülő modul által visszaadott oszlopnevek nem kezdődnek a
$
következővel: . Az aliasok használata aSELECT
záradékban szintén segít elkerülni ezt a forgatókönyvet.Vegyük például az alábbi Azure Digital Twins-lekérdezést, amelyet az API használatával hajtunk végre:
SELECT T.$dtId, T.Temperature FROM DIGITALTWINS T
Ha a lekérdezést a beépülő modul használatakor szeretné végrehajtani, a következő módon kell újraírni:
SELECT T.$dtId as tid, T.Temperature FROM DIGITALTWINS T
A beépülő modul használatáról további információt a azure_digital_twins_query_request beépülő modul Kusto-dokumentációjában talál.
A minta lekérdezések megtekintéséhez és a mintaadatokkal való bemutatóhoz tekintse meg az Azure Data Explorer Azure Digital Twins lekérdezési beépülő moduljának lépéseit: Minta lekérdezések és útmutató a GitHubon.
Következő lépések
A Kusto lekérdezésnyelv beépülő modul dokumentációjának megtekintése az Azure Data Explorerben: azure_digital_twins_query_request beépülő modul
Minta lekérdezések megtekintése a beépülő modul használatával, beleértve a lekérdezéseket egy példaforgatókönyvben futtató útmutatót is: Azure Digital Twins lekérdezési beépülő modul az Azure Data Explorerhez: Minta lekérdezések és útmutató