Upravit

Sdílet prostřednictvím


Azure Cosmos DB v úlohách IoT

Azure Cosmos DB
Azure Databricks
Azure Functions
Azure IoT Hub
Power BI

Tento článek popisuje úlohu internetu věcí (IoT), která spoléhá na několik funkcí databázové služby Azure Cosmos DB. Azure Cosmos DB je vícemodelová databáze vytvořená pro globální distribuci a horizontální škálování.

Globální distribuce transparentně škáluje a replikuje data napříč oblastmi Azure. Propustnost a úložiště můžete škálovat po celém světě a platit jenom za požadovanou částku. Okamžité elastické škálování se přizpůsobí různým a nepředvídatelným úlohám IoT, aniž by bylo nutné obětovat výkon příjmu dat nebo dotazů.

Azure Cosmos DB je ideální pro úlohy IoT, protože dokáže:

  • Ingestování telemetrických dat zařízení ve vysoké míře a vracení indexovaných dotazů s nízkou latencí a vysokou dostupností
  • Ukládání formátu JSON od různých dodavatelů zařízení, což poskytuje flexibilitu ve schématu datové části.
  • Pomocí koncových bodů rozhraní API kompatibilních s protokolem wire pro Cassandra, MongoDB, SQL, Gremlin atd. a databází tabulek a integrovanou podporu pro soubory Jupyter Notebook.

Potenciální případy použití

  • Pomocí integrovaných globálně distribuovaných funkcí Služby Azure Cosmos DB můžete povolit čtení i zápis s nízkou latencí pro vysoce responzivní aplikace IoT.
  • Zpracování dat od různých dodavatelů zařízení a datových typů

Architektura

Diagram znázorňující roli služby Azure Cosmos DB v architektuře řešení Azure IoTStáhněte si soubor aplikace Visio s touto architekturou.

Tok dat

  1. Senzory IoT a hraniční zařízení odesílají události jako streamy zpráv prostřednictvím služby Azure IoT Hub do vrstvy analýzy a transformace. IoT Hub může po určitou dobu ukládat datové proudy do oddílů.

  2. Azure Databricks se strukturovaným streamováním Apache Sparku shromažďuje zprávy ze služby IoT Hub v reálném čase, zpracovává data na základě obchodní logiky a odesílá data do úložiště. Strukturované streamování může poskytovat analýzy v reálném čase, jako je výpočet klouzavých průměrů nebo minimálních a maximálních hodnot v časových obdobích.

  3. Azure Cosmos DB ukládá zprávy zařízení jako dokumenty JSON v horkém úložišti dat. Azure Cosmos DB dokáže ověřit schémata JSON od různých dodavatelů zařízení.

    Vrstva úložiště se také skládá z:

  4. Microsoft Power BI analyzuje datový sklad.

  5. Prezentační vrstva používá data z vrstvy úložiště k vytváření webových, mobilních aplikací a aplikací API.

  6. Pokaždé, když přijde nová nebo aktualizovaná zpráva zařízení, aktivuje kanál změn služby Azure Cosmos DB funkci Azure Functions.

  7. Funkce určuje, jestli zpráva vyžaduje akci zařízení, například restartování. Pokud ano, funkce se připojí ke službě IoT Hub pomocí rozhraní API služby IoT Hub a zahájí akci zařízení. Tato funkce může zahájit akci pomocí dvojčat zařízení, cloudových zpráv zařízení nebo přímých metod.

Komponenty

Tato úloha používá následující komponenty Azure:

Azure Cosmos DB

Tato úloha IoT zviditelní službu Azure Cosmos DB, globálně distribuovanou databázi s více modely. Úloha používá následující funkce služby Azure Cosmos DB:

  • Úrovně konzistence. Azure Cosmos DB podporuje pět úrovní konzistence čtení, od nejsilnějšího po nejslabší: silná, ohraničená neautnost, relace, konzistentní předpona a případná. Obecně platí, že silnější konzistence vede k nižší dostupnosti, delší latenci a nižší propustnosti. Na základě požadavků na úlohy můžete zvolit úroveň konzistence.

  • Hodnota TTL (Time to Live) Azure Cosmos DB může po určitém časovém období automaticky odstraňovat položky z kontejneru. Tato funkce umožňuje službě Azure Cosmos DB fungovat jako horké úložiště dat pro nedávná data s dlouhodobými daty uloženými v úložišti Azure Blob Cold Storage.

  • Kanál změn. Funkce kanálu změn zobrazí seřazený seznam změněných dokumentů v pořadí, v jakém byly změněny. Každá nová událost v kanálu změn kontejneru Azure Cosmos DB automaticky aktivuje malou reaktivní funkci Azure Functions. V závislosti na obsahu dokumentu JSON se funkce může připojit k rozhraní API služby Azure IoT Hub a provést akci na zařízení.

  • Jednotky žádostí (RU) RU jsou výpočetní jednotky, které měří propustnost služby Azure Cosmos DB. Jednotky RU můžete použít k dynamickému škálování služby Azure Cosmos DB směrem nahoru a dolů a současně udržovat dostupnost a optimalizovat náklady a výkon.

  • Dělení. Klíč oddílu určuje, jak Azure Cosmos DB směruje data v oddílech. ID zařízení IoT je obvyklým klíčem oddílu pro aplikace IoT.

Další komponenty Azure

Řešení také používá následující komponenty Azure:

  • Azure IoT Edge spouští aplikace na hraničních zařízeních, jako jsou modely strojového učení.

  • Azure IoT Hub funguje jako cloudová brána, která ingestuje telemetrii zařízení ve velkém měřítku. IoT Hub podporuje komunikaci zpět se zařízeními, což umožňuje odesílání akcí z cloudu do IoT Edge do zařízení.

  • Azure Databricks se strukturovaným streamováním Sparku je škálovatelný systém zpracování datových proudů odolný proti chybám, který nativně podporuje dávkové a streamované úlohy. Azure Databricks je vrstva transformace a analýzy a připojuje se ke koncovému bodu kompatibilnímu s centrem událostí služby IoT Hub pomocí knihovny Azure-eventhubs-spark_2.11:2.3.6 Maven.

  • Azure Blob Storage poskytuje škálovatelné, levné dlouhodobé úložiště studených dat pro nestrukturovaná data.

  • Azure SQL Database je relační databáze pro transakční a další data mimo IoT.

  • Azure Synapse Analytics je platforma datového skladu a generování sestav pro podnikové datové sklady a analýzy velkých objemů dat. Synapse Analytics obsahuje agregovaná data ze služby Azure SQL Database a Azure Cosmos DB.

    Azure Synapse Link pro Azure Cosmos DB umožňuje analýzu provozních dat Azure Cosmos DB téměř v reálném čase bez jakéhokoli dopadu na výkon nebo náklady na transakční úlohy. Synapse Link používá dva analytické moduly v pracovním prostoru Azure Synapse: BEZserverové SQL a fondy Sparku.

  • Power BI je sada nástrojů pro obchodní analýzy pro analýzu dat a sdílení přehledů. Power BI může dotazovat sémantický model uložený ve službě Azure Analysis Services nebo se může dotazovat přímo na Synapse Analytics.

  • Aplikace Azure Service vytváří webové a mobilní aplikace. Aplikace Azure API umožňuje aplikacím třetích stran využívat rozhraní API na základě dat z obslužné vrstvy.

  • Azure Functions je bezserverová výpočetní platforma založená na událostech, která může fungovat ve velkém měřítku v cloudu a integrovat služby pomocí triggerů a vazeb. Azure Functions může překládat formáty zpráv IoT nebo aktivovat akce při připojení ke kanálu změn služby Azure Cosmos DB.

Alternativy

  • Místo Azure Databricks může transformační a analytická vrstva použít HDInsight Storm, HDInsight Spark nebo Azure Stream Analytics k analýze streamování a pomocí Azure Functions transformovat datové části zpráv.

  • Vrstva úložiště služby může k ukládání zpráv IoT použít Azure Data Explorer . Tato služba má také bohaté možnosti analýzy.

Důležité informace

Azure Cosmos DB má limit 20 GB pro jeden logický oddíl. U většiny řešení IoT tato velikost stačí. Pokud ne, můžete:

  • Nastavte klíč oddílu na umělé pole a přiřaďte pole složenou hodnotu, například ID zařízení + aktuální měsíc a rok. Tato strategie zajišťuje vysokou kardinalitu hodnot pro dobrý návrh oddílů. Další informace najdete v tématu Volba klíče oddílu.

  • Na základě životního cyklu dat můžete starší data Azure Cosmos DB přesunout do studeného úložiště, jako je Azure Blob Storage. Pomocí kombinace kanálu změn můžete replikovat data do studeného úložiště a hodnotu TTL můžete použít k automatickému odstranění dat z kontejneru po určitém časovém období.

Další kroky