Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Stejně jako mnoho dalších služeb v Azure se Služba Stream Analytics nejlépe používá s dalšími službami k vytvoření většího uceleného řešení. Tento článek popisuje jednoduchá řešení Azure Stream Analytics a různé vzory architektury. Na těchto vzorech můžete stavět a vyvíjet složitější řešení. Vzory popsané v tomto článku lze použít v nejrůznějších scénářích. Příklady vzorů specifických pro scénáře jsou k dispozici v architekturách řešení Azure.
Vytvoření úlohy Stream Analytics pro podporu přehledového panelu v reálném čase
Pomocí Azure Stream Analytics můžete rychle vytvářet řídicí panely a upozornění v reálném čase. Jednoduché řešení přijímá události ze služby Event Hubs nebo IoT Hub a zásobuje řídicí panel Power BI streamovanou datovou sadou. Další informace najdete v podrobném kurzu Analýza podvodných dat volání pomocí Stream Analytics a vizualizace výsledků na řídicím panelu Power BI.
Toto řešení můžete vytvořit během několika minut pomocí webu Azure Portal. Nemusíte provádět rozsáhlé kódování. Místo toho můžete k vyjádření obchodní logiky použít jazyk SQL.
Tento model řešení nabízí nejnižší latenci ze zdroje událostí do řídicího panelu Power BI v prohlížeči. Azure Stream Analytics je jediná služba Azure s touto integrovanou funkcí.
Použití SQL pro řídicí panel
Řídicí panel Power BI nabízí nízkou latenci, ale nemůžete ho použít k vytváření plnohodnotných sestav Power BI. Běžnými reportovacími postupy je nejprve výstup dat do SQL databáze. Potom použijte konektor SQL Power BI k dotazování SQL na nejnovější data.
Když používáte SLUŽBU SQL Database, získáte větší flexibilitu, ale na úkor mírně vyšší latence. Toto řešení je optimální pro úlohy s požadavky na latenci větší než jednu sekundu. Při použití této metody můžete maximalizovat možnosti Power BI k dalšímu analyzování a zpracování dat pro sestavy a mnoho dalších možností vizualizace. Získáte také flexibilitu při používání jiných řešení řídicího panelu, jako je Tableau.
SQL není úložiště dat s vysokou propustností. Maximální propustnost služby SQL Database ze služby Azure Stream Analytics je v současné době přibližně 24 MB/s. Pokud zdroje událostí ve vašem řešení vytvářejí data vyšší rychlostí, musíte použít logiku zpracování ve službě Stream Analytics, abyste snížili výstupní rychlost do SQL. Můžete použít techniky, jako je filtrování, agregace s okny, porovnávání vzorů s časovými spojeními a analytické funkce. Výstupní rychlost pro SQL můžete optimalizovat pomocí technik popsaných ve výstupu Azure Stream Analytics do služby Azure SQL Database.
Začlenění přehledů v reálném čase do aplikace pomocí zasílání zpráv událostí
Druhým nejoblíbenějším využitím Stream Analytics je generování výstrah v reálném čase. V tomto vzoru řešení je možné obchodní logiku ve službě Stream Analytics použít k detekci dočasných a prostorových vzorů nebo anomálií a následnému generování výstrah. Na rozdíl od řešení řídicího panelu, kde Stream Analytics používá Power BI jako upřednostňovaný koncový bod, můžete použít i jiné zprostředkující úložiště dat. Mezi tyto jímky patří Event Hubs, Service Bus a Azure Functions. Jako tvůrce aplikací musíte rozhodnout, která jímka dat bude pro váš scénář nejvhodnější.
Je potřeba implementovat logiku příjemce následných událostí k generování upozornění ve vašem stávajícím obchodním pracovním postupu. Vzhledem k tomu, že ve službě Azure Functions můžete implementovat vlastní logiku, je služba Azure Functions nejrychlejším způsobem, jak tuto integraci provést. Kurz použití funkce Azure Functions jako výstupu úlohy Stream Analytics najdete v tématu Spouštění funkcí Azure Functions z úloh Azure Stream Analytics. Azure Functions také podporuje různé typy oznámení, včetně textu a e-mailu. Logic Apps můžete také použít pro takovou integraci se službou Event Hubs mezi Stream Analytics a Logic Apps.
Služba Azure Event Hubs na druhé straně nabízí nejflexibilnější integrační bod. Řada dalších služeb, jako je Azure Data Explorer, může využívat události ze služby Event Hubs. Služby je možné připojit přímo k jímce služby Event Hubs z Azure Stream Analytics a dokončit řešení. Služba Event Hubs je také zprostředkovatel zasílání zpráv s nejvyšší propustností dostupný v Azure pro takové scénáře integrace.
Dynamické aplikace a weby
Pomocí Azure Stream Analytics a služby Azure SignalR můžete vytvářet vlastní vizualizace v reálném čase, jako je řídicí panel nebo vizualizace map. Když používáte SignalR, můžou být webové klienty aktualizovány a zobrazovat dynamický obsah v reálném čase.
Začlenění přehledů v reálném čase do aplikace prostřednictvím úložišť dat
Většina webových služeb a webových aplikací dnes používá vzor požadavků a odpovědí k poskytování prezentační vrstvy. Model požadavků a odpovědí je jednoduchý k sestavení a dá se snadno škálovat s nízkou dobou odezvy pomocí bezstavového front-endu a škálovatelných úložišť, jako je Azure Cosmos DB.
Velký objem dat často vytváří kritické body výkonu v systému založeném na CRUD. Vzorec řešení event sourcingu se používá k řešení výkonnostních úzkých míst. Dočasné vzory a přehledy jsou také obtížné a neefektivní pro extrakci z tradičního úložiště dat. Moderní aplikace řízené velkým objemem dat často přijímají architekturu založenou na toku dat. Azure Stream Analytics jako výpočetní modul pro data v pohybu je v této architektuře klíčovým prvkem.
V tomto modelu řešení se události zpracovávají a agregují do úložišť dat službou Azure Stream Analytics. Aplikační vrstva komunikuje s úložišti dat pomocí tradičního vzoru požadavků a odpovědí. Vzhledem k tomu, že Stream Analytics dokáže zpracovávat velký počet událostí v reálném čase, je aplikace vysoce škálovatelná, aniž by bylo nutné hromadně navýšit vrstvu úložiště dat. Vrstva úložiště dat je v podstatě materializované zobrazení v systému. Výstup Azure Stream Analytics do služby Azure Cosmos DB popisuje, jak se služba Azure Cosmos DB používá jako výstup Stream Analytics.
V reálných aplikacích, kde je logika zpracování složitá a je potřeba nezávisle upgradovat určité části logiky, lze několik úloh Stream Analytics sestavit společně se službou Event Hubs jako zprostředkující zprostředkovatel událostí.
Tento model zlepšuje odolnost a možnosti správy systému. Přestože ale Stream Analytics zaručuje přesně jedno zpracování, existuje malá šance, že se duplicitní události dostanou do zprostředkující služby Event Hubs. Je důležité, aby podřízená úloha Stream Analytics odstraňovala duplicitní události pomocí logických klíčů v okně zpětného vyhledávání. Další informace o doručení událostí naleznete v tématu Záruky doručení událostí .
Použití referenčních dat pro přizpůsobení aplikace
Funkce referenčních dat Azure Stream Analytics je navržená speciálně pro přizpůsobení koncových uživatelů, jako jsou prahová hodnota pro upozorňování, pravidla zpracování a geografické zóny. Aplikační vrstva může přijímat změny parametrů a ukládat je do služby SQL Database. Úloha Stream Analytics se pravidelně dotazuje na změny z databáze a zpřístupňuje parametry přizpůsobení prostřednictvím připojení referenčních dat. Další informace o tom, jak používat referenční data pro přizpůsobení aplikace, naleznete v tématu Referenční data SQL a připojení referenčních dat.
Tento vzor lze také použít k implementaci stroje pravidel, kde jsou prahové hodnoty pravidel definovány z referenčních dat. Pro více informací o pravidlech se podívejte na Zpracování konfigurovatelných pravidel na základě prahových hodnot v Azure Stream Analytics.
Přidání strojového učení do přehledů v reálném čase
Integrovaný model detekce anomálií v Azure Stream Analytics představuje pohodlný způsob, jak zavést Machine Learning do aplikace v reálném čase. Širší škálu potřeb strojového učení najdete v tématu Integrace Azure Stream Analytics se službou Azure Machine Learning. Modely můžete nasadit ze služby Azure Machine Learning a volat je jako uživatelem definované funkce (UDF) v dotazech Stream Analytics.
Pro pokročilé uživatele, kteří chtějí začlenit online trénink a vyhodnocení do stejného kanálu Stream Analytics, je zde příklad, jak to provést s lineární regresí.
Datové sklady v reálném čase
Dalším běžným vzorem je datové sklady v reálném čase, označované také jako streamovaný datový sklad. Kromě událostí přicházejících do event Hubs a IoT Hubu z vaší aplikace je možné použít Azure Stream Analytics běžící na IoT Edge k plnění požadavků na čištění dat, redukci dat a ukládání dat a předávání. Stream Analytics běžící na IoT Edge může řádně zvládnout omezení šířky pásma a problémy s připojením v systému. Stream Analytics může při zápisu do Azure Synapse Analytics podporovat propustnost až 200 MB/s.
Archivace dat v reálném čase pro analýzy
Většina aktivit datových věd a analýz stále probíhá offline. Data v Azure Stream Analytics můžete archivovat prostřednictvím výstupních formátů Azure Data Lake Store Gen2 a Parquet. Tato funkce eliminuje tření, aby se data odesílala přímo do Azure Synapse Analytics, Azure Databricks, Microsoft Fabric a Azure HDInsight. Azure Stream Analytics se v tomto řešení používá jako modul ETL (Extract-Transform-Load) téměř v reálném čase. Archivovaná data v Data Lake můžete prozkoumat pomocí různých výpočetních modulů.
Použít referenční data pro obohacení
Rozšiřování dat je často požadavkem pro moduly ETL. Azure Stream Analytics podporuje rozšiřování dat s referenčními daty z SQL Database i azure Blob Storage. Obohacování dat lze provádět pro data, která přistávají v Azure Data Lake i Azure Synapse Analytics.
Zprovoznění přehledů z archivovaných dat
Pokud zkombinujete model offline analýz se vzorem aplikace téměř v reálném čase, můžete vytvořit smyčku zpětné vazby. Smyčka zpětné vazby umožňuje aplikaci automaticky upravit změny vzorů v datech. Tato smyčka zpětné vazby může být stejně jednoduchá jako změna prahové hodnoty pro upozorňování nebo složité jako opětovné natrénování modelů strojového učení. Stejnou architekturu řešení je možné použít pro úlohy ASA běžící v cloudu i ioT Edge.
Integrace Apache Kafka
Stream Analytics podporuje Apache Kafka jako vstup i výstup prostřednictvím služby Azure Event Hubs s koncovým bodem Kafka. Tento model umožňuje:
- Migrace z existujících architektur založených na Platformě Kafka do Azure
- Hybridní scénáře připojení místních clusterů Kafka k Azure
- Integrace s nástroji a konektory v ekosystému Apache Kafka
Výstup Delta Lake pro architektury lakehouse
V případě moderních architektur lakehouse může Stream Analytics zapisovat přímo do formátu Delta Lake ve službě Azure Data Lake Storage Gen2. Delta Lake poskytuje:
- Transakce ACID pro spolehlivý příjem dat
- Vynucování schématu a vývoj
- Možnosti časového cestování pro správu verzí dat
- Jednotný přístup k dávkovému a streamovanému zpracování dat
Výběr správného vzoru
Tato tabulka vám pomůže vybrat vhodný vzor pro váš scénář:
| Scénář | Doporučený vzor | Klíčová výhoda |
|---|---|---|
| Řídicí panely v reálném čase | Datová sada streamování Power BI | Nejnižší latence |
| Komplexní reportování | SQL Database + Power BI | Úplné možnosti BI |
| Výstrahy řízené událostmi | Event Hubs + Azure Functions (Centra událostí a funkce Azure) | Flexibilní integrace |
| Data Lake Analytics | Výstup Delta Lake | Transakce ACID |
| Úlohy Kafka | Koncový bod Kafka služby Event Hubs | Kompatibilita protokolu |
Monitorování úloh ASA
Úlohu Azure Stream Analytics je možné spustit 24/7 pro průběžné zpracování příchozích událostí v reálném čase. Její záruka dostupnosti je zásadní pro stav celkové aplikace. I když je Stream Analytics jedinou službou streamovací analýzy v oboru, která nabízí záruku dostupnosti 99,9 %, stále máte určitou úroveň výpadku. V průběhu let služba Stream Analytics zavedla metriky, protokoly a stavy úloh, které odrážejí stav úloh. Všechny se zobrazí prostřednictvím služby Azure Monitor a je možné je exportovat do pracovního prostoru služby Log Analytics pro hlubší analýzu. Další informace najdete v tématu Monitorování úlohy Stream Analytics pomocí webu Azure Portal.
Monitorování je potřeba provést dvěma klíčovými věcmi:
-
Nejprve je potřeba se ujistit, že je úloha spuštěná. Bez úlohy ve spuštěném stavu se negenerují žádné nové metriky ani protokoly. Úlohy se můžou změnit na stav selhání z různých důvodů, včetně vysoké úrovně využití SU (to znamená nedostatku prostředků).
-
Tato metrika odráží, jak daleko zaostává váš zpracovatelský kanál v reálném čase (v sekundách). Některé zpoždění jsou přičítány k vlastní logice zpracování. Díky tomu je monitorování rostoucího trendu mnohem důležitější než monitorování absolutní hodnoty. Zpoždění stabilního stavu by mělo být řešeno návrhem aplikace, nikoli monitorováním nebo upozorněními.
Nastavení upozornění a řídicích panelů
Konfigurace upozornění služby Azure Monitor pro proaktivní monitorování:
- Využití jednotek SU – výstraha při trvalém překročení 80 %, aby se předešlo selhání úlohy
- Zpoždění vodoznaku – upozornění na zvýšení trendů, které označují prodlevu zpracování
- Vstupní/výstupní události – Monitorování náhlého poklesu indikující problémy s připojením
- Chyby za běhu – Sledování selhání deserializace a převodu dat
Pro centralizovanou pozorovatelnost exportujte metriky Stream Analytics a protokoly do pracovního prostoru služby Log Analytics. To umožňuje:
- Korelace a analýza mezi úlohami
- Vlastní dotazy Kusto pro hlubokou diagnostiku
- Integrace s řídicími panely a sešity Azure
Při selhání jsou protokoly aktivit a diagnostické protokoly nejvhodnějším místem, kde začít hledat chyby.
Vytváření odolných a důležitých aplikací
Bez ohledu na záruku SMLOUVY SLA služby Azure Stream Analytics a způsobu, jakým pečlivě spouštíte kompletní aplikaci, dochází k výpadkům. Pokud je vaše aplikace důležitá, musíte být připraveni na výpadky, abyste mohli řádně obnovit.
Pro upozorňování aplikací je nejdůležitější zjistit další výstrahu. Při obnovování můžete úlohu restartovat z aktuálního času a ignorovat předchozí výstrahy. Sémantika času spuštění úlohy je určena prvním časem výstupu, nikoli prvním časem vstupu. Vstup se znovu vrátí zpět, aby se zajistilo, že první výstup v zadaném čase bude dokončený a správný. V důsledku toho nedostanete částečné agregace a upozornění nebudou neočekávaně aktivována.
Můžete také zvolit spuštění výstupu z určitého časového období v minulosti. Zásady uchovávání informací služby Event Hubs i IoT Hub obsahují přiměřené množství dat, která umožňují zpracování z minulosti. Kompromisem je, jak rychle můžete dohnat aktuální čas a začít generovat včasné nové výstrahy. Data rychle ztratí svou hodnotu v průběhu času, takže je důležité rychle dohnat aktuální čas. Existují dva způsoby, jak rychle dohnat:
- Zajistěte více prostředků (SU) při dohánění.
- Restartujte od aktuálního času.
Restartování z aktuálního času je jednoduché, ale jako kompromis při zpracování zanechává mezeru. Restartování tímto způsobem může být vhodné pro scénáře upozorňování, ale může činit potíže pro scénáře dashboardů a je nepřijatelný pro archivaci a datové sklady.
Zřizování dalších prostředků může proces urychlit, ale dopad nárůstu rychlosti zpracování je složitý.
Otestujte, že je vaše úloha škálovatelná na větší počet jednotek SU. Ne všechny dotazy jsou škálovatelné. Musíte se ujistit, že je dotaz paralelizovaný.
Ujistěte se, že v upstream Event Hubs nebo IoT Hubu existuje dostatek oddílů, abyste mohli přidat více jednotek propustnosti (TUs) pro škálování vstupní propustnosti. Mějte na paměti, že každý Event Hubs TU dosahuje maximální výstupní rychlosti 2 MB/s.
Ujistěte se, že jste zřídili dostatek prostředků ve výstupních úložištích (jako SQL Database, Azure Cosmos DB), aby nedošlo ke škrcení při nárůstu výstupu, což může někdy způsobit, že se systém zablokuje.
Nejdůležitější je předvídat změnu rychlosti zpracování, otestovat tyto scénáře před přechodem do produkčního prostředí a připravit se na správné škálování zpracování během doby obnovení selhání.
V extrémním scénáři, kdy jsou všechny příchozí události zpožděné, je možné, že se všechny zpožděné události zahodí, pokud jste u své úlohy použili okno pro pozdní příchozí. Vynechávání událostí může na začátku působit záhadně; Vzhledem k tomu, že Stream Analytics je analytický nástroj pro zpracování v reálném čase, očekává, že příchozí události budou blízko aktuálního času. Musí vypustit události, které porušují tato omezení.
Lambda architektury nebo proces doplnění dat
Předchozí vzor archivace dat se naštěstí dá použít ke zpracování těchto pozdních událostí elegantně. Myšlenka spočívá v tom, že archivační úloha zpracovává příchozí události v čase příjezdu a archivuje události do příslušného časového segmentu ve službě Azure Blob nebo Azure Data Lake Store s časem události. Nezáleží na tom, jak pozdě událost přijde, nikdy se neodhodí. Vždy se dostane do správného časového rozmezí. Během obnovení je možné znovu zpracovat archivované události a obnovit výsledky do zvoleného úložiště. Podobá se tomu, jak se implementují vzory lambda.
Proces zálohování musí být proveden pomocí offline systému dávkového zpracování, který má pravděpodobně jiný programovací model než Azure Stream Analytics. To znamená, že musíte znovu vytvořit celou logiku zpracování.
Pro doplnění je stále důležité alespoň dočasně zřídit více prostředků pro výstupní uzly, aby zvládly vyšší datový tok než potřeby zpracování v stabilním stavu.
| Scénáře | Restartujte pouze od teď | Restart od posledního zastaveného místa | Restartovat odteď + doplnit archivovanými událostmi |
|---|---|---|---|
| Řídicí panely | Vytvoří mezeru. | OK pro krátký výpadek | Použít při dlouhém výpadku |
| Upozorňování | Přijatelné | OK pro krátký výpadek | Není nutné |
| Aplikace pro sledování událostí | Přijatelné | OK pro krátký výpadek | Použít při dlouhém výpadku |
| Datové sklady | Ztráta dat | Přijatelné | Není nutné |
| Offline analýzy | Ztráta dat | Přijatelné | Není nutné |
Spojení všech částí dohromady
Není těžké si představit, že všechny vzory řešení uvedené dříve je možné kombinovat v celistvém komplexním systému. Kombinovaný systém může zahrnovat řídicí panely, upozorňování, aplikaci event sourcing, datové sklady a možnosti offline analýz.
Klíčem je navrhnout systém v kompozibilních vzorech, takže je možné každý subsystém sestavit, otestovat, upgradovat a obnovit nezávisle.
Další kroky
Seznámili jste se s různými vzory řešení pomocí Azure Stream Analytics. V dalším kroku se můžete do tématu ponořit hlouběji a vytvořit si svoji první úlohu Stream Analytics: