Tento článek popisuje řešení pro architekturu HTAP (Hybrid Transaction/Analytical Processing). Při zpracování transakcí používá většina systémů úlohy s nízkou latencí a vysokým objemem provozu. Pro analýzy jsou úlohy s vyšší latencí a menším objemem obvyklejší. Architektury HTAP nabízejí řešení pro oba typy úloh. Pomocí databází v paměti HTAP konsoliduje technologie pro optimalizaci dotazů na velké objemy dat.
Azure SQL Database tvoří jádro tohoto řešení HTAP. Tento přístup rozděluje data do horizontálně distribuovaných databází neboli horizontálních oddílů. Mezi další hlavní součásti patří:
- Azure Event Hubs pro příjem dat.
- Azure Stream Analytics pro zpracování dat.
- Azure Functions pro dělení.
- Azure Blob Storage úložiště událostí.
Společně tyto služby poskytují řešení HTAP, které:
- Snižuje náklady tím, že poskytuje rychlý přístup k přehledům o archivovaných datech. Latence na studené cestě v tomto řešení poklesnou z hodin na méně než sekundy.
- Zjednodušuje archivaci automatickým přidáváním dat do dlouhodobého úložiště.
- Maximalizuje škálovatelnost horizontálním dělením dat a použitím elastické databáze.
Potenciální případy použití
Toto řešení platí pro organizace, které potřebují přístup s nízkou latencí k velkým objemům historických dat. Mezi příklady patří:
- Online maloobchodní prodejci, kteří přistupují k historii zákazníků a demografickým informacím a poskytují individuální prostředí.
- Poskytovatelé energie, kteří kombinují data zařízení s analýzou pro správu inteligentních rozvodných sítí.
- Firmy, které se zapojují do prevence podvodů tím, že identifikují vzory v historických datech a datech v reálném čase.
- Výrobci, kteří při identifikaci problémů spoléhají na zpracování událostí v reálném čase.
Architektura
Stáhněte si soubor SVG této architektury.
- Event Hubs ingestuje telemetrii z místních zařízení.
- Blob Storage zachycuje Event Hubs dat a ukládá je pro budoucí analýzu.
- Stream Analytics data zpracuje. V horké cestě řešení se Azure Cosmos DB dotazuje na data z předchozích dvou měsíců. Azure Cosmos DB zaručuje dobu odezvy v řádu milisekund.
- Pokud během zpracování nebo ukládání dat dojde k chybám, systém je zaznamená do služby Azure Table Storage.
- Azure Functions k archivaci SQL Database používá klientskou knihovnu elastické databáze. Tento proces rozděluje data, aby se optimalizovaly operace vložení. Řešení vytváří horizontální oddíly horizontálním rozdělením dat do několika databází Azure SQL databázemi. Každá databáze používá clusterovaný sloupcový index rozdělený do oddílů ke komprimaci tabulek. Doby odezvy na této studené cestě jsou obvykle nižší než jedna sekunda.
- Cluster Azure Databricks znovu zpracuje objekt blob s Storage daty. Konkrétně Azure Databricks deserializuje soubory Avro a odešle data do Event Hubs pro volitelnou analýzu.
Komponenty
Event Hubs je plně spravovaná streamovací platforma pro velké datové proudy.
Stream Analytics poskytuje zpracování bez serveru v reálném čase spouštěním dotazů v cloudu a na hraničních zařízeních.
Azure Cosmos DB je globálně distribuovaná databáze pro více modelů. Azure Cosmos DB vám může elasticky škálovat propustnost a úložiště napříč libovolným počtem geografických oblastí.
Tabulka Storage je součástí Azure Storage. Tato služba ukládá strukturovaná data NoSQL v cloudu.
SQL Database je služba relačních databází, která je součástí rodiny SQL Azure. Jako plně spravovaná služba SQL Database funkce správy databází. SQL Database také automatizované funkce využívající AI, které optimalizují výkon a stálost. Možnosti výpočetních prostředků bez serveru a úložiště Hyperscale automaticky škálují prostředky na vyžádání.
Nástroje elastické databáze pomáhají vytvářet a spravovat databáze s horizontálním navýšením velikosti. Tato funkce SQL Database obsahuje klientskou knihovnu, kterou můžete použít k vývoji shardovaných aplikací.
Blob Storage je služba, která je součástí Storage. Blob Storage nabízí optimalizované cloudové úložiště objektů pro velké objemy nestrukturovaných dat.
Azure Databricks je platforma pro analýzu dat. Jeho plně spravované clustery Spark zpracovávají velké datové proudy z více zdrojů. Azure Databricks čistí a transformuje bezstruktury datové sady. Kombinuje zpracujená data se strukturovaných daty z provozních databází nebo datových skladů. Azure Databricks také trénuje a nasazovat škálovatelné modely strojového učení a hlubokého učení.
Power BI je kolekce analytických služeb a aplikací. Pomocí nástroje Power BI připojit a zobrazit nesouvisející zdroje dat.
Požadavky
Toto řešení předpokládá následující předpoklady:
- Po archivaci dat je nemusíte aktualizovat ani odstraňovat.
- Schéma dat se v průběhu času mění jen minimálně.
Při implementaci tohoto řešení mějte na paměti následující skutečnosti:
Otázky výkonu
Optimalizace výkonu:
- Kombinování horizontálního dělení s kompresí tabulek
- Rozdělte tabulky podle data. Každý horizontální oddíl obsahuje data z jiného období.
- Zarovnejte indexy s dělením data.
Pokud chcete škálovat až na více než 50 000 zpráv za sekundu, použijte klientskou knihovnu elastické databáze ze služby Functions k:
- Seskupte zprávy podle oddílů.
- Rozdělte příkazy insert do malých dávek.
Tento přístup je vhodný pro systémy, které používají 10 databází typu Standard S3 SQL Database. K hostování sloupcového indexu potřebujete alespoň úroveň Standard.
Pro nejlepší výkon během operací vložení použijte parametry s hodnotou tabulky s uloženými procedurami.
Při použití příkazu CREATE COLUMNSTORE INDEX použijte možnost COLUMNSTORE_ARCHIVE. Tato možnost poskytuje nejvyšší možnou úroveň komprese. Vysoká úroveň komprese prodlužuje dobu, kterou potřebujete k ukládání a načítání dat. Výsledný výkon V/V by ale měl být uspokojivý.
Aspekty zabezpečení
- Použijte horizontální oddíly, abyste mohli rozšířit svůj systém tak, aby splňoval náročné úlohy. Při použití shardovaných databází můžete přidávat nebo odebírat horizontální oddíly pro horizontální navýšení nebo navýšení velikosti. Nástroj split-merge vám pomůže rozdělit a sloučit oddíly.
- Využijte výhod funkce škálování ve Functions. Vytvářejte funkce, které se škálovat na základě využití procesoru a paměti. Nakonfigurujte funkce tak, aby s otevíraly nové instance, aby vyhovovaly neočekávaným úlohám.
- Zvětšete velikost clusteru Azure Databricks a navýšte tak škálování opětovného zpracování souborů Avro. Řešení používá ke Azure Databricks souborů Avro, které objekt blob Storage zaznamenaného. Clustery Spark v Azure Databricks mohou zpracovat celou cestu k souboru Avro nebo část cesty k souboru Avro. Zvýšením velikosti Azure Databricks clusteru můžete všechna data znovu zpracovat v požadovaném časovém rámci. Pokud chcete zpracovat zvýšený objem Azure Databricks, přidejte instance Event Hubs do oboru názvů podle potřeby.
Důležité informace o odolnosti
- Všechny komponenty v tomto scénáři jsou spravované. Na úrovni oblasti nabízejí integrovanou odolnost.
- Obecné pokyny k návrhu odolných řešení najdete v tématu Přehled pilíře spolehlivosti.
Ceny
Pokud chcete prozkoumat náklady na spuštění tohoto scénáře, použijte cenovou kalkulačku Azure, která předem nakonfiguruje všechny služby Azure. Upravte parametry tak, aby odpovídaly provozům, které očekáváte.
V následující tabulce jsou uvedeny ukázkové profily nákladů pro různé objemy zpráv typu 1-kilobajt:
| Velikost | Svazek zprávy | Profil |
|---|---|---|
| Malá | Méně než 500 zpráv za sekundu | Malý profil |
| Střední | zprávy 1 500 za sekundu | Střední profil |
| Velká | Více než 5 000 zpráv za sekundu | Velký profil |
Další kroky
- Zpracování streamů s využitím Azure Stream Analytics
- Horizontální navýšení kapacity s Azure SQL Database