Share via


Azure Digital Twins lekérdezés beépülő modul az Azure Data Explorerhez

Ez a cikk az Azure Data ExplorerHez készült Azure Digital Twin lekérdezési beépülő modulról, az Azure Data Explorer IoT-adatok Azure Digital Twinsszel való használatáról, az Azure Data Explorer és az Azure Digital Twins közötti adatok leképezésé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ő:

  1. Kiválasztja a fontos digitális ikerpéldányokat az Azure Digital Twins lekérdezési beépülő modulon keresztül,
  2. Összekapcsolja ezeket az ikerpéldányokat az Azure Data Explorer adott idősorával, majd
  3. 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.

A beépülő modul használata

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>) 

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 a SELECT 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 a SELECT 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
    

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 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.

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}.

További lépések