Azure Digital Twins-queryinvoegtoepassing voor Azure Data Explorer

In dit artikel wordt uitgelegd hoe u de Azure Digital Twin-queryinvoegtoepassing voor Azure Data Explorer gebruikt, hoe u Azure Data Explorer IoT-gegevens gebruikt met Azure Digital Twins, hoe u gegevens kunt toewijzen in Azure Data Explorer en Azure Digital Twins, en meer.

Met de Azure Digital Twins-invoegtoepassing voor Azure Data Explorer kunt u Azure Data Explorer-query's uitvoeren die gegevens openen en combineren in de Azure Digital Twins-grafiek en Azure Data Explorer-tijdreeksdatabases. Gebruik de invoegtoepassing om verschillende tijdreeksgegevens te contextualiseren door te redeneren over digitale dubbels en hun relaties om inzicht te krijgen in het gedrag van gemodelleerde omgevingen.

Met deze invoegtoepassing kunt u bijvoorbeeld een Kusto-query schrijven die:

  1. Selecteert digitale dubbels die interessant zijn via de Azure Digital Twins-queryinvoegtoepassing,
  2. Voegt deze dubbels toe aan de respectieve tijdreeks in Azure Data Explorer en vervolgens
  3. Voert geavanceerde tijdreeksanalyses uit op deze tweelingen.

Het combineren van gegevens uit een dubbelgrafiek in Azure Digital Twins met tijdreeksgegevens in Azure Data Explorer kan u helpen inzicht te hebben in het operationele gedrag van verschillende onderdelen van uw oplossing.

De invoegtoepassing gebruiken

U kunt de invoegtoepassing aanroepen in een Kusto-query met de volgende opdracht. Er zijn twee tijdelijke aanduidingen. <Azure-Digital-Twins-endpoint><Azure-Digital-Twins-query>Dit zijn tekenreeksen die het eindpunt van het Azure Digital Twins-exemplaar en de Azure Digital Twins-query vertegenwoordigen.

evaluate azure_digital_twins_query_request(<Azure-Digital-Twins-endpoint>, <Azure-Digital-Twins-query>) 

De invoegtoepassing werkt door de Azure Digital Twins Query-API aan te roepen en de structuur van de querytaal is hetzelfde als bij het gebruik van de API, met twee uitzonderingen:

  • Het * jokerteken in de SELECT component wordt niet ondersteund. In plaats daarvan moeten Azure Digital Twin-query's die worden uitgevoerd met behulp van de invoegtoepassing aliassen in de SELECT component gebruiken.

    Bekijk bijvoorbeeld de onderstaande Azure Digital Twins-query die wordt uitgevoerd met behulp van de API:

    SELECT * FROM DIGITALTWINS
    

    Als u die query wilt uitvoeren wanneer u de invoegtoepassing gebruikt, moet deze als volgt worden herschreven:

    SELECT T FROM DIGITALTWINS T
    
  • Kolomnamen die door de invoegtoepassing worden geretourneerd, beginnen mogelijk niet met een $. Het gebruik van aliassen in de SELECT component helpt ook om dit scenario te voorkomen.

    Bekijk bijvoorbeeld de onderstaande Azure Digital Twins-query die wordt uitgevoerd met behulp van de API:

    SELECT T.$dtId, T.Temperature FROM DIGITALTWINS T
    

    Als u die query wilt uitvoeren wanneer u de invoegtoepassing gebruikt, moet deze als volgt worden herschreven:

    SELECT T.$dtId as tid, T.Temperature FROM DIGITALTWINS T
    

Belangrijk

De gebruiker van de invoegtoepassing moet de rol Azure Digital Twins-gegevenslezer of de rol Azure Digital Twins-gegevenseigenaar krijgen, omdat het Microsoft Entra-token van de gebruiker wordt gebruikt om te verifiëren. Informatie over het toewijzen van deze rol vindt u in Security for Azure Digital Twins-oplossingen.

Zie de Kusto-documentatie voor de azure_digital_twins_query_request-invoegtoepassing voor meer informatie over het gebruik van de invoegtoepassing.

Als u voorbeeldquery's wilt bekijken en een overzicht wilt uitvoeren met voorbeeldgegevens, raadpleegt u de Azure Digital Twins-queryinvoegtoepassing voor Azure Data Explorer: Voorbeeldquery's en walkthrough in GitHub.

Azure Digital Twins-gegevens opnemen in Azure Data Explorer

Voordat u een query uitvoert met de invoegtoepassing, moet u uw Azure Digital Twins-gegevens opnemen in Azure Data Explorer. U kunt dit op twee manieren doen: via de functie gegevensgeschiedenis of via directe opname. In de volgende secties worden deze scenario's gedetailleerd beschreven.

Opnemen met gegevensgeschiedenis

De eenvoudigste manier om IoT-gegevens van Azure Digital Twins op te nemen in Azure Data Explorer, is door de functie gegevensgeschiedenis te gebruiken. Met deze functie kunt u een verbinding instellen tussen uw Azure Digital Twins-exemplaar en een Azure Data Explorer-cluster, en grafiekupdates (inclusief updates van tweelingeigenschappen, levenscyclusgebeurtenissen van dubbels en levenscyclusgebeurtenissen van relaties) automatisch worden overgezet naar het cluster. Dit is een goede keuze als u telemetriegegevens van apparaten gebruikt om uw digitale dubbels tot leven te brengen. Zie Gegevensgeschiedenis (met Azure Data Explorer) voor meer informatie over deze functie.

Directe opname

U kunt er ook voor kiezen om IoT-gegevens rechtstreeks op te nemen in uw Azure Data Explorer-cluster vanuit IoT Hub of vanuit andere bronnen. Vervolgens wordt de Azure Digital Twins-grafiek gebruikt om de tijdreeksgegevens te contextualiseren met behulp van gezamenlijke Azure Digital Twins-/Azure Data Explorer-query's. Deze optie is een goede keuze voor werkbelastingen voor directe opname. U kunt echter niet gebruikmaken van de gebeurtenisarchitectuur van Azure Digital Twins om andere dubbels bij te werken, downstreamservices te activeren of meldingen te verzenden wanneer de status van dubbels verandert. Ga verder met de rest van deze sectie voor meer informatie over dit proces.

Toewijzingsgegevens in Azure Data Explorer en Azure Digital Twins

Als u tijdreeksgegevens rechtstreeks opneemt in Azure Data Explorer, moet u deze onbewerkte tijdreeksgegevens mogelijk converteren naar een schema dat geschikt is voor gezamenlijke Azure Digital Twins-/Azure Data Explorer-query's.

Met een updatebeleid in Azure Data Explorer kunt u gegevens automatisch transformeren en toevoegen aan een doeltabel wanneer nieuwe gegevens worden ingevoegd in een brontabel.

Als de sensor-id in uw apparaattelemetriegegevens verschilt van de bijbehorende dubbel-id in Azure Digital Twins, kunt u een updatebeleid gebruiken om uw onbewerkte tijdreeksgegevens te verrijken met de dubbel-id en deze op te slaan in een doeltabel. Met behulp van de dubbel-id kan de doeltabel vervolgens worden gekoppeld aan de digitale dubbels die zijn geselecteerd door de Azure Digital Twins-invoegtoepassing.

Stel dat u de volgende tabel hebt gemaakt voor het opslaan van de onbewerkte tijdreeksgegevens die naar uw Azure Data Explorer-exemplaar stromen.

.create-merge table rawData (Timestamp:datetime, someId:string, Value:string, ValueType:string)  

U kunt een toewijzingstabel maken om tijdreeks-id's te relateren met dubbel-id's en andere optionele velden.

.create-merge table mappingTable (someId:string, twinId:string, otherMetadata:string) 

Maak vervolgens een doeltabel voor het opslaan van de verrijkte tijdreeksgegevens.

.create-merge table timeseriesSilver (twinId:string, Timestamp:datetime, someId:string, otherMetadata:string, ValueNumeric:real, ValueString:string)  

Maak vervolgens een functie Update_rawData om de onbewerkte gegevens te verrijken door deze samen te voegen met de toewijzingstabel. Als u dit doet, wordt de dubbel-id toegevoegd aan de resulterende doeltabel.

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

Maak ten slotte een updatebeleid om de functie aan te roepen en de doeltabel bij te werken.

.alter table timeseriesSilver policy update 
@'[{"IsEnabled": true, "Source": "rawData", "Query": "Update_rawData()", "IsTransactional": false, "PropagateIngestionProperties": false}]' 

Zodra de doeltabel is gemaakt, kunt u de Azure Digital Twins-invoegtoepassing gebruiken om dubbels van belang te selecteren en deze vervolgens te koppelen aan tijdreeksgegevens in de doeltabel.

Voorbeeldschema

Hier volgt een voorbeeld van een schema dat kan worden gebruikt om gedeelde gegevens weer te geven. In het voorbeeld wordt het gegevensgeschiedenisschema van Azure Data Explorer gevolgd voor updates van dubbele eigenschappen.

TimeStamp SourceTimeStamp TwinId ModelId Name Value RelationshipTarget RelationshipID
2021-02-01 17:24 2021-02-01 17:11 ConfRoomTempSensor dtmi:com:example:TemperatureSensor;1 temperatuur 301.0

Eigenschappen van digitale dubbels worden opgeslagen als sleutel-waardeparen (name, value). name en value worden opgeslagen als dynamische gegevenstypen.

Het schema biedt ook ondersteuning voor het opslaan van eigenschappen voor relaties, per veld relationshipTarget en relationshipID velden. Het sleutel-waardeschema voorkomt dat u een kolom voor elke dubbele eigenschap hoeft te maken.

Eigenschappen weergeven met meerdere velden

Mogelijk wilt u een eigenschap opslaan in uw schema met meerdere velden. Deze eigenschappen worden vertegenwoordigd door een JSON-object op te slaan zoals value in uw schema.

Als u bijvoorbeeld een eigenschap wilt weergeven met drie velden voor rollen, pitchen en yaw, ziet het waardeobject er als volgt uit: {"roll": 20, "pitch": 15, "yaw": 45}

Volgende stappen