IoT s využitím služby Cosmos DB

Cosmos DB
Databricks
Functions
IoT Hub
Power BI

Využijte možnost okamžitého a elastického škálování pro zajištění různorodých a nepředvídatelných úloh IoT bez omezení výkonu dotazů nebo ingestování.

Azure Cosmos DB je globálně distribuovaná databáze microsoftu pro více modelů. Azure Cosmos DB byla od základu sestavena s globální distribucí a horizontálním škálováním na jádru. Nabízí globální distribuci klíč napříč libovolným počtem oblastí Azure tím, že transparentně škáluje a replikuje vaše data všude, kde jsou vaši uživatelé. Můžete elasticky škálovat propustnost a úložiště po celém světě a platit jenom za propustnost a úložiště, které potřebujete.

Cosmos DATABÁZE je ideálním řešením pro řešení IoT. Cosmos DB může ingestovat data telemetrie zařízení s vysokými sazbami a může obsluhovat indexované dotazy s nízkou latencí a vysokou dostupností.

Cosmos DB je multi-modelová databáze s protokolem rozhraní API kompatibilním s elektronickým protokolem pro Cassandra, MongoDB, SQL, Gremlin, Etcd a tabulka společně s integrovanou podporou pro Jupyter Notebook soubory.

Architektura

Architektura

Tok dat

  1. Události vygenerované ze zařízení IoT se odesílají do vrstvy analyzovat a transformovat prostřednictvím Azure IoT Hub jako datový proud zpráv. Azure IoT Hub ukládá streamy dat v oddílech, aby bylo možné určitou dobu konfigurovat.
  2. Azure Databricks spouští streamování Apache Spark, ze IoT Hub zpracovává zprávy v reálném čase, zpracovává data na základě obchodní logiky a odesílá data do obsluhy úložiště. Datové proudy Sparku umožňují analýzu v reálném čase, jako je například výpočet klouzavých průměrů, minimální a maximální hodnoty v časových obdobích.
  3. zprávy zařízení jsou uloženy v Cosmos DB jako dokumenty JSON. To je považováno za aktivní úložiště dat. různá schémata json, která představují jiné dodavatele zařízení, mohou být uložena v Cosmos DB nebo převedena na kanonické schéma JSON.
  4. Vrstva úložiště se skládá z těchto součástí:
    • směrování zpráv v azure Blob Storage-IoT Hub může ukládat nezpracované zprávy zařízení IoT do úložiště objektů blob v azure a umožnit tak službě Blob storage fungovat jako levné a dlouhodobé úložiště studených dat.
    • Azure SQL Database – využívá Azure SQL k ukládání transakčních a relačních dat (například fakturační data, role uživatelů).
    • Azure Synapse Analytics (dříve Azure SQL Data Warehouse) – pro datový sklad řešení. naplněné pomocí Azure Data Factory pomocí agregovaných dat z Cosmos DB a Azure SQL.
  5. Microsoft Power BI můžou použít vaši uživatelé k analýze dat z datového skladu.
  6. Webové, mobilní a jiné aplikace mohou být postaveny na vrstvě úložiště. Můžete například vystavit rozhraní API na základě dat vrstvy úložiště pro použití třetích stran.
  7. pokaždé, když se v Cosmos DB přidá nebo aktualizuje zpráva zařízení, použijte ke spuštění funkce Azure functions Cosmos DB.
  8. Některé zprávy zařízení (například kód chyby) můžou vyžadovat, aby se na zařízení prováděla akce. Pomocí rozhraní API služby Azure IoT Hub se může služba Azure Functions připojit k Azure IoT Hub a provést na zařízení akci (třeba restartování) pomocí těchto akcí:
    • Dvojčata zařízení
    • Zprávy z cloudu do zařízení
    • Přímé metody

Komponenty

Tato architektura používá následující součásti Azure:

  • Azure IoT Hub funguje jako cloudová brána, která ingestuje telemetrii zařízení ve velkém měřítku. IoT Hub podporuje i obousměrnou komunikaci zpátky do zařízení, což umožňuje odesílat akce z cloudu nebo Azure IoT Edge do zařízení. Azure IoT Edge můžete použít ke spouštění aplikací na hraničních zařízeních, jako jsou modely strojového učení.
  • Azure Databricks se streamem Apache Spark se nachází ve vrstvě pro transformaci a analýzu. Datacihly používají knihovnu Azure-eventhubs-spark_2 .11:2.3.6 Maven k připojení ke koncovému bodu kompatibilnímu s centrem událostí IoT Hub. Apache Spark streaming je škálovatelný systém pro zpracování datových proudů odolný proti chybám, který nativně podporuje zatížení Batch i streamování.
  • Azure Cosmos DB je globálně distribuovaná databáze s více modely.
    • úrovně konzistence – Cosmos DB podporují 5 úrovní konzistence (silná, ohraničená neaktuálnost, relace, konzistentní předpona, případně), což vám umožní dosáhnout kompromisů mezi konzistencí čtení a dostupností, latencí a propustností.
    • hodnota TTL-Azure Cosmos DB poskytuje možnost automaticky odstraňovat položky z kontejneru po určitém časovém období. to umožňuje Cosmos DB fungovat jako aktivní úložiště dat pro poslední data s dlouhodobými daty uloženými v úložišti objektů Blob Azure.
    • Změna kanálu – vypíše seřazený seznam dokumentů, které se změnily v pořadí, ve kterém byly změněny. můžete vytvořit malé proaktivní Azure Functions, které se automaticky aktivují pro každou novou událost v kanálu změn kontejneru Azure Cosmos. V závislosti na obsahu dokumentu JSON se může služba Azure Functions připojit k rozhraní API služby Azure IoT Hub Service a provádět akci na zařízení pomocí typu "vlákna zařízení", zasílání zpráv z cloudu na zařízení nebo přímé metody.
    • jednotka žádosti (RU) – je míra propustnosti v Azure Cosmos DB. Ru jsou výpočetní jednotky pro výkon i náklady. Pomocí ru můžete dynamicky škálovat směrem nahoru a dolů a přitom zachovat dostupnost, optimalizaci pro náklady, výkon a dostupnost ve stejnou dobu.
    • dělení – klíč oddílu, který určuje, jak se budou data směrovat do různých oddílů, a to Cosmos DB a v kontextu konkrétního scénáře se musí vydávat smysl. ID zařízení IoT je všeobecně klíč oddílu "přirozených" pro aplikace IoT.
  • Azure SQL Database je relační databáze pro transakční a jiná data mimo IoT.
  • Azure Synapse Analytics je platforma pro datový sklad a vytváření sestav obsahující agregovaná data z Azure SQL a Cosmos DB. Pro podnikové datové sklady a analýzy velkých objemů dat.
  • odkaz na Azure Synapse pro Azure Cosmos DB umožňuje spouštět analýzy prakticky v reálném čase nad provozními daty v Azure Cosmos DB, aniž by to mělo dopad na výkon nebo náklady na transakční úlohy, a to pomocí dvou analytických modulů, které jsou dostupné z vašeho pracovního prostoru Azure Synapse: SQL serverových a sparkových fondů.
  • Power BI je sada nástrojů pro obchodní analýzy, která umožňuje analyzovat data a sdílet přehledy. Power BI se může dotazovat na sémantický model uložený v Azure Analysis Services nebo může přímo dotazovat Azure Synapse.
  • Azure App Services můžete použít k sestavení webových a mobilních aplikací. Aplikace API Azure se dá použít k vystavení dat třetím stranám na základě dat uložených ve vrstvě obsluhy.
  • Azure Functions lze použít k překladu datových částí zprávy IoT (například z binárního formátu do formátu JSON) nebo akcí triggeru při připojení k Cosmos DB změně kanálu. Azure Functions je výpočetní platforma bez serveru řízená událostmi. Můžete vyvíjet a ladit v místním prostředí bez dalšího nastavování, nasadit a provozovat v cloudu ve velkém měřítku a integrovat služby s využitím triggerů a vazeb.

Alternativy

Požadavky

  • Cosmos DATABÁZE má limit 20 GB (v minulosti byl 10 GB) pro jeden logický oddíl. Pro většinu řešení IoT je tato velikost dostačující. V takovém případě doporučujeme jednu z těchto akcí:
    • Nastavení klíče oddílu na umělé pole a přiřazení složené hodnoty (například ID zařízení + aktuální měsíc a rok). Tím se zajistí extrémně vysoká mohutnost hodnot.
    • úroveň staré Cosmos DB data z úložiště do studeného úložiště (například Azure Blob Storage) pomocí kombinace hodnoty TTL pro automatické vyřazení dat z Cosmos DB a změny kanálu na replikaci dat do studeného úložiště.

Další kroky

přečtěte si následující články o IoT a Cosmos DB.