Gegevensgeschiedenis van Azure Digital Twins (met Azure Data Explorer)
Gegevensgeschiedenis is een integratiefunctie van Azure Digital Twins. Hiermee kunt u een Azure Digital Twins-exemplaar verbinden met een Azure Data Explorer-cluster, zodat updates van digitale dubbeleigenschappen automatisch worden historized naar Azure Data Explorer.
Zodra de waarden van dubbele eigenschappen zijn ge historiseerd naar Azure Data Explorer, kunt u gezamenlijke query's uitvoeren met behulp van de Azure Digital Twins-invoegtoepassing voor Azure Data Explorer om te redeneren tussen digitale dubbels, hun relaties en tijdreeksgegevens om inzicht te krijgen in het gedrag van gemodelleerde omgevingen. U kunt deze query's ook gebruiken om operationele dashboards aan te sturen, 2D- en 3D-webtoepassingen te verrijken en immersive augmented/mixed reality-ervaringen te stimuleren om de huidige en historische status over te brengen van assets, processen en personen die zijn gemodelleerd in Azure Digital Twins.
Bekijk de volgende IoT-video voor meer informatie over de gegevensgeschiedenis, inclusief een korte demo:
Resources en gegevensstroom
Voor de gegevensgeschiedenis zijn de volgende resources vereist:
- Azure Digital Twins-exemplaar, met een door het systeem toegewezen beheerde identiteit ingeschakeld
- Event Hubs-naamruimte met een Event Hub
- Azure Data Explorer-cluster met een database
Deze resources zijn verbonden met de volgende stroom:
Gegevens worden in deze volgorde door deze resources verplaatst:
- Een eigenschap van een digitale dubbel in Azure Digital Twins wordt bijgewerkt.
- Met gegevensgeschiedenis wordt een bericht met de bijgewerkte eigenschapswaarde en metagegevens van de dubbel doorgestuurd naar de Event Hub.
- De Event Hub stuurt het bericht door naar het azure-doelcluster Data Explorer.
- Het Azure Data Explorer-cluster wijst de berichtvelden toe aan het gegevensgeschiedenisschema en slaat de gegevens op als een tijdstempelrecord in een gegevensgeschiedenistabel.
Wanneer u met gegevensgeschiedenis werkt, gebruikt u de versie 2022-05-31 van de API's.
Geschiedenis van meerdere Azure Digital Twins-exemplaren
Als u wilt, kunt u meerdere Azure Digital Twins-exemplaren updates van dubbele eigenschappen laten historiseren naar hetzelfde Azure Data Explorer-cluster.
Elk Azure Digital Twins-exemplaar heeft een eigen gegevensgeschiedenisverbinding die gericht is op hetzelfde Azure Data Explorer-cluster. In het cluster kunnen exemplaren hun dubbelgegevens verzenden naar een van beide...
- verschillende tabellen in het Azure Data Explorer-cluster.
- dezelfde tabel in het Azure Data Explorer-cluster. Hiertoe geeft u dezelfde Azure Data Explorer tabelnaam op tijdens het maken van de gegevensgeschiedenisverbindingen. In het tabelschema voor gegevensgeschiedenis bevat de
ServiceId
kolom de URL van het bronexemplaar van Azure Digital Twins, zodat u dit veld kunt gebruiken om op te lossen welk Azure Digital Twins-exemplaar elke record heeft verzonden.
Een gegevensgeschiedenisverbinding maken
Zodra alle resources en machtigingen zijn ingesteld, kunt u de Azure CLI, Azure Portal of de Azure Digital Twins SDK gebruiken om de gegevensgeschiedenisverbinding tussen deze resources te maken. De CLI-opdrachtenset is az dt data-history.
Zie Gegevensgeschiedenis gebruiken met Azure Data Explorer voor stapsgewijze instructies voor het instellen van een gegevensgeschiedenisverbinding.
Vereiste machtigingen
Als u een gegevensgeschiedenisverbinding wilt instellen, moet uw Azure Digital Twins-exemplaar de volgende machtigingen hebben voor toegang tot de Event Hubs- en Azure Data Explorer-resources. Met deze rollen kan Azure Digital Twins namens u de Event Hub en Azure Data Explorer-database configureren (bijvoorbeeld door een tabel in de database te maken). Deze machtigingen kunnen desgewenst worden verwijderd nadat de gegevensgeschiedenis is ingesteld.
- Event Hubs-resource: Azure Event Hubs gegevenseigenaar
- Azure Data Explorer-cluster: Inzender (bereik van het hele cluster of een specifieke database)
- Azure Data Explorer database-principaltoewijzing: Beheer (bereik van de database die wordt gebruikt)
Later moet uw Azure Digital Twins-exemplaar de volgende machtiging hebben voor de Event Hubs-resource terwijl de gegevensgeschiedenis wordt gebruikt: Azure Event Hubs Afzender van gegevens (u kunt er ook voor kiezen om Azure Event Hubs gegevenseigenaar te behouden vanuit de instellingen van de gegevensgeschiedenis).
Deze machtigingen kunnen worden toegewezen met behulp van de Azure CLI of Azure Portal.
Gegevensschema
Tijdreeksgegevens voor updates van dubbeleigenschappen worden opgeslagen in Azure Data Explorer met het volgende schema:
Kenmerk | Type | Beschrijving |
---|---|---|
TimeStamp |
DateTime | De datum/tijd waarop het updatebericht van de eigenschap is verwerkt door Azure Digital Twins. Dit veld wordt ingesteld door het systeem en is niet beschrijfbaar door gebruikers. |
SourceTimeStamp |
DateTime | Een optionele, beschrijfbare eigenschap die de tijdstempel vertegenwoordigt toen de eigenschapsupdate in de echte wereld werd waargenomen. Deze eigenschap kan alleen worden geschreven met de versie 2022-05-31 van de Azure Digital Twins-API's/SDK's en de waarde moet voldoen aan de iso 8601-datum- en tijdnotatie. Zie SourceTime van een eigenschap bijwerken voor meer informatie over het bijwerken van deze eigenschap. |
ServiceId |
Tekenreeks | De service-exemplaar-id van de Azure IoT-service die de record registreert |
Id |
Tekenreeks | De id van de tweeling |
ModelId |
Tekenreeks | De DTDL-model-id (DTMI) |
Key |
Tekenreeks | De naam van de bijgewerkte eigenschap |
Value |
Dynamisch | De waarde van de bijgewerkte eigenschap |
RelationshipId |
Tekenreeks | Wanneer een eigenschap die is gedefinieerd voor een relatie (in tegenstelling tot tweelingen of apparaten) wordt bijgewerkt, wordt dit veld gevuld met de id van de relatie. Wanneer een dubbele eigenschap wordt bijgewerkt, is dit veld leeg. |
RelationshipTarget |
Tekenreeks | Wanneer een eigenschap die is gedefinieerd voor een relatie (in tegenstelling tot tweelingen of apparaten) wordt bijgewerkt, wordt dit veld gevuld met de dubbel-id van de dubbel waarop de relatie is gericht. Wanneer een dubbele eigenschap wordt bijgewerkt, is dit veld leeg. |
Hieronder ziet u een voorbeeldtabel met updates van dubbeleigenschappen die zijn opgeslagen in Azure Data Explorer.
TimeStamp |
SourceTimeStamp |
ServiceId |
Id |
ModelId |
Key |
Value |
RelationshipTarget |
RelationshipID |
---|---|---|---|---|---|---|---|---|
2021-06-30T20:23:29.8697482Z | 2021-06-30T20:22:14.3854859Z | myInstance.api.neu.digitaltwins.azure.net | solar_plant_3 | dtmi:example:grid:plants:solarPlant;1 |
Uitvoer | 130 | ||
2021-06-30T20:23:39.3235925Z | 2021-06-30T20:22:26.5837559Z | myInstance.api.neu.digitaltwins.azure.net | solar_plant_3 | dtmi:example:grid:plants:solarPlant;1 |
Uitvoer | 140 | ||
2021-06-30T20:23:47.078367Z | 2021-06-30T20:22:34.9375957Z | myInstance.api.neu.digitaltwins.azure.net | solar_plant_3 | dtmi:example:grid:plants:solarPlant;1 |
Uitvoer | 130 | ||
2021-06-30T20:23:57.3794198Z | 2021-06-30T20:22:50.1028562Z | myInstance.api.neu.digitaltwins.azure.net | solar_plant_3 | dtmi:example:grid:plants:solarPlant;1 |
Uitvoer | 123 |
Eigenschappen met meerdere velden weergeven
Mogelijk moet u een eigenschap met meerdere velden opslaan. Deze eigenschappen worden weergegeven met een JSON-object in het Value
kenmerk van het schema.
Als u bijvoorbeeld een eigenschap vertegenwoordigt met drie velden voor rollen, pitchen en geeuw, wordt het volgende JSON-object in de gegevensgeschiedenis opgeslagen als : Value
. {"roll": 20, "pitch": 15, "yaw": 45}
Prijzen
Berichten die worden verzonden door de gegevensgeschiedenis, worden gemeten onder de dimensie Berichtprijzen.
End-to-end opnamelatentie
De gegevensgeschiedenis van Azure Digital Twins bouwt voort op het bestaande opnamemechanisme van Azure Data Explorer. Azure Digital Twins zorgt ervoor dat updates van eigenschappen binnen minder dan twee seconden beschikbaar worden gesteld aan Azure Data Explorer. Er kan extra latentie worden geïntroduceerd door Azure Data Explorer het opnemen van de gegevens.
Er zijn twee methoden in Azure Data Explorer voor het opnemen van gegevens: batchopname en streamingopname. U kunt deze opnamemethoden voor afzonderlijke tabellen configureren op basis van uw behoeften en het specifieke scenario voor gegevensopname.
Streamingopname heeft de laagste latentie. Vanwege verwerkingsoverhead moet deze modus echter alleen worden gebruikt als er elk uur minder dan 4 GB aan gegevens wordt opgenomen. Batchopname werkt het beste als hoge opnamegegevenssnelheden worden verwacht. Azure Data Explorer maakt standaard gebruik van batchopname. De volgende tabel bevat een overzicht van de verwachte end-to-end-latentie in het slechtste geval:
Configuratie van Azure Data Explorer | Verwachte end-to-end-latentie | Aanbevolen gegevenssnelheid |
---|---|---|
Stroomopname | <12 seconden (<3 sec. normaal) | <4 GB per uur |
Batchopname | Varieert (12 sec-15 m, afhankelijk van de configuratie) | >4 GB per uur |
De rest van deze sectie bevat details voor het inschakelen van elk type opname.
Batchopname (standaard)
Als dit niet anders is geconfigureerd, gebruikt Azure Data Explorer batchopname. De standaardinstellingen kunnen ertoe leiden dat gegevens slechts 5-10 minuten na het bijwerken van een digitale dubbel beschikbaar zijn voor query's. Het opnamebeleid kan zodanig worden gewijzigd dat de batchverwerking maximaal elke 10 seconden (minimaal; of maximaal 15 minuten) plaatsvindt. Als u het opnamebeleid wilt wijzigen, moet de volgende opdracht worden uitgegeven in de Azure Data Explorer queryweergave:
.alter table <table_name> policy ingestionbatching @'{"MaximumBatchingTimeSpan":"00:00:10", "MaximumNumberOfItems": 500, "MaximumRawDataSizeMB": 1024}'
Zorg ervoor dat <table_name>
deze is vervangen door de naam van de tabel die voor u is ingesteld. MaximumBatchingTimeSpan moet worden ingesteld op het gewenste batchinterval. Het kan 5-10 minuten duren voordat het beleid van kracht wordt. Meer informatie over opnamebatch vindt u op de volgende koppeling: De opdracht Kusto IngestionBatching-beleidsbeheer.
Stroomopname
Het inschakelen van streamingopname bestaat uit twee stappen:
- Schakel opname van streaming in voor uw cluster. Deze actie hoeft slechts één keer te worden uitgevoerd. (Waarschuwing: dit heeft invloed op de hoeveelheid opslagruimte die beschikbaar is voor hot-cache en kan extra beperkingen met zich mee brengen). Zie Streamingopname configureren in uw Azure Data Explorer-cluster voor instructies.
- Voeg een streaming-opnamebeleid toe voor de gewenste tabel. Meer informatie over het inschakelen van streamingopname voor uw cluster vindt u in de Documentatie voor Azure Data Explorer: De opdracht Kusto IngestionBatching-beleidsbeheer.
Als u streamingopname wilt inschakelen voor uw Azure Digital Twins-gegevensgeschiedenistabel, moet de volgende opdracht worden gegeven in het queryvenster Azure Data Explorer:
.alter table <table_name> policy streamingingestion enable
Zorg ervoor dat <table_name>
deze is vervangen door de naam van de tabel die voor u is ingesteld. Het kan 5-10 minuten duren voordat het beleid van kracht wordt.
Volgende stappen
Zodra dubbele gegevens zijn historiseerd naar Azure Data Explorer, kunt u de Azure Digital Twins-queryinvoegtoepassing voor Azure Data Explorer gebruiken om query's uit te voeren op de gegevens. Lees hier meer over de invoegtoepassing: Query's uitvoeren met de Azure Data Explorer-invoegtoepassing.
U kunt ook dieper ingaan op de gegevensgeschiedenis met een voorbeeldscenario in deze procedure: Gegevensgeschiedenis gebruiken met Azure Data Explorer.