Plug-in di query di Gemelli digitali di Azure per Azure Esplora dati

Questo articolo illustra il plug-in di query di Gemelli digitali di Azure per Azure Esplora dati, come usare i dati di Azure Esplora dati IoT con Gemelli digitali di Azure, come eseguire il mapping dei dati tra Azure Esplora dati e Gemelli digitali di Azure e altro ancora.

Il plug-in Gemelli digitali di Azure per Azure Esplora dati consente di eseguire query di Azure Esplora dati che accedono e combinano i dati nel grafico di Gemelli digitali di Azure e nei database delle serie temporali di Azure Esplora dati. Usare il plug-in per contestualizzare dati di serie temporali diversi ragionando tra gemelli digitali e le relative relazioni per ottenere informazioni dettagliate sul comportamento degli ambienti modellati.

Ad esempio, con questo plug-in, è possibile scrivere una query Kusto che:

  1. Seleziona gemelli digitali di interesse tramite il plug-in di query di Gemelli digitali di Azure,
  2. Aggiunge tali gemelli alla rispettiva serie temporale in Azure Esplora dati e quindi
  3. Esegue analisi avanzate delle serie temporali su tali gemelli.

La combinazione di dati da un grafo gemello in Gemelli digitali di Azure con i dati delle serie temporali in Azure Esplora dati consente di comprendere il comportamento operativo di varie parti della soluzione.

Uso del plug-in

È possibile richiamare il plug-in in una query Kusto con il comando seguente. Sono disponibili due segnaposto e <Azure-Digital-Twins-endpoint><Azure-Digital-Twins-query>, ovvero stringhe che rappresentano rispettivamente l'endpoint dell'istanza di Gemelli digitali di Azure e la query di Gemelli digitali di Azure.

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

Il plug-in funziona chiamando l'API Query di Gemelli digitali di Azure e la struttura del linguaggio di query è identica a quando si usa l'API, con due eccezioni:

  • Il * carattere jolly nella SELECT clausola non è supportato. Le query di Gemelli digitali di Azure eseguite usando il plug-in devono invece usare gli alias nella SELECT clausola .

    Si consideri ad esempio la query di Gemelli digitali di Azure seguente eseguita usando l'API:

    SELECT * FROM DIGITALTWINS
    

    Per eseguire la query quando si usa il plug-in, deve essere riscritto come segue:

    SELECT T FROM DIGITALTWINS T
    
  • I nomi di colonna restituiti dal plug-in potrebbero non iniziare con .$ L'uso degli alias nella SELECT clausola consentirà anche di evitare questo scenario.

    Si consideri ad esempio la query di Gemelli digitali di Azure seguente eseguita usando l'API:

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

    Per eseguire la query quando si usa il plug-in, deve essere riscritto come segue:

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

Importante

All'utente del plug-in deve essere concesso il ruolo Lettore dati di Gemelli digitali di Azure o il ruolo Proprietario dati di Gemelli digitali di Azure, perché viene usato il token Microsoft Entra dell'utente per l'autenticazione. Per informazioni su come assegnare questo ruolo, vedere Security for Azure Digital Twins solutions (Sicurezza per soluzioni di Gemelli digitali di Azure).

Per altre informazioni sull'uso del plug-in, vedere la documentazione di Kusto per il plug-in azure_digital_twins_query_request.

Per visualizzare query di esempio e completare una procedura dettagliata con dati di esempio, vedere Plug-in di query di Gemelli digitali di Azure per Azure Esplora dati: Query di esempio e procedura dettagliata in GitHub.

Inserimento di dati di Gemelli digitali di Azure in Azure Esplora dati

Prima di eseguire query con il plug-in, è necessario inserire i dati di Gemelli digitali di Azure in Azure Esplora dati. È possibile eseguire questa operazione in due modi principali: tramite la funzionalità della cronologia dei dati o tramite l'inserimento diretto. Le sezioni seguenti descrivono queste opzioni in modo più dettagliato.

Inserimento con cronologia dei dati

Il modo più semplice per inserire i dati IoT da Gemelli digitali di Azure in Azure Esplora dati consiste nell'usare la funzionalità cronologia dei dati. Questa funzionalità consente di configurare una connessione tra l'istanza di Gemelli digitali di Azure e un cluster di Azure Esplora dati e gli aggiornamenti del grafo (inclusi gli aggiornamenti delle proprietà dei gemelli, gli eventi del ciclo di vita dei gemelli e gli eventi del ciclo di vita delle relazioni) vengono automaticamente istorizzati nel cluster. Questa è una buona scelta se si usano i dati di telemetria del dispositivo per rendere attivi i gemelli digitali. Per altre informazioni su questa funzionalità, vedere Cronologia dei dati (con Azure Esplora dati).

Inserimento diretto

È anche possibile acconsentire esplicitamente all'inserimento dei dati IoT direttamente nel cluster Esplora dati di Azure da hub IoT o da altre origini. Il grafico di Gemelli digitali di Azure verrà quindi usato per contestualizzare i dati delle serie temporali usando query comuni di Gemelli digitali di Azure/Azure Esplora dati. Questa opzione è una scelta ottimale per i carichi di lavoro di inserimento diretto, ma non sarà possibile sfruttare l'architettura basata su eventi di Gemelli digitali di Azure per aggiornare altri gemelli, attivare servizi downstream o generare notifiche quando i gemelli cambiano lo stato. Per altre informazioni su questo processo, continuare con il resto di questa sezione.

Mapping dei dati tra Azure Esplora dati e Gemelli digitali di Azure

Se si inseriscono i dati delle serie temporali direttamente in Azure Esplora dati, potrebbe essere necessario convertire questi dati di serie temporali non elaborati in uno schema adatto per le query comuni di Gemelli digitali di Azure/Azure Esplora dati.

Un criterio di aggiornamento in Azure Esplora dati consente di trasformare e aggiungere automaticamente i dati a una tabella di destinazione ogni volta che vengono inseriti nuovi dati in una tabella di origine.

Se l'ID sensore nei dati di telemetria del dispositivo differisce dall'ID gemello corrispondente in Gemelli digitali di Azure, è possibile usare un criterio di aggiornamento per arricchire i dati delle serie temporali non elaborate con l'ID gemello e renderli persistenti in una tabella di destinazione. Usando l'ID gemello, la tabella di destinazione può quindi essere unita ai gemelli digitali selezionati dal plug-in Gemelli digitali di Azure.

Si supponga, ad esempio, di aver creato la tabella seguente per contenere i dati delle serie temporali non elaborate che passano all'istanza di Azure Esplora dati.

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

È possibile creare una tabella di mapping per correlare gli ID serie temporali con ID gemelli e altri campi facoltativi.

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

Creare quindi una tabella di destinazione per contenere i dati delle serie temporali arricchite.

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

Creare quindi una funzione Update_rawData per arricchire i dati non elaborati unendo i dati non elaborati alla tabella di mapping. In questo modo si aggiungerà l'ID gemello alla tabella di destinazione risultante.

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

Infine, creare un criterio di aggiornamento per chiamare la funzione e aggiornare la tabella di destinazione.

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

Dopo aver creato la tabella di destinazione, è possibile usare il plug-in Gemelli digitali di Azure per selezionare i gemelli di interesse e quindi aggiungerli ai dati delle serie temporali nella tabella di destinazione.

Schema di esempio

Di seguito è riportato un esempio di schema che può essere usato per rappresentare i dati condivisi. L'esempio segue lo schema della cronologia dei dati di Azure Esplora dati per gli aggiornamenti delle proprietà gemelli.

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

Le proprietà del gemello digitale vengono archiviate come coppie chiave-valore (name, value). name e value vengono archiviati come tipi di dati dinamici.

Lo schema supporta anche l'archiviazione delle proprietà per le relazioni, in base ai relationshipTarget campi e relationshipID . Lo schema chiave-valore evita la necessità di creare una colonna per ogni proprietà gemella.

Rappresentazione delle proprietà con più campi

È possibile archiviare una proprietà nello schema con più campi. Queste proprietà sono rappresentate archiviando un oggetto JSON come value nello schema.

Ad esempio, se si vuole rappresentare una proprietà con tre campi per roll, pitch e yaw, l'oggetto valore sarà simile al seguente: {"roll": 20, "pitch": 15, "yaw": 45}.

Passaggi successivi