Connessione dati all'hub IoT
hub IoT di Azure è un servizio gestito, ospitato nel cloud, che funge da hub messaggi centrale per la comunicazione bidirezionale tra l'applicazione IoT e i dispositivi gestiti. Azure Esplora dati offre l'inserimento continuo da hub IoT gestiti dal cliente, usando il relativo hub eventi compatibile con l'endpoint predefinito dei messaggi da dispositivo a cloud.
La pipeline di inserimento IoT esegue diversi passaggi. Prima di tutto, si crea un hub IoT e si registra un dispositivo. Si crea quindi una tabella di destinazione in Azure Esplora dati in cui i dati in un formato specifico verranno inseriti usando le proprietà di inserimento indicate. La connessione hub Iot deve conoscere il routing degli eventi per connettersi alla tabella di Esplora dati di Azure. I dati vengono incorporati con le proprietà selezionate in base al mapping delle proprietà del sistema eventi. Questo processo può essere gestito tramite il portale di Azure, a livello di codice con C# o Python o con il modello di Resource Manager di Azure.
Per informazioni generali sull'inserimento dati in Azure Esplora dati, vedere Panoramica dell'inserimento dei dati in Azure Esplora dati.
Formato dati
- I dati sono letti dall'endpoint dell'hub eventi sotto forma di oggetti EventData .
- Vedere i formati supportati.
Nota
hub IoT non supporta il formato di .raw.
- Vedere le compressioni supportate.
Proprietà di inserimento
Le proprietà di inserimento indicano al processo di inserimento dove instradare i dati e come elaborarlo. È possibile specificare le proprietà di inserimento degli eventi usando EventData.Properties. È possibile inoltre impostare le proprietà seguenti:
Proprietà | Descrizione |
---|---|
Database | Nome (con distinzione tra maiuscole e minuscole) del database di destinazione. Questa proprietà può essere utilizzata se si desidera inviare i dati a un database diverso da quello in cui è stata creata la connessione dati (database predefinito). Per indirizzare i dati a più database, è prima necessario configurare la connessione come connessione multi-database. Per altre informazioni, vedere Routing degli eventi. |
Tabella | Nome (con distinzione tra maiuscole e minuscole) della tabella di destinazione esistente. Esegue l'override del Table set nel Data Connection riquadro. |
Formato | Formato dati. Esegue l'override del Data format set nel Data Connection riquadro. |
IngestionMappingReference | Nome del mapping di inserimento esistente da usare. Esegue l'override del Column mapping set nel Data Connection riquadro. |
Codifica | La codifica dei dati, l'impostazione predefinita è UTF8. Può essere una delle codifiche supportate da .NET. |
Nota
Vengono inseriti solo gli eventi accodati dopo aver creato la connessione dati.
Routing degli eventi
Quando si crea una connessione dati al cluster, si specifica il routing per il percorso in cui inviare i dati inseriti. Il routing predefinito è la tabella di destinazione specificata nel stringa di connessione associato al database di destinazione. Il routing predefinito per i dati viene definito anche routing statico. È possibile specificare un routing alternativo per i dati usando le proprietà dei dati dell'evento.
Instradare i dati degli eventi a un database alternativo
Il routing dei dati a un database alternativo è disattivato per impostazione predefinita. Per inviare i dati a un database diverso, è necessario innanzitutto impostare la connessione come connessione multi-database. Per un esempio di come eseguire questa operazione nel portale di Azure, vedere Attivare il routing multi-database. L'utente, il gruppo, l'entità servizio o l'identità gestita usata per consentire il routing del database deve avere almeno il ruolo collaboratore e le autorizzazioni di scrittura nel cluster.
Per specificare un database alternativo, impostare la proprietà Inserimentodatabase.
Avviso
Se si specifica un database alternativo senza impostare la connessione come connessione dati multi-database, l'inserimento avrà esito negativo.
Attivare il routing multi-database
Prima di poter impostare un database di destinazione alternativo, è necessario prima consentire il routing dei dati a più database. Per consentire il routing dei dati a database alternativi, seguire questa procedura:
Nel portale di Azure passare al cluster.
Selezionare Connessionidatidatabase>.
Creare o modificare una connessione dati e nel riquadro Connessione dati, in Impostazioni routing dati, attivare l'opzione Consenti il routing dei dati ad altri database (connessione dati multi-database).
Instradare i dati degli eventi a una tabella alternativa
È anche possibile specificare le proprietà della tabella di destinazione per ogni evento, usando le proprietà dell'evento. La connessione instrada dinamicamente i dati come specificato in EventData.Properties, ignorando le proprietà statiche per questo evento. Per specificare una tabella alternativa, impostare la proprietà Di inserimentotabella.
Nota
Se i dati personali includono le informazioni di routing selezionate, è necessario fornire le informazioni di routing necessarie come parte delle proprietà degli eventi.
Mapping delle proprietà del sistema per gli eventi
Le proprietà di sistema sono una raccolta utilizzata per archiviare le proprietà impostate dal servizio hub IoT, al momento della ricezione dell'evento. La connessione di Azure Esplora dati hub IoT incorporare le proprietà selezionate nell'area di destinazione dei dati nella tabella.
Nota
Per csv
il mapping, le proprietà vengono aggiunte all'inizio del record nell'ordine elencato nella tabella seguente. Per json
il mapping, le proprietà vengono aggiunte in base ai nomi delle proprietà nella tabella seguente.
Proprietà di sistema
hub IoT espone le proprietà di sistema seguenti per i messaggi da dispositivo a cloud hub IoT:
Proprietà | Descrizione |
---|---|
message-id | Un identificatore configurabile dall'utente per il messaggio, usato per i modelli di richiesta-risposta. Formato: Stringa con distinzione tra maiuscole e minuscole (con lunghezza massima di 128 caratteri) di caratteri alfanumerici ASCII a 7 bit + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''} . |
iothub-enqueuedtime | Data e ora di ricezione del messaggio da dispositivo a cloud da parte dell'hub IoT. |
user-id | ID usato per specificare l'origine dei messaggi. Quando i messaggi vengono generati da hub IoT, questo valore viene impostato su {iot hub name} . |
iothub-connection-device-id | ID impostato dall'hub IoT sui messaggi da dispositivo a cloud. Contiene il valore deviceId del dispositivo che ha inviato il messaggio. |
iothub-connection-module-id | ID impostato dall'hub IoT sui messaggi da dispositivo a cloud. Contiene il valore moduleId del dispositivo che ha inviato il messaggio. |
iothub-connection-auth-generation-id | ID impostato dall'hub IoT sui messaggi da dispositivo a cloud. Contiene il valore connectionDeviceGenerationId (come indicato in Proprietà delle identità dei dispositivi) del dispositivo che ha inviato il messaggio. |
iothub-connection-auth-method | Metodo di autenticazione impostato dall'hub IoT sui messaggi da dispositivo a cloud. Questa proprietà contiene informazioni sul metodo di autenticazione usato per autenticare il dispositivo che invia il messaggio. |
iothub-app-iothub-creation-time-utc | Consente al dispositivo di inviare il tempo di creazione dell'evento durante l'invio di dati in un batch. |
iothub-creation-time-utc | Consente al dispositivo di inviare l'ora di creazione dell'evento quando si invia un messaggio alla volta. |
dt-dataschema | Questo valore viene impostato dall'hub IoT nei messaggi da dispositivo a cloud. Contiene l'ID modello di dispositivo impostato nella connessione del dispositivo. |
dt-subject | Nome del componente che invia i messaggi da dispositivo a cloud. |
Se nella sezione Origine dati della tabella sono state selezionate le proprietà del sistema eventi, è necessario includere le proprietà nello schema della tabella e nel mapping.
Esempi di mapping dello schema
Esempio di mapping dello schema di tabella
Se i dati includono tre colonne (Timespan
, Metric
e Value
) e le proprietà incluse sono iothub-connection-device-id
e sequence-number
, creare o modificare lo schema della tabella usando questo comando:
.create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, IotHubDeviceId:long, IotHubSequenceNumber:long)
Esempio di mapping CSV
Eseguire i comandi seguenti per aggiungere dati all'inizio del record. Prendere nota dei valori ordinali.
.create table TestTable ingestion csv mapping "CsvMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Ordinal":"2"}},'
' { "column" : "Metric", "Properties":{"Ordinal":"3"}},'
' { "column" : "Value", "Properties":{"Ordinal":"4"}},'
' { "column" : "IotHubDeviceId", "Properties":{"Ordinal":"0"}},'
' { "column" : "IotHubSequenceNumber", "Properties":{"Ordinal":"1"}}'
']'
Esempio di mapping JSON
I dati verranno aggiunti usando il mapping delle proprietà di sistema. Eseguire questi comandi:
.create table TestTable ingestion json mapping "JsonMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Path":"$.timestamp"}},'
' { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
' { "column" : "Value", "Properties":{"Path":"$.metric_value"}},'
' { "column" : "IotHubDeviceId", "Properties":{"Path":"$.iothub-connection-device-id"}},'
' { "column" : "IotHubSequenceNumber", "Properties":{"Path":"$.sequence-number"}}'
']'
Mapping delle proprietà utente dell'evento
Non è disponibile alcun supporto per arricchire il payload degli eventi hub IoT con le proprietà dell'utente. Prendere in considerazione l'incorporamento delle proprietà utente nel corpo dell'evento upstream.
Connessione dell'hub IoT
Nota
Per ottenere prestazioni ottimali, creare tutte le risorse nella stessa area del cluster di azure Esplora dati.
Creare un hub IoT
Se non è già disponibile, creare un hub Iot. La connessione a hub IoT può essere gestita tramite il portale di Azure, a livello di codice con C# o Python o con il modello di Resource Manager di Azure.
Nota
- Il
device-to-cloud partitions
conteggio non è modificabile, pertanto è consigliabile prendere in considerazione la scalabilità a lungo termine quando si imposta il numero di partizioni. - Il gruppo di consumer deve essere univoco per ogni consumer. Creare un gruppo di consumer dedicato alla connessione Esplora dati di Azure. Trovare la risorsa nel portale di Azure e passare a
Built-in endpoints
per aggiungere un nuovo gruppo di consumer. - La connessione dati usa hub IoT
Built-in endpoint
. Se si configurano altriMessage routing endpoint
messaggi , i messaggi vengono arrestati fino aBuilt-in endpoint
quando non viene creata una route a tale endpoint. Per garantire che i messaggi continuino a essere trasmessi all'endpoint predefinito se viene aggiunta una nuova route, configurare una route all'endpointevents
. Per altre informazioni, vedere hub IoT Risoluzione dei problemi relativi al routing dei messaggi.
Invio di eventi
Vedere il progetto di esempio che simula un dispositivo e genera i dati.
Passaggio successivo
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per