Gegevensarchieven integreren met IoT-pijplijnen

Voltooid

Nu u Cosmos DB hebt geïmplementeerd, moet u bepalen hoe u deze kunt integreren met Azure IoT-services. U bent van plan om het gebruik van zowel de dynamische als de koude padopties te verkennen. Met deze verkenning kunt u eenvoudiger rekening houden met de inventaris van slimme apparaten en telemetriescenario's voor apparaten die deel uitmaken van uw cloudeigen toepassingsontwerp. U wilt ook andere gegevensarchieven identificeren die u mogelijk in uw ontwerp kunt gebruiken.

Wat zijn azure Cosmos DB-specifieke ontwerpoverwegingen?

Wanneer u een Azure Cosmos DB-database en -containerhiërarchie ontwerpt, is de juiste keuze van de partitiesleutel essentieel voor optimale prestaties en efficiëntie. Deze keuze is relevant in IoT-scenario's die doorgaans grote hoeveelheden streaminggegevens omvatten.

Wanneer u de meest geschikte partitiesleutel kiest, moet u rekening houden met de gebruikspatronen en de limiet van 20 GB voor de grootte van een afzonderlijke logische partitie. Over het algemeen is het raadzaam om een partitiesleutel te maken met honderden of duizenden afzonderlijke waarden. Deze methode leidt tot een evenwichtig gebruik van opslag- en rekenresources voor de items die zijn gekoppeld aan deze partitiesleutelwaarden. Tegelijkertijd mag de gecombineerde grootte van items die dezelfde partitiesleutelwaarde delen, niet groter zijn dan 20 GB.

Als u bijvoorbeeld IoT-gegevens verzamelt, kunt u ervoor kiezen om de eigenschap /date te gebruiken voor telemetriestreaming en /deviceId voor apparaatinventaris, als deze eigenschappen de doelen van de meest voorkomende gegevensquery's vertegenwoordigen. U kunt ook een synthetische partitiesleutel maken, zoals een samenvoeging van de waarden van /deviceId en /date. Een andere benadering is het toevoegen van een willekeurig getal binnen een aangewezen bereik aan het einde van de partitiesleutelwaarde. Deze aanpak zorgt voor een evenwichtige verdeling van de workload over meerdere partities. Op deze manier kunt u, terwijl u de items in de doelverzameling laadt, parallelle schrijfbewerkingen uitvoeren op meerdere partities.

Wat zijn gegevenspijplijnen in IoT-scenario's?

Een veelvoorkomende gebeurtenis in IoT-scenario's is de implementatie van meerdere gelijktijdige gegevenspaden door de opgenomen gegevensstroom te partitioneren of door gegevensrecords door te sturen naar meerdere pijplijnen. Het bijbehorende architectuurpatroon wordt lambda-architectuur genoemd en bestaat uit twee verschillende typen pijplijnen.

Een snelle (dynamische) verwerkingspijplijn:

  • Voert realtime verwerking uit.
  • Analyseert gegevens.
  • Geeft gegevensinhoud weer.
  • Genereert korte termijn, tijdgevoelige informatie.
  • Activeert bijbehorende acties, zoals waarschuwingen.
  • Slaat de gegevens op in een archief.

Een trage (koude) verwerkingspijplijn:

  • Hiermee wordt complexere analyse uitgevoerd, mogelijk gegevens uit meerdere bronnen en gedurende een langere periode gecombineerd.
  • Genereert artefacten zoals rapporten of machine learning-modellen.

Wat is de rol van Azure-services bij het implementeren van IoT-pijplijnen?

IoT-systemen nemen telemetrie op die wordt gegenereerd door een breed scala aan apparaten, verwerken en analyseren om bijna realtime inzichten af te leiden en gegevens te archiveren naar koude opslag voor batchanalyses. Het gegevenspad begint met telemetrie die wordt gegenereerd door IoT-apparaten die worden verzonden voor initiële verwerking naar Azure IoT Hub of Azure IoT Central. Zowel Azure IoT Hub als Azure IoT Central slaan verzamelde gegevens gedurende een configureerbare hoeveelheid tijd op.

The options for integrating Azure IoT Central with cloud-native applications and Azure services.

Azure IoT Hub ondersteunt partitionering en berichtroutering, waarmee u specifieke berichten kunt toewijzen voor verwerking, waarschuwingen en hersteltaken van Azure Logic Apps en Azure Functions. De equivalente functionaliteit is beschikbaar in Azure IoT Central en is gebaseerd op de aangepaste geconfigureerde regels waarmee acties via webhooks worden geactiveerd. De webhooks kunnen verwijzen naar Azure Functions, Azure Logic Apps, Microsoft Flow of uw eigen aangepaste apps. Met Azure IoT Hub-routes kunt u ook telemetrie doorsturen naar een Azure-functie voor initiële verwerking en deze vervolgens doorsturen naar Azure Cosmos DB. Voorbeelden van dergelijke verwerking zijn indelingsconversie of het maken van een synthetische partitiesleutel. Een ander potentieel gebruik van Azure IoT Hub-routes omvat het kopiëren van binnenkomende gegevens naar Azure Blob Storage of Azure Data Lake. Deze methode biedt een voordelige archiveringsoptie, met handige toegang voor batchverwerking, waaronder Azure Machine Learning-gegevenswetenschapstaken.

Azure IoT Central biedt continue gegevensexport naar Azure Event Hubs, Azure Service Bus en aangepaste webhooks. Het is ook mogelijk om op interval gebaseerde gegevensexport naar Azure Blob Storage te configureren. Azure Functions biedt ondersteuning voor bindingen voor Azure Event Hubs en Azure Service Bus, die u kunt gebruiken om ze te integreren met Azure Cosmos DB.

Met Azure IoT Central kunt u bijna realtime inzichten bieden met de ingebouwde analysemogelijkheden. Voor meer geavanceerde analysebehoeften of wanneer u Azure IoT Hub gebruikt, kunt u gegevens naar Azure Stream Analytics leiden. Azure Stream Analytics ondersteunt Azure Cosmos DB SQL API als uitvoer, en schrijft stroomverwerkingsresultaten als items in JSON-indeling in Azure Cosmos DB-containers. Hiermee wordt gegevensarchivering geïmplementeerd en worden ad-hocquery's met lage latentie op ongestructureerde JSON-gegevens mogelijk. De functionaliteit van de wijzigingenfeed detecteert automatisch nieuwe gegevens en wijzigingen in bestaande gegevens. U kunt deze gegevens verwerken door Azure Cosmos DB te verbinden met Azure Synapse Analytics. Nadat de verwerking is voltooid, kunt u deze weer laden naar Azure Cosmos DB voor uitgebreidere rapportage. Het is ook mogelijk om Azure Databricks te gebruiken met Apache Spark-streaming om het volgende te doen:

  • Gegevens laden vanuit Azure IoT Hub.
  • Verwerken om realtime analyses te leveren.
  • Archiveren voor langetermijnretentie en meer rapportage aan Azure-services, zoals Azure Cosmos DB, Azure Blob Storage of Azure Data Lake.