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
Tok dat
- 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.
- 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.
- 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.
- 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.
- Microsoft Power BI můžou použít vaši uživatelé k analýze dat z datového skladu.
- 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.
- 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.
- 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
- Ve vrstvě pro transformaci a analýzu jsme mohli k provádění analýz streamování použít HDInsight, hdinsight Spark nebo Azure Stream Analytics a Azure Functions provádět transformace datových částí zprávy.
- ve vrstvě úložiště služby by se Azure Průzkumník dat a Time Series Insights mohli použít k ukládání zpráv IoT. Obě tyto služby také poskytují bohatou analytické možnosti.
- odkaz na Synapse je preferované řešení microsoftu pro analýzu nad Cosmos DBmi daty.
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.