Creare una connessione all'hub InternetCreate a connection to IoT Hub

Hub Azure è un servizio gestito, ospitato nel cloud, che funge da Hub messaggi centrale per la comunicazione bidirezionale tra l'applicazione Internet e i dispositivi gestiti.Azure IoT Hub is a managed service, hosted in the cloud, that acts as a central message hub for bi-directional communication between your IoT application and the devices it manages. Azure Esplora dati offre l'inserimento continuo dagli hub di Internet delle cose gestiti dal cliente, usando l' endpoint predefinito compatibile con l'hub eventi.Azure Data Explorer offers continuous ingestion from customer-managed IoT Hubs, using its Event Hub compatible built in endpoint.

La pipeline di inserimento Internet delle cose passa attraverso diversi passaggi.The IoT ingestion pipeline goes through several steps. Prima di tutto, si crea un hub Internet delle cose e si registra un dispositivo.First, you create an IoT Hub, and register a device to it. Si crea quindi una tabella di destinazione in Azure Esplora dati in cui verranno inseriti i dati in un particolare formato, usando le Proprietàdi inserimento specificate.You then create a target table in Azure Data Explorer into which the data in a particular format, will be ingested using the given ingestion properties. Per connettersi alla tabella Esplora dati di Azure, è necessario che la connessione hub Internet conosca il routing degli eventi .The Iot Hub connection needs to know events routing to connect to the Azure Data Explorer table. I dati sono incorporati con proprietà selezionate in base al mapping delle proprietà del sistema di eventi.Data is embedded with selected properties according to the event system properties mapping. Questo processo può essere gestito tramite il portale di Azure, a livello di codice con C# o Pythono con il modello di Azure Resource Manager.This process can be managed through the Azure portal, programmatically with C# or Python, or with the Azure Resource Manager template.

Per informazioni generali sull'inserimento di dati in Azure Esplora dati, vedere Panoramica dell'inserimento dei dati in azure Esplora dati.For general information about data ingestion in Azure Data Explorer, see Azure Data Explorer data ingestion overview.

Formato datiData format

  • I dati vengono letti dall'endpoint dell'hub eventi sotto forma di oggetti EventData .Data is read from the Event Hub endpoint in form of EventData objects.
  • Vedere formati supportati.See supported formats.

    Nota

    L'hub Internet non supporta il formato RAW.IoT Hub doesn't support the .raw format.

  • Vedere le compressioni supportate.See supported compressions.
    • Le dimensioni dei dati non compressi originali devono far parte dei metadati del BLOB, altrimenti Azure Esplora dati lo stimerà.The original uncompressed data size should be part of the blob metadata, or else Azure Data Explorer will estimate it. Il limite di dimensioni non compresse di inserimento per file è 4 GB.The ingestion uncompressed size limit per file is 4 GB.

Imposta proprietà di inserimentoSet ingestion properties

Le proprietà di inserimento indicano il processo di inserimento in cui instradare i dati e come elaborarli.Ingestion properties instruct the ingestion process where to route the data and how to process it. È possibile specificare le Proprietà di inserimento degli eventi usando EventData. Properties.You can specify Ingestion properties of the events using the EventData.Properties. È possibile inoltre impostare le proprietà seguenti:You can set the following properties:

ProprietàProperty DescrizioneDescription
TabellaTable Nome (maiuscole/minuscole) della tabella di destinazione esistente.Name (case sensitive) of the existing target table. Esegue l'override del Table set nel Data Connection riquadro.Overrides the Table set on the Data Connection pane.
FormatoFormat Formato dati.Data format. Esegue l'override del Data format set nel Data Connection riquadro.Overrides the Data format set on the Data Connection pane.
IngestionMappingReferenceIngestionMappingReference Nome del mapping di inserimento esistente da usare.Name of the existing ingestion mapping to be used. Esegue l'override del Column mapping set nel Data Connection riquadro.Overrides the Column mapping set on the Data Connection pane.
CodificaEncoding Codifica dei dati, il valore predefinito è UTF8.Data encoding, the default is UTF8. Può essere qualsiasi codifica supportata da .NET.Can be any of .NET supported encodings.

Imposta routing eventiSet events routing

Quando si configura una connessione dell'hub Internet ad Azure Esplora dati cluster, è necessario specificare le proprietà della tabella di destinazione (nome tabella, formato dati e mapping).When setting up an IoT Hub connection to Azure Data Explorer cluster, you specify target table properties (table name, data format, and mapping). Questa impostazione è il routing predefinito per i dati, denominato anche routing statico.This setting is the default routing for your data, also referred to as static routing. È anche possibile specificare le proprietà della tabella di destinazione per ogni evento, usando le proprietà dell'evento.You can also specify target table properties for each event, using event properties. La connessione instraderà i dati in modo dinamico come specificato in EventData. Properties, eseguendo l'override delle proprietà statiche per questo evento.The connection will dynamically route the data as specified in the EventData.Properties, overriding the static properties for this event.

Nota

Se i dati includono informazioni di routing selezionate, è necessario fornire le informazioni di routing necessarie come parte delle proprietà degli eventi.If My data includes routing info selected, you must provide the necessary routing information as part of the events properties.

Imposta mapping delle proprietà del sistema eventiSet event system properties mapping

Le proprietà di sistema sono una raccolta usata per archiviare le proprietà impostate dal servizio hub Internet delle cose, nel momento in cui viene ricevuto l'evento.System properties are a collection used to store properties that are set by the IoT Hub service, on the time the event is received. La connessione dell'hub Azure Esplora dati Azure incorpora le proprietà selezionate nell'atterraggio dei dati nella tabella.The Azure Data Explorer IoT Hub connection will embed the selected properties in the data landing in your table.

Nota

Per il csv mapping, le proprietà vengono aggiunte all'inizio del record nell'ordine indicato nella tabella seguente.For csv mapping, properties are added at the beginning of the record in the order listed in the table below. Per json il mapping, le proprietà vengono aggiunte in base ai nomi delle proprietà nella tabella seguente.For json mapping, properties are added according to property names in the following table.

Proprietà di sistemaSystem properties

L'hub Internet delle cose espone le proprietà di sistema seguenti:IoT Hub exposes the following system properties:

ProprietàProperty DescrizioneDescription
message-idmessage-id Un identificatore configurabile dall'utente per il messaggio, usato per i modelli di richiesta-risposta.A user-settable identifier for the message used for request-reply patterns.
sequence-numbersequence-number Numero, univoco per ogni dispositivo-coda, assegnato dall'hub IoT a ogni messaggio da cloud a dispositivo.A number (unique per device-queue) assigned by IoT Hub to each cloud-to-device message.
into Destinazione specificata nei messaggi da cloud a dispositivo .A destination specified in Cloud-to-Device messages.
absolute-expiry-timeabsolute-expiry-time Data e ora della scadenza del messaggio.Date and time of message expiration.
iothub-enqueuedtimeiothub-enqueuedtime Data e ora di ricezione del messaggio da dispositivo a cloud da parte dell'hub IoT.Date and time the Device-to-Cloud message was received by IoT Hub.
correlation-idcorrelation-id Proprietà stringa in un messaggio di risposta che contiene in genere il valore MessageId della richiesta nei modelli richiesta-risposta.A string property in a response message that typically contains the MessageId of the request, in request-reply patterns.
user-iduser-id ID usato per specificare l'origine dei messaggi.An ID used to specify the origin of messages.
iothub-ackiothub-ack Generatore di messaggi con commenti.A feedback message generator.
iothub-connection-device-idiothub-connection-device-id ID impostato dall'hub IoT sui messaggi da dispositivo a cloud.An ID set by IoT Hub on device-to-cloud messages. Contiene il valore deviceId del dispositivo che ha inviato il messaggio.It contains the deviceId of the device that sent the message.
iothub-connection-auth-generation-idiothub-connection-auth-generation-id ID impostato dall'hub IoT sui messaggi da dispositivo a cloud.An ID set by IoT Hub on device-to-cloud messages. Contiene il valore connectionDeviceGenerationId (come indicato in Proprietà delle identità dei dispositivi) del dispositivo che ha inviato il messaggio.It contains the connectionDeviceGenerationId (as per Device identity properties) of the device that sent the message.
iothub-connection-auth-methodiothub-connection-auth-method Metodo di autenticazione impostato dall'hub IoT sui messaggi da dispositivo a cloud.An authentication method set by IoT Hub on device-to-cloud messages. Questa proprietà contiene informazioni sul metodo di autenticazione usato per autenticare il dispositivo che invia il messaggio.This property contains information about the authentication method used to authenticate the device sending the message.

Se è stata selezionata l'opzione Proprietà sistema eventi nella sezione origine dati della tabella, è necessario includere le proprietà nello schema e nel mapping della tabella.If you selected Event system properties in the Data Source section of the table, you must include the properties in the table schema and mapping.

Esempi di mapping di schemiSchema mapping examples

Esempio di mapping dello schema della tabellaTable schema mapping example

Se i dati includono tre colonne ( Timespan , Metric e Value ) e le proprietà incluse sono x-opt-enqueued-time e x-opt-offset , creare o modificare lo schema della tabella utilizzando questo comando:If your data includes three columns (Timespan, Metric, and Value) and the properties you include are x-opt-enqueued-time and x-opt-offset, create or alter the table schema by using this command:

    .create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)

Esempio di mapping CSVCSV mapping example

Eseguire i comandi seguenti per aggiungere dati all'inizio del record.Run the following commands to add data to the beginning of the record. Prendere nota dei valori ordinali.Note ordinal values.

    .create table TestTable ingestion csv mapping "CsvMapping1"
    '['
    '   { "column" : "Timespan", "Properties":{"Ordinal":"2"}},'
    '   { "column" : "Metric", "Properties":{"Ordinal":"3"}},'
    '   { "column" : "Value", "Properties":{"Ordinal":"4"}},'
    '   { "column" : "EventHubEnqueuedTime", "Properties":{"Ordinal":"0"}},'
    '   { "column" : "EventHubOffset", "Properties":{"Ordinal":"1"}}'
    ']'

Esempio di mapping JSONJSON mapping example

I dati vengono aggiunti tramite il mapping delle proprietà di sistema.Data is added by using the system properties mapping. Eseguire questi comandi:Run these commands:

    .create table TestTable ingestion json mapping "JsonMapping1"
    '['
    '    { "column" : "Timespan", "Properties":{"Path":"$.timestamp"}},'
    '    { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
    '    { "column" : "Value", "Properties":{"Path":"$.metric_value"}},'
    '    { "column" : "EventHubEnqueuedTime", "Properties":{"Path":"$.x-opt-enqueued-time"}},'
    '    { "column" : "EventHubOffset", "Properties":{"Path":"$.x-opt-offset"}}'
    ']'

Crea connessione hub InternetCreate IoT Hub connection

Nota

Per ottenere prestazioni ottimali, creare tutte le risorse nella stessa area del cluster di Azure Esplora dati.For best performance, create all resources in the same region as the Azure Data Explorer cluster.

Creare un hub IoTCreate an IoT Hub

Se non si dispone già di un utente, creare un hubInternet.If you don't already have one, Create an Iot Hub. La connessione all'hub delle cose può essere gestita tramite il portale di Azure, a livello di codice con C# o Pythono con il modello di Azure Resource Manager.Connection to IoT Hub can be managed through the Azure portal, programmatically with C# or Python, or with the Azure Resource Manager template.

Nota

  • Il device-to-cloud partitions conteggio non è modificabile, pertanto è consigliabile considerare la scala a lungo termine quando si imposta il numero di partizioni.The device-to-cloud partitions count is not changeable, so you should consider long-term scale when setting partition count.
  • Il gruppo di consumer deve essere univoco per ogni utente.Consumer group must be unique per consumer. Creare un gruppo di consumer dedicato alla connessione Esplora dati di Azure.Create a consumer group dedicated to Azure Data Explorer connection. Trovare la risorsa nel portale di Azure e passare a Built-in endpoints per aggiungere un nuovo gruppo di consumer.Find your resource in the Azure portal and go to Built-in endpoints to add a new consumer group.

Invio di eventiSending events

Vedere il progetto di esempio che simula un dispositivo e genera dati.See the sample project that simulates a device and generates data.

Passaggi successiviNext steps

Sono disponibili diversi metodi per inserire dati nell'hub Internet.There are various methods to ingest data to IoT Hub. Per le procedure dettagliate di ogni metodo, vedere i collegamenti seguenti.See the following links for walkthroughs of each method.