Share via


IoT Hub-gegevensverbinding

Azure IoT Hub is een beheerde service, gehost in de cloud, die fungeert als een centrale berichtenhub voor bidirectionele communicatie tussen uw IoT-toepassing en de apparaten die deze beheert. Azure Data Explorer biedt continue opname van door de klant beheerde IoT Hubs, met behulp van het ingebouwde Event Hub-eindpunt van apparaat-naar-cloud-berichten.

De IoT-opnamepijplijn doorloopt verschillende stappen. Eerst maakt u een IoT Hub en registreert u er een apparaat bij. Vervolgens maakt u een doeltabel in Azure Data Explorer waarin de gegevens in een bepaalde indeling worden opgenomen met behulp van de opgegeven opname-eigenschappen. De IoT Hub-verbinding moet de routering van gebeurtenissen kennen om verbinding te maken met de Azure Data Explorer-tabel. Gegevens worden ingesloten met geselecteerde eigenschappen op basis van de toewijzing van de eigenschappen van het gebeurtenissysteem. Dit proces kan worden beheerd via de Azure Portal, programmatisch met C# of Python of met de Azure Resource Manager-sjabloon.

Zie Overzicht van gegevensopname in Azure Data Explorer voor algemene informatie over gegevensopname in Azure Data Explorer.

Gegevensindeling

Opname-eigenschappen

Opname-eigenschappen geven aan het opnameproces waar de gegevens moeten worden gerouteerd en hoe deze moeten worden verwerkt. U kunt opname-eigenschappen van de gebeurtenissen opgeven met behulp van EventData.Properties. U kunt de volgende eigenschappen instellen:

Eigenschap Beschrijving
Database Naam (hoofdlettergevoelig) van de doeldatabase. Deze eigenschap kan worden gebruikt als u de gegevens wilt verzenden naar een andere database dan de database waarop de gegevensverbinding is gemaakt (de standaarddatabase). Als u de gegevens naar meerdere databases wilt routeren, moet u de verbinding eerst instellen als een verbinding met meerdere databases. Zie Gebeurtenissenroutering voor meer informatie.
Tabel Naam (hoofdlettergevoelig) van de bestaande doeltabel. Overschrijft de Table set in het Data Connection deelvenster.
Indeling Gegevensindeling. Overschrijft de Data format set in het Data Connection deelvenster.
IngestionMappingReference Naam van de bestaande opnametoewijzing die moet worden gebruikt. Overschrijft de Column mapping set in het Data Connection deelvenster.
Encoding Gegevenscodering, de standaardwaarde is UTF8. Kan een van de door .NET ondersteunde coderingen zijn.

Notitie

Alleen gebeurtenissen die zijn opgenomen nadat u de gegevensverbinding hebt gemaakt, worden opgenomen.

Routering van gebeurtenissen

Wanneer u een gegevensverbinding met uw cluster maakt, geeft u de routering op voor het verzenden van opgenomen gegevens. De standaardroutering is naar de doeltabel die is opgegeven in de verbindingsreeks die is gekoppeld aan de doeldatabase. De standaardroutering voor uw gegevens wordt ook wel statische routering genoemd. U kunt een alternatieve routering voor uw gegevens opgeven met behulp van de eigenschappen van gebeurtenisgegevens.

Gebeurtenisgegevens routeren naar een alternatieve database

Het routeren van gegevens naar een alternatieve database is standaard uitgeschakeld. Als u de gegevens naar een andere database wilt verzenden, moet u de verbinding eerst instellen als een verbinding met meerdere databases. Zie Routering voor meerdere databases inschakelen voor een voorbeeld van hoe u dit doet in de Azure Portal. De gebruiker, groep, service-principal of beheerde identiteit die wordt gebruikt om databaseroutering toe te staan, moet ten minste de rol inzender en schrijfmachtigingen voor het cluster hebben.

Als u een alternatieve database wilt opgeven, stelt u de eigenschap Databaseopname in.

Waarschuwing

Als u een alternatieve database opgeeft zonder de verbinding in te stellen als een gegevensverbinding met meerdere databases, mislukt de opname.

Routering van meerdere databases inschakelen

Voordat u een alternatieve doeldatabase kunt instellen, moet u eerst toestaan dat de gegevens naar meerdere databases worden gerouteerd. Gebruik de volgende stappen om routering van de gegevens naar alternatieve databases toe te staan:

  1. Blader in de Azure Portal naar uw cluster.

  2. Selecteer Databases>Gegevensverbindingen.

  3. Maak of bewerk een gegevensverbinding en schakel in het deelvenster Gegevensverbinding onder Instellingen voor gegevensroutering de optie Gegevensroutering naar een andere database toestaan (gegevensverbinding met meerdere databases) in.

    Schermopname van de Azure Data Explorer Web U I met de optie Instellingen voor gegevensroutering ingesteld op toestaan.

Gebeurtenisgegevens doorsturen naar een alternatieve tabel

U kunt ook eigenschappen van de doeltabel opgeven voor elke gebeurtenis, met behulp van gebeurteniseigenschappen. De verbinding stuurt de gegevens dynamisch door zoals opgegeven in EventData.Properties, waarbij de statische eigenschappen voor deze gebeurtenis worden overschreven. Als u een alternatieve tabel wilt opgeven, stelt u de eigenschap Tabelopname in.

Notitie

Als Mijn gegevens routeringsgegevens bevatten geselecteerd, moet u de benodigde routeringsgegevens opgeven als onderdeel van de gebeurteniseigenschappen.

Toewijzing van gebeurtenissysteemeigenschappen

Systeemeigenschappen zijn een verzameling die wordt gebruikt voor het opslaan van eigenschappen die zijn ingesteld door de IoT Hub-service op het moment dat de gebeurtenis wordt ontvangen. Met de Azure Data Explorer IoT Hub-verbinding worden de geselecteerde eigenschappen ingesloten in de gegevenslanding in uw tabel.

Notitie

Voor csv toewijzing worden eigenschappen toegevoegd aan het begin van de record in de volgorde die wordt vermeld in de onderstaande tabel. Voor json toewijzing worden eigenschappen toegevoegd op basis van eigenschapsnamen in de volgende tabel.

Systeemeigenschappen

IoT Hub maakt de volgende systeemeigenschappen beschikbaar voor apparaat-naar-cloud-IoT Hub-berichten:

Eigenschap Beschrijving
message-id Een door de gebruiker ingestelde id voor het bericht dat wordt gebruikt voor aanvraag-antwoordpatronen. Opmaak: Een hoofdlettergevoelige tekenreeks (maximaal 128 tekens lang) met 7-bits ASCII-alfanumerieke tekens + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''}.
iothub-enqueuedtime De datum en tijd waarop het apparaat-naar-cloud-bericht is ontvangen door IoT Hub.
user-id Een id die wordt gebruikt om de oorsprong van berichten op te geven. Wanneer berichten worden gegenereerd door IoT Hub, wordt deze waarde ingesteld op {iot hub name}.
iothub-connection-device-id Een id die is ingesteld door IoT Hub op apparaat-naar-cloud-berichten. Het bevat de deviceId van het apparaat dat het bericht heeft verzonden.
iothub-connection-module-id Een id die is ingesteld door IoT Hub op apparaat-naar-cloud-berichten. Het bevat de moduleId van het apparaat dat het bericht heeft verzonden.
iothub-connection-auth-generation-id Een id die is ingesteld door IoT Hub op apparaat-naar-cloud-berichten. Het bevat de connectionDeviceGenerationId (volgens apparaatidentiteitseigenschappen) van het apparaat dat het bericht heeft verzonden.
iothub-connection-auth-method Een verificatiemethode die is ingesteld door IoT Hub voor apparaat-naar-cloud-berichten. Deze eigenschap bevat informatie over de verificatiemethode die wordt gebruikt om het apparaat te verifiëren dat het bericht verzendt.
iothub-app-iothub-creation-time-utc Hiermee kan het apparaat de aanmaaktijd van gebeurtenissen verzenden bij het verzenden van gegevens in een batch.
iothub-creation-time-utc Hiermee staat u toe dat het apparaat de aanmaaktijd van gebeurtenissen verzendt bij het verzenden van één bericht tegelijk.
dt-dataschema Deze waarde wordt ingesteld door IoT Hub voor apparaat-naar-cloud-berichten. Deze bevat de apparaatmodel-id die is ingesteld in de apparaatverbinding.
dt-onderwerp De naam van het onderdeel dat de apparaat-naar-cloud-berichten verzendt.

Als u Gebeurtenissysteemeigenschappen hebt geselecteerd in de sectie Gegevensbron van de tabel, moet u de eigenschappen opnemen in het tabelschema en de toewijzing.

Voorbeelden van schematoewijzing

Voorbeeld van tabelschematoewijzing

Als uw gegevens drie kolommen bevatten (Timespan, Metricen Value) en de eigenschappen die u opneemt en sequence-numberzijniothub-connection-device-id, maakt of wijzigt u het tabelschema met behulp van deze opdracht:

    .create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, IotHubDeviceId:long, IotHubSequenceNumber:long)

Voorbeeld van CSV-toewijzing

Voer de volgende opdrachten uit om gegevens toe te voegen aan het begin van de record. Ordinale waarden noteren.

    .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"}}'
    ']'

Voorbeeld van JSON-toewijzing

Gegevens worden toegevoegd met behulp van de toewijzing van systeemeigenschappen. Voer deze opdrachten uit:

    .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"}}'
    ']'

Toewijzing van eigenschappen van gebeurtenisgebruiker

Er is geen ondersteuning voor het verrijken van de nettolading van de IoT Hub gebeurtenissen met gebruikerseigenschappen. Overweeg gebruikerseigenschappen in te sluiten in de hoofdtekst van de gebeurtenis upstream.

Azure IoT Hub-verbinding

Notitie

Voor de beste prestaties maakt u alle resources in dezelfde regio als het Azure Data Explorer-cluster.

Een IoT Hub maken

Als u er nog geen hebt, maakt u een IoT-hub. Verbinding met IoT Hub kan worden beheerd via de Azure Portal, programmatisch met C# of Python, of met de Azure Resource Manager-sjabloon.

Notitie

  • Het device-to-cloud partitions aantal kan niet worden gewijzigd, dus u moet rekening houden met schaal op lange termijn bij het instellen van het aantal partities.
  • De consumentengroep moet uniek zijn per consument. Maak een consumentengroep die is toegewezen aan Azure Data Explorer-verbinding. Zoek uw resource in de Azure Portal en ga naar Built-in endpoints om een nieuwe consumentengroep toe te voegen.
  • De gegevensverbinding maakt gebruik van IoT Hub Built-in endpoint. Als u een andere Message routing endpointconfigureert, worden berichten niet meer naar de Built-in endpoint verzonden, tenzij er een route naar dat eindpunt wordt gemaakt. Configureer een route naar het eindpunt om ervoor te zorgen dat berichten blijven stromen naar het events ingebouwde eindpunt als er een nieuwe route wordt toegevoegd. Zie IoT Hub Problemen met berichtroutering oplossen voor meer informatie.

Gebeurtenissen verzenden

Bekijk het voorbeeldproject dat een apparaat simuleert en gegevens genereert.

Volgende stap