In dit artikel wordt beschreven hoe u gegevensexport configureert om gegevens naar de Blob Storage-service te verzenden.
Gebruik deze functie om gefilterde en verrijkte IoT-gegevens continu te exporteren uit uw IoT Central-toepassing. Gegevensexport pusht wijzigingen in bijna realtime naar andere onderdelen van uw cloudoplossing voor inzichten, analyses en opslag op warm pad.
U kunt bijvoorbeeld:
Continu telemetrie exporteren, eigenschappenwijzigingen, apparaatconnectiviteit, apparaatlevenscyclus, levenscyclus van apparaatsjablonen en auditlogboekgegevens in JSON-indeling in bijna realtime.
Filter de gegevensstromen om gegevens te exporteren die overeenkomen met aangepaste voorwaarden.
Verrijk de gegevensstromen met aangepaste waarden en eigenschapswaarden van het apparaat.
Wanneer u gegevensexport inschakelt, krijgt u alleen de gegevens vanaf dat moment. Als u meer historische gegevens wilt behouden, schakelt u gegevensexport vroeg in. Als u gegevens handmatig wilt exporteren vanaf tijdstippen waarop gegevensexport is uitgeschakeld, raadpleegt u Hoe u de Rest API van IoT Central gebruikt om query's uit te voeren op apparaten.
Notitie
In sommige gevallen kan het tot 60 seconden duren voordat de berichten worden geëxporteerd. Deze tijd wordt gemeten vanaf wanneer IoT Central het bericht van de onderliggende IoT-hub ontvangt tot wanneer het bericht wordt bezorgd bij het doeleindpunt.
Vereisten
Als u functies voor gegevensexport wilt gebruiken, moet u beschikken over de machtiging Gegevensexport .
IoT Central exporteert gegevens één keer per minuut, waarbij elk bestand de batch met wijzigingen bevat sinds de vorige export. Geëxporteerde gegevens worden opgeslagen in JSON-indeling. De standaardpaden naar de geëxporteerde gegevens in uw opslagaccount zijn:
Wanneer u een beheerde identiteit configureert, bevat de configuratie een bereik en een rol:
Het bereik definieert waar u de beheerde identiteit kunt gebruiken. U kunt bijvoorbeeld een Azure-resourcegroep gebruiken als bereik. In dit geval moeten zowel de IoT Central-toepassing als de bestemming zich in dezelfde resourcegroep bevinden.
De rol bepaalt welke machtigingen de IoT Central-toepassing wordt verleend in de doelservice. Voor een IoT Central-toepassing voor het verzenden van gegevens naar een Event Hub heeft de beheerde identiteit bijvoorbeeld de roltoewijzing Azure Event Hubs-gegevenszender nodig.
De volgende video bevat meer informatie over door het systeem toegewezen beheerde identiteiten:
Waarschuwing
Als u wilt exporteren naar blobopslag, gebruikt u de bijdrager voor het opslagaccount niet, zoals wordt weergegeven in de video. Gebruik in plaats daarvan de rol Inzender voor opslagblobgegevens.
In dit artikel wordt beschreven hoe u een beheerde identiteit maakt met behulp van de Azure CLI. U kunt azure Portal ook gebruiken om een beheerde identiteit te maken.
Als u geen bestaand Azure-opslagaccount hebt waarnaar u wilt exporteren, voert u het volgende script uit in de Azure Cloud Shell-bash-omgeving. Met het script maakt u een resourcegroep, een Azure Storage-account en een blobcontainer. Met het script wordt vervolgens de beheerde identiteit voor uw IoT Central-toepassing ingeschakeld en wordt de rol toegewezen die nodig is voor toegang tot uw opslagaccount:
Azure CLI
# Replace the storage account name with your own unique value.
SA=yourstorageaccount$RANDOM# Replace the IoT Central app name with the name of your# IoT Central application.
CA=your-iot-central-app
CN=exportdata
RG=centralexportresources
LOCATION=eastus
az group create -n$RG--location$LOCATION
SAID=$(az storage account create --name$SA--resource-group$RG--location$LOCATION--sku Standard_LRS --query"id"--output tsv)
az storage container create --account-name$SA--resource-group$RG--name$CN# This assumes your IoT Central application is in the # default `IOTC` resource group.az iot central app identity assign --name$CA--resource-group IOTC --system-assigned
PI=$(az iot central app identity show --name$CA--resource-group IOTC --query"principalId"--output tsv)
az role assignment create --assignee$PI--role"Storage Blob Data Contributor"--scope$SAIDaz role assignment list --assignee$PI--all-o table
echo "Endpoint URI: https://$SA.blob.core.windows.net/"
echo "Container: $CN"
Meer informatie over het maken van nieuwe Azure Blob Storage-accounts of Azure Data Lake Storage v2-opslagaccounts. Gegevensexport kan alleen gegevens schrijven naar opslagaccounts die blok-blobs ondersteunen. In de volgende tabel ziet u de bekende compatibele typen opslagaccounts:
De Blob Storage-bestemming maken in IoT Central op de pagina Gegevensexport :
Selecteer + Nieuwe bestemming.
Selecteer Azure Blob Storage als het doeltype.
Selecteer Door het systeem toegewezen beheerde identiteit als autorisatietype.
Voer de eindpunt-URI in voor uw opslagaccount en de naam van de hoofdlettergevoelige container. Een eindpunt-URI ziet er als volgt uit: https://contosowaste.blob.core.windows.net.
Als u geen bestaand Azure-opslagaccount hebt waarnaar u wilt exporteren, voert u het volgende script uit in de Azure Cloud Shell-bash-omgeving. Met het script maakt u een resourcegroep, een Azure Storage-account en een blobcontainer. Vervolgens wordt het verbindingsreeks afgedrukt dat moet worden gebruikt wanneer u de gegevensexport in IoT Central configureert:
Azure CLI
# Replace the storage account name with your own unique value
SA=yourstorageaccount$RANDOM
CN=exportdata
RG=centralexportresources
LOCATION=eastus
az group create -n$RG--location$LOCATIONaz storage account create --name$SA--resource-group$RG--location$LOCATION--sku Standard_LRS
az storage container create --account-name$SA--resource-group$RG--name$CN
CS=$(az storage account show-connection-string--resource-group$RG--name$SA--query"connectionString"--output tsv)
echo "Storage connection string: $CS"
Meer informatie over het maken van nieuwe Azure Blob Storage-accounts of Azure Data Lake Storage v2-opslagaccounts. Gegevensexport kan alleen gegevens schrijven naar opslagaccounts die blok-blobs ondersteunen. In de volgende tabel ziet u de bekende compatibele typen opslagaccounts:
Prestatielaag
Rekeningsoort
Standaard
Algemeen gebruik v2
Standaard
Algemeen gebruik v1
Standaard
Blob-opslag
Premium
Blok-blobopslag
De Blob Storage-bestemming maken in IoT Central op de pagina Gegevensexport :
Selecteer + Nieuwe bestemming.
Selecteer Azure Blob Storage als het doeltype.
Selecteer De verbindingsreeks als het autorisatietype.
Plak de verbindingsreeks voor uw Blob Storage-resource en voer indien nodig de naam van de hoofdlettergevoelige container in.
Selecteer Opslaan.
Een gegevensexport instellen
Nu u een bestemming hebt om uw gegevens naar te exporteren, stelt u de gegevensexport in uw IoT Central-toepassing in:
Meld u aan bij uw IoT Central-toepassing.
Selecteer Gegevensexport in het linkerdeelvenster.
Tip
Als u gegevensexport niet ziet in het linkerdeelvenster, hebt u geen machtigingen om gegevensexport in uw app te configureren. Neem contact op met een beheerder om gegevensexport in te stellen.
Selecteer + Nieuwe export.
Voer een weergavenaam in voor de nieuwe export en zorg ervoor dat de gegevensexport is ingeschakeld.
Kies het type gegevens dat u wilt exporteren. De volgende tabel bevat de ondersteunde typen gegevensexport:
Gegevenstype
Beschrijving
Gegevensopmaak
Telemetrie
Telemetrieberichten exporteren van apparaten in bijna realtime. Elk geëxporteerd bericht bevat de volledige inhoud van het oorspronkelijke apparaatbericht, genormaliseerd.
Exporteer wijzigingen in apparaat- en cloudeigenschappen in bijna realtime. Voor alleen-lezen apparaateigenschappen worden wijzigingen in de gerapporteerde waarden geëxporteerd. Voor eigenschappen voor lezen/schrijven worden zowel gerapporteerde als gewenste waarden geëxporteerd.
Voeg eventueel filters toe om de hoeveelheid geëxporteerde gegevens te verminderen. Er zijn verschillende typen filters beschikbaar voor elk type gegevensexport:
Type gegevens
Beschikbare filters
Telemetrie
Filteren op apparaatnaam, apparaat-id, apparaatsjabloon en of het apparaat is gesimuleerd
Filterstroom om alleen telemetrie te bevatten die voldoet aan de filtervoorwaarden
Filterstroom zodat deze alleen telemetrie van apparaten bevat met eigenschappen die overeenkomen met de filtervoorwaarden
Filterstroom zodat deze alleen telemetrie bevat met berichteigenschappen die voldoen aan de filtervoorwaarde.
Berichteigenschappen (ook wel toepassingseigenschappen genoemd) worden verzonden in een zak sleutel-waardeparen op elk telemetriebericht. Als u een berichteigenschapsfilter wilt maken, voert u de eigenschapssleutel van het bericht in die u zoekt en geeft u een voorwaarde op. Alleen telemetrieberichten met eigenschappen die overeenkomen met de opgegeven filtervoorwaarde worden geëxporteerd.
Meer informatie over toepassingseigenschappen uit IoT Hub-documenten
Eigenschapswijzigingen
Filteren op apparaatnaam, apparaat-id, apparaatsjabloon en of het apparaat is gesimuleerd
Filterstroom om alleen eigenschapswijzigingen te bevatten die voldoen aan de filtervoorwaarden
Connectiviteit van apparaten
Filteren op apparaatnaam, apparaat-id, apparaatsjabloon, organisaties en of het apparaat is gesimuleerd
Filterstroom zodat deze alleen wijzigingen van apparaten bevat met eigenschappen die overeenkomen met de filtervoorwaarden
Levenscyclus van apparaat
Filteren op apparaatnaam, apparaat-id, apparaatsjabloon en of het apparaat is ingericht, ingeschakeld of gesimuleerd
Filterstroom zodat deze alleen wijzigingen van apparaten bevat met eigenschappen die overeenkomen met de filtervoorwaarden
Levenscyclus van apparaatsjabloon
Filteren op apparaatsjabloon
Auditlogboeken
N.v.t.
Verrijk eventueel geëxporteerde berichten met extra metagegevens van sleutel-waardepaar. De volgende verrijkingen zijn beschikbaar voor de telemetrie, eigenschappenwijzigingen, apparaatconnectiviteit en gegevensexporttypen voor de levenscyclus van apparaten:
Aangepaste tekenreeks: voegt een aangepaste statische tekenreeks toe aan elk bericht. Voer een willekeurige sleutel in en voer een tekenreekswaarde in.
Eigenschap, die aan elk bericht wordt toegevoegd:
Metagegevens van apparaten, zoals apparaatnaam, apparaatsjabloonnaam, ingeschakeld, organisaties, ingericht en gesimuleerd.
De gerapporteerde eigenschap of cloudeigenschapswaarde van het huidige apparaat voor elk bericht. Als het geëxporteerde bericht afkomstig is van een apparaat dat niet de opgegeven eigenschap heeft, krijgt het geëxporteerde bericht de verrijking niet.
Configureer de exportbestemming:
Selecteer + Bestemming om een bestemming toe te voegen die u al hebt gemaakt of selecteer Een nieuwe maken.
Selecteer + Bestemming om maximaal vijf bestemmingen toe te voegen aan één export.
Wanneer u klaar bent met het instellen van de export, selecteert u Opslaan. Na een paar minuten worden uw gegevens weergegeven in uw bestemmingen.
Uw export bewaken
Op de pagina Gegevensexport in IoT Central kunt u de status van uw exports controleren. U kunt Ook Azure Monitor gebruiken om te zien hoeveel gegevens u exporteert en eventuele exportfouten. U hebt toegang tot metrische gegevens over export- en apparaatstatus in grafieken in Azure Portal met behulp van de REST API, query's in PowerShell of de Azure CLI. Op dit moment kunt u de volgende metrische gegevens voor gegevensexport bewaken in Azure Monitor:
Aantal berichten dat binnenkomt om te exporteren voordat filters worden toegepast.
Aantal berichten dat filters doorgeeft.
Het aantal berichten dat naar bestemmingen is geëxporteerd.
In de volgende secties worden de indelingen van de geëxporteerde gegevens beschreven:
Telemetrie-indeling
Elk geëxporteerd bericht bevat een genormaliseerde vorm van het volledige bericht dat het apparaat in de hoofdtekst van het bericht heeft verzonden. Het bericht heeft de JSON-indeling en is gecodeerd als UTF-8. Informatie in elk bericht bevat:
applicationId: De id van de IoT Central-toepassing.
messageSource: De bron voor het bericht - telemetry.
deviceId: De id van het apparaat dat het telemetriebericht heeft verzonden.
schema: de naam en versie van het nettoladingschema.
templateId: De id van de apparaatsjabloon die is toegewezen aan het apparaat.
enqueuedTime: Het tijdstip waarop IoT Central dit bericht heeft ontvangen.
enrichments: Alle verrijkingen die voor de export zijn ingesteld.
module: De IoT Edge-module die dit bericht heeft verzonden. Dit veld wordt alleen weergegeven als het bericht afkomstig is van een IoT Edge-module.
component: het onderdeel dat dit bericht heeft verzonden. Dit veld wordt alleen weergegeven als de mogelijkheden die in het bericht zijn verzonden, zijn gemodelleerd als onderdeel in de apparaatsjabloon
messageProperties: Andere eigenschappen die het apparaat met het bericht heeft verzonden. Deze eigenschappen worden soms toepassingseigenschappen genoemd.
Meer informatie vindt u in IoT Hub-documenten.
Voor Blob Storage worden berichten één keer per minuut gebatcheerd en geëxporteerd.
In het volgende voorbeeld ziet u een geëxporteerd telemetriebericht:
Telemetrieberichten hebben eigenschappen voor metagegevens en de nettolading van telemetrie. In het vorige fragment ziet u voorbeelden van systeemberichten zoals deviceId en enqueuedTime. Zie Systeemeigenschappen van IoT Hub-berichten in de apparaat-naar-cloud voor meer informatie over de eigenschappen van systeemberichten.
U kunt eigenschappen toevoegen aan telemetrieberichten als u aangepaste metagegevens wilt toevoegen aan uw telemetrieberichten. U moet bijvoorbeeld een tijdstempel toevoegen wanneer het apparaat het bericht maakt.
In het volgende codefragment ziet u hoe u de iothub-creation-time-utc eigenschap aan het bericht toevoegt wanneer u het op het apparaat maakt:
Belangrijk
De notatie van deze tijdstempel moet UTC zijn zonder tijdzonegegevens. Is bijvoorbeeld 2021-04-21T11:30:16Z geldig, 2021-04-21T11:30:16-07:00 is ongeldig.
deviceId: De id van het apparaat dat het telemetriebericht heeft verzonden.
schema: de naam en versie van het nettoladingschema.
enqueuedTime: Het tijdstip waarop IoT Central deze wijziging heeft gedetecteerd.
templateId: De id van de apparaatsjabloon die is toegewezen aan het apparaat.
properties: Een matrix met eigenschappen die zijn gewijzigd, inclusief de namen van de eigenschappen en waarden die zijn gewijzigd. De onderdeel- en modulegegevens worden opgenomen als de eigenschap is gemodelleerd binnen een onderdeel of een IoT Edge-module.
enrichments: Alle verrijkingen die voor de export zijn ingesteld.
Voor Blob Storage worden berichten één keer per minuut gebatcheerd en geëxporteerd.
In het volgende fragment ziet u een bericht voor het wijzigen van de eigenschap dat is geëxporteerd naar Blob Storage:
Indeling voor wijzigingen in de levenscyclus van apparaten
Elk bericht of elke record vertegenwoordigt één wijziging in één apparaat. Informatie in het geëxporteerde bericht bevat:
applicationId: De id van de IoT Central-toepassing.
messageSource: De bron voor het bericht - deviceLifecycle.
messageType: Het type wijziging dat is opgetreden. Een van: registered, , deleted, provisioned, enabled, , disabled, , en displayNameChangeddeviceTemplateChanged.
deviceId: De id van het apparaat dat is gewijzigd.
schema: de naam en versie van het nettoladingschema.
templateId: De id van de apparaatsjabloon die is toegewezen aan het apparaat.
enqueuedTime: Het tijdstip waarop deze wijziging heeft plaatsgevonden in IoT Central.
enrichments: Alle verrijkingen die voor de export zijn ingesteld.
Voor Blob Storage worden berichten één keer per minuut gebatcheerd en geëxporteerd.
In het volgende voorbeeld ziet u een geëxporteerd bericht over de levenscyclus van apparaten dat is ontvangen in Azure Blob Storage.
Elk auditlogboekbericht vertegenwoordigt een door de gebruiker geïnitieerde wijziging in een controleerbare entiteit in de IoT Central-toepassing. Informatie in het geëxporteerde bericht bevat:
actor: Informatie over de gebruiker die de entiteit heeft gewijzigd.
applicationId: De id van de IoT Central-toepassing.
messageSource: De bron voor het bericht - audit.
messageType: Het type wijziging dat is opgetreden. Een van: updated, created, deleted.
updated: Alleen aanwezig als messageType dat het is updated. Biedt meer informatie over de update.
resource: Details van de gewijzigde entiteit.
schema: de naam en versie van het nettoladingschema.
deviceId: De id van het apparaat dat is gewijzigd.
enqueuedTime: Het tijdstip waarop deze wijziging heeft plaatsgevonden in IoT Central.
enrichments: Alle verrijkingen die voor de export zijn ingesteld.
In het volgende voorbeeld ziet u een geëxporteerd auditlogboekbericht dat is ontvangen in Azure Blob Storage:
IoT-apparaten verzenden gegevens in verschillende indelingen die u mogelijk moet transformeren. In dit artikel wordt beschreven hoe u gegevens in een IoT Central transformeert voordat u deze exporteert.
Meer informatie over het gebruik van de ioT Central-mogelijkheid voor het exporteren van gegevens om uw IoT-gegevens continu te exporteren naar Azure Data Explorer
Hierin wordt beschreven hoe u het migratiehulpprogramma gebruikt om apparaten te migreren die momenteel verbinding maken met een Azure IoT Central-toepassing naar een Azure IoT-hub.
Meer informatie over het gebruik van de mogelijkheid voor het exporteren van IoT Central-gegevens om uw IoT-gegevens continu te exporteren naar webhook
Apparaatopdrachten gebruiken in de Azure IoT Central-oplossing. Meer informatie over het definiëren en aanroepen van apparaatopdrachten vanuit IoT Central en het reageren op een apparaat.