Zpracování dat lakehouse téměř v reálném čase

Azure AI Search
Azure Cosmos DB
Azure Data Lake
Azure Event Hubs
Azure Synapse Analytics

Podniky řízené daty potřebují udržovat back-endové a analytické systémy v téměř reálném čase synchronizované s aplikacemi orientovanými na zákazníky. Dopad transakcí, aktualizací a změn musí přesně odrážet komplexní procesy, související aplikace a systémy online zpracování transakcí (OLTP). Tolerovatelná latence změn v aplikacích OLTP, které se projeví v podřízených systémech, které data používají, může být jen pár minut.

Tento článek popisuje ucelené řešení pro zpracování dat téměř v reálném čase za účelem zachování synchronizace dat lakehouse. Řešení používá ke zpracování a analýze dat Azure Event Hubs, Azure Synapse Analytics a Azure Data Lake Storage.

Apache® a Apache Spark jsou registrované ochranné známky nebo ochranné známky Apache Software Foundation v USA a/nebo v jiných zemích. Použití těchto značek nevyžaduje žádné doporučení Apache Software Foundation.

Architektura

Diagram znázorňující tok dat pro komplexní řešení zpracování dat

Stáhněte si soubor aplikace Visio s touto architekturou.

Tok dat

  1. Zachycení dat změn je předpokladem, aby zdrojové systémy naslouchaly změnám. Konektory Debezium se můžou připojit k různým zdrojovým systémům a klepnout na změny, jakmile k nim dojde. Konektory můžou zaznamenávat změny a vytvářet události z různých systémů pro správu relačních databází (RDBMS). Instalace konektoru Debezium vyžaduje systém pro připojení Kafka.

  2. Konektory extrahují data změn a odesílají zachycené události do služby Azure Event Hubs. Event Hubs může přijímat velké objemy dat z více zdrojů.

  3. Event Hubs přímo streamuje data do fondů Sparku služby Azure Synapse Analytics nebo může odesílat data do cílové zóny Azure Data Lake Storage v nezpracovaném formátu.

  4. Jiné dávkové zdroje dat můžou pomocí kanálů Azure Synapse kopírovat data do Data Lake Storage a zpřístupnit je ke zpracování. Kompletní pracovní postup extrakce, transformace a načítání (ETL) může být potřeba zřetězení různých kroků nebo přidání závislostí mezi kroky. Kanály Azure Synapse můžou orchestrovat závislosti pracovního postupu v rámci celé architektury zpracování.

  5. Fondy Azure Synapse Spark používají plně podporovaná rozhraní API strukturovaného streamování Apache Sparku ke zpracování dat v rámci streamování Sparku. Krok zpracování dat zahrnuje kontroly kvality dat a ověřování obchodních pravidel vysoké úrovně.

  6. Data Lake Storage ukládá ověřená data v otevřeném formátu Delta Lake . Delta Lake poskytuje atomicitu, konzistenci, izolaci a odolnost (ACID) sémantiku a transakce (ACID), škálovatelné zpracování metadat a jednotné streamování a dávkové zpracování dat pro stávající datová jezera.

    Použití indexů pro zrychlení dotazů rozšiřuje Delta o další vylepšení výkonu. Data z ověřené zóny Data Lake Storage můžou být také zdrojem pro další pokročilé analýzy a strojové učení.

  7. Data z ověřené zóny Data Lake Storage, transformovaná a rozšířená o další pravidla do konečného zpracovaného stavu, načítají se do vyhrazeného fondu SQL pro spouštění rozsáhlých analytických dotazů.

  8. Power BI používá data vystavená prostřednictvím vyhrazeného fondu SQL k vytváření řídicích panelů a sestav na podnikové úrovni.

  9. Můžete také použít zachycená nezpracovaná data v cílové zóně Data Lake Store a ověřená data ve formátu Delta pro:

    • Další ad hoc a průzkumné analýzy prostřednictvím bezserverových fondů Azure Synapse SQL
    • Strojové učení prostřednictvím služby Azure Machine Učení
  10. U některých rozhraní s nízkou latencí musí být data denormalizována pro latence jednociferného serveru. Tento scénář použití je určený hlavně pro odpovědi rozhraní API. Tento scénář dotazuje dokumenty v úložišti dat NoSQL, jako je Azure Cosmos DB, pro odpovědi na jednociferné milisekundy.

  11. Strategie dělení ve službě Azure Cosmos DB se nemusí použít pro všechny vzory dotazů. V takovém případě můžete řešení rozšířit indexováním dat, ke kterým potřebují rozhraní API přistupovat pomocí služby Azure Cognitive Search. Azure Cosmos DB a Cognitive Search můžou splňovat většinu scénářů, které vyžadují odpovědi dotazů s nízkou latencí.

Komponenty

Toto řešení používá následující komponenty Azure:

  • Event Hubs je spravovaná distribuovaná služba pro příjem dat, která se může škálovat na ingestování velkých objemů dat. Díky mechanismu odběratele služby Event Hubs můžou různé aplikace odesílat zprávy do témat ve službě Event Hubs a podřízení příjemci se můžou připojovat ke zprávám a zpracovávat je. Funkce Event Hubs Capture může při jejich doručení zapisovat zprávy do služby Data Lake Storage ve formátu AVRO. Tato schopnost umožňuje snadné zpracování mikrodávkového zpracování a dlouhodobé uchovávání. Event Hubs také nabízí rozhraní API kompatibilní se systémem Kafka a podporuje registr schématu.

  • Data Lake Storage tvoří subsystém úložiště, který ukládá všechna data v nezpracovaných a ověřených formátech. Data Lake Storage dokáže zpracovávat transakce ve velkém měřítku a podporuje různé formáty a velikosti souborů. Hierarchické obory názvů pomáhají uspořádat data do známé struktury složek a podporují oprávnění Portable Operating System Interface for UniX (POSIX). Ovladač Azure Blob Filesystem (ABFS) nabízí rozhraní API kompatibilní s Hadoopem.

  • Azure Synapse Analytics je neomezená analytická služba, která spojuje integraci dat, skladování podnikových dat a analýzu velkých objemů dat. Toto řešení používá následující funkce ekosystému Azure Synapse Analytics:

    • Fondy Azure Synapse Spark nabízejí modul runtime Spark na vyžádání, který přidává integrovaná vylepšení výkonu do opensourcového Sparku. Zákazníci můžou nakonfigurovat flexibilní nastavení automatického škálování, vzdáleně odesílat úlohy prostřednictvím koncového bodu Apache Livy a používat rozhraní poznámkového bloku Synapse Studio pro interaktivní prostředí.

    • Bezserverové fondy Azure Synapse SQL poskytují rozhraní pro dotazování dat lakehouse pomocí známé syntaxe T-SQL. Neexistuje žádná infrastruktura, která by se nastavila, a nasazení pracovního prostoru Azure Synapse automaticky vytvoří koncový bod. Bezserverové fondy Azure Synapse SQL umožňují základní zjišťování a zkoumání dat a jsou dobrou volbou pro analýzu dotazů ad hoc uživatelů.

    • Vyhrazené fondy SQL Azure Synapse ukládají data v relačních tabulkách se sloupcovým úložištěm. Vyhrazené fondy SQL používají architekturu škálování na více instancí k distribuci zpracování dat napříč několika uzly. Dotazy PolyBase přenesou data do tabulek fondu SQL. Tabulky se můžou připojit k Power BI pro účely analýzy a vytváření sestav.

  • Power BI poskytuje vizuální rozhraní pro vytváření a přístup k sestavám a řídicím panelům. Power BI Desktop se může připojit k různým zdrojům dat, zkombinovat zdroje do datového modelu a vytvářet sestavy nebo řídicí panely. S Power BI můžete transformovat data na základě obchodních požadavků a sdílet vizuály a sestavy s ostatními prostřednictvím služba Power BI.

  • Azure Cosmos DB je spravovaná multimodální databáze NoSQL, která podporuje otevřená rozhraní API, jako jsou MongoDB a Cassandra. Toto řešení používá službu Azure Cosmos DB pro aplikace, které vyžadují jednociferné milisekundové doby odezvy a vysokou dostupnost. Azure Cosmos DB nabízí zápisy do více oblastí napříč všemi oblastmi Azure. Azure Synapse Link pro Azure Cosmos DB můžete použít k odvozování přehledů a spouštění analýz nad daty v reálném čase.

  • Azure Cognitive Search je cloudová vyhledávací služba, která může indexovat data, která vaše aplikace a rozhraní API potřebují. Cognitive Search obsahuje volitelné funkce rozšiřování AI, které pomáhají s extrahováním textu a odvozováním textu z netextových souborů. Cognitive Search se integruje se službami, jako jsou Azure Data Lake Storage a Azure Cosmos DB, a umožňuje snadný přístup k datům a jejich indexování. Indexovaná data můžete dotazovat pomocí rozhraní REST API nebo sady .NET SDK. Pokud chcete získat data ze dvou samostatných indexů, můžete je zkombinovat do jednoho indexu nebo použít komplexní datové typy.

Podrobnosti scénáře

Kompletní pracovní postup pro zpracování změn téměř v reálném čase vyžaduje:

  • Technologie pro zachytávání dat změn (CDC). Aplikace OLTP můžou mít různá back-endová úložiště dat, jako jsou SQL Server, MySQL a Oracle. Prvním krokem je naslouchání změnám při jejich vzniku a jejich šíření vpřed.
  • Vyrovnávací paměť příjmu dat pro publikování událostí změn ve velkém měřítku. Tato služba by měla mít možnost zpracovávat velké objemy dat při doručení zpráv. Jednotliví předplatitelé se mohou připojit k tomuto systému a zpracovat data.
  • Distribuované a škálovatelné úložiště pro data v nezpracovaných formátech
  • Distribuovaný efektivní systém zpracování datových proudů, který umožňuje uživatelům restartovat a spravovat stav.
  • Analytický systém, který běží ve velkém měřítku na výkon obchodních rozhodnutí.
  • Samoobslužné analytické rozhraní.
  • Pro odpovědi rozhraní API s nízkou latencí databáze NoSQL pro ukládání denormalizované reprezentace dat.
  • V některých případech systém indexuje data, aktualizuje index v pravidelných intervalech a zpřístupní nejnovější data pro příjem dat.

Všechny předchozí technologie by měly používat relevantní konstrukce zabezpečení pro zabezpečení hraniční sítě, ověřování, autorizaci a šifrování dat.

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

Toto řešení je vhodné pro:

  • Odvětví, která potřebují rozšířit změny z OLTP na zpracování online analýz (OLAP).
  • Aplikace, které vyžadují transformaci nebo rozšiřování dat.

Scénář zpracování dat v reálném čase je zvláště důležitý pro odvětví finančních služeb. Pokud například pojištění, platební karta nebo bankovní zákazník provede platbu a okamžitě kontaktuje zákaznickou službu, musí mít agent zákaznické podpory nejnovější informace.

Podobné scénáře platí pro odvětví maloobchodu, obchodu a zdravotnictví. Povolení těchto scénářů zjednodušuje provoz, což vede k vyšší produktivitě organizace a vyšší spokojenosti zákazníků.

Důležité informace

Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.

Spolehlivost

Spolehlivost zajišťuje, že vaše aplikace může splňovat závazky, které uděláte pro vaše zákazníky. Další informace najdete v tématu Přehled pilíře spolehlivosti.

  • Event Hubs nabízí 90denní uchovávání dat na úrovních Premium a Dedicated. Ve scénářích převzetí služeb při selhání můžete nastavit sekundární obor názvů ve spárované oblasti a aktivovat ho během převzetí služeb při selhání.

  • Úlohy fondu Azure Synapse Spark se recyklují každých 7 dnů, protože uzly se stájí kvůli údržbě. Tuto aktivitu zvažte při práci se smlouvami o úrovni služeb (SLA) svázanými se systémem. Toto omezení není problém u mnoha scénářů, kdy cíl doby obnovení (RTO) je přibližně 15 minut.

Optimalizace nákladů

Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.

  • Na základě charakteristik úloh si můžete vybrat z různých úrovní služby Event Hubs. Služba Event Hubs účtuje úložiště Capture samostatně na základě množství dat uložených ve službě Data Lake Storage.

  • Zvažte správu životního cyklu objektů prostřednictvím vrstev ve službě Azure Data Lake Storage. S tím, jak se data stáhnou, můžete přesunout data z horké úrovně, kde potřebujete získat přístup k nedávným datům pro analýzy, na studenou úroveň úložiště, která má mnohem nižší cenu. Studená úroveň úložiště je nákladově efektivní možností dlouhodobého uchovávání.

  • Vyhrazený fond SQL můžete pozastavit, když ho nepoužíváte ve vývojovém nebo testovacím prostředí. Můžete naplánovat skript, který fond podle potřeby pozastaví, nebo můžete fond pozastavit ručně prostřednictvím portálu.

  • Azure Cosmos DB nabízí různé modely zřizování, jako je bezserverová, ruční zřízená propustnost a automatické škálování. Zvažte použití bezserverového zřizování pro úlohy vývoje a testování. Můžete také použít automatické škálování, kde můžete nastavit maximální počet jednotek žádostí za sekundu (RU/s) v kontejneru. Propustnost kontejneru se automaticky škáluje mezi 10 % maximálního počtu RU/s jako nižší prahovou hodnotou a maximální nakonfigurovanou hodnotou RU/s.

Efektivita výkonu

Efektivita výkonu je schopnost úlohy škálovat se tak, aby efektivním způsobem splňovala požadavky, které na ni kladou uživatelé. Další informace najdete v tématu Přehled pilíře efektivity výkonu.

  • Službu Event Hubs můžete škálovat prostřednictvím dělení. Zvažte rozdělení dat, abyste zachovali pořadí událostí prostřednictvím protokolu potvrzení. Dělení umožňuje vytvořit několik paralelních protokolů tím, že maximalizuje dostupnou kapacitu propustnosti.

  • Na základě úlohy můžete nastavit fondy Azure Synapse Spark s malými, středními nebo velkými skladovými položkami virtuálního počítače. Automatické škálování ve fondech Azure Synapse Spark můžete také nakonfigurovat tak, aby zohlednily spiky úlohy. Pokud potřebujete více výpočetních prostředků, clustery se automaticky vertikálně navyšují, aby splňovaly poptávku, a po dokončení zpracování vertikálně snížit kapacitu.

  • Pro navrhování tabulek ve vyhrazeném fondu SQL použijte osvědčené postupy. Přidružené limity výkonu a škálovatelnosti se vztahují na základě úrovně, na které fond SQL běží.

  • Azure Cosmos DB používá ke škálování kontejnerů oddíly na základě klíče oddílu. Všechna data založená na klíči oddílu tvoří logický oddíl. Nezapomeňte zvolit správnou strategii dělení na základě požadavků na úlohy. Indexy můžete také použít k rychlejšímu načítání dat.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autor:

Další přispěvatel:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky