Zpracování v reálném čase

Zpracování v reálném čase zpracovává datové proudy zaznamenané v reálném čase a zpracovávány s minimální latencí ke generování sestav v reálném čase (nebo téměř v reálném čase) nebo automatizovaných odpovědí. Například řešení pro monitorování provozu v reálném čase může používat data senzorů ke zjištění vysokého objemu provozu. Tato data se dají použít k dynamické aktualizaci mapy pro zobrazení zahlcení nebo automatické iniciace vysokorychlostních drah nebo jiných systémů pro správu provozu.

Diagram kanálu zpracování v reálném čase

Zpracování v reálném čase je definováno jako zpracování nevázaného proudu vstupních dat s velmi krátkými požadavky na latenci pro zpracování — měřené v milisekundách nebo sekundách. Tato příchozí data obvykle přicházejí do nestrukturovaného nebo částečně strukturovaného formátu, jako je například JSON, a mají stejné požadavky na zpracování jako dávkové zpracování, ale s kratšími dobami vyřízení pro podporu spotřeby v reálném čase.

Zpracovaná data se často zapisují do úložiště analytických dat, která jsou optimalizovaná pro analýzu a vizualizaci. Zpracovaná data je také možné ingestovat přímo do vrstev analýz a vytváření sestav pro účely analýzy, business intelligence a vizualizace řídicího panelu v reálném čase.

Výzvy

Jedním z velkých problémů řešení pro zpracování v reálném čase je ingestování, zpracování a ukládání zpráv v reálném čase, zejména ve velkých objemech. Zpracování musí být provedeno takovým způsobem, že neblokuje kanál přijímání. Úložiště dat musí podporovat zápisy s vysokým objemem. Další výzvou je schopnost rychle pracovat s daty, jako je například generování výstrah v reálném čase nebo prezentace dat v řídicím panelu v reálném čase (nebo téměř v reálném čase).

Architektura

Architektura zpracování v reálném čase má následující logické součásti.

  • Přijímání zpráv v reálném čase. Architektura musí zahrnovat způsob, jak zachytit a uložit zprávy v reálném čase, které má příjemce zpracování datového proudu spotřebovat. V jednoduchých případech může být tato služba implementována jako jednoduché úložiště dat, ve kterém jsou nové zprávy uloženy ve složce. Řešení často ale vyžaduje zprostředkovatele zpráv, jako je například Azure Event Hubs, který slouží jako vyrovnávací paměť pro zprávy. Zprostředkovatel zpráv by měl podporovat zpracování a spolehlivé doručování se škálováním na více instancí.

  • Zpracování datových proudů. Po zachycení zpráv v reálném čase je řešení musí zpracovat filtrováním, agregací a další přípravou dat pro analýzu.

  • Analytické úložiště dat. Mnoho řešení pro velké objemy dat je navrženo pro přípravu dat pro analýzu a následné obsluhu zpracovaných dat ve strukturovaném formátu, který lze dotazovat pomocí analytických nástrojů.

  • Analýza a vytváření sestav. Cílem většiny řešení pro velké objemy dat je poskytnout přehled o datech prostřednictvím analýzy a vytváření sestav.

Technologické volby

Následující technologie jsou doporučené pro řešení zpracování v reálném čase v Azure.

Příjem dat v reálném čase

  • Event Hubs Azure. Azure Event Hubs je řešení zasílání zpráv pro příjem milionů zpráv událostí za sekundu. Zachycená data události může zpracovávat více příjemců paralelně. I když Event Hubs nativně podporuje AMQP (rozšířený protokol řízení front zpráv (AMQP) 1,0), poskytuje také binární kompatibilní vrstvu, která umožňuje aplikacím pomocí protokolu Kafka (Kafka 1,0 a vyšší) zpracovávat události pomocí Event Hubs bez jakýchkoli změn aplikací.
  • IoT Hub Azure. Azure IoT Hub poskytuje obousměrnou komunikaci mezi zařízeními připojenými k Internetu a škálovatelnou frontou zpráv, která dokáže zvládnout miliony současně připojených zařízení.
  • Apache Kafka. Kafka je open source aplikace pro zpracování zpráv a zpracování datových proudů, která se může škálovat na zpracování milionů zpráv za sekundu od různých výrobců zpráv a jejich směrování na více příjemců. Kafka je k dispozici v Azure jako typ clusteru HDInsight, s událostmi Azure pro Kafka a také k dispozici prostřednictvím ConfluentCloud prostřednictvím našeho partnerství s využitím služby influent.

Další informace najdete v tématu přijímání zpráv v reálném čase.

Úložiště dat

  • Azure Storage kontejnerů objektů Blob nebo Azure Data Lake Store. Data příchozích dat v reálném čase jsou obvykle zachycena ve zprostředkovateli zpráv (viz výše), ale v některých scénářích může být vhodné monitorovat složku pro nové soubory a zpracovat je při jejich vytvoření nebo aktualizaci. Mnoho řešení pro zpracování v reálném čase navíc kombinuje streamovaná data se statickými referenčními daty, která je možné uložit v úložišti souborů. Nakonec lze úložiště souborů použít jako cíl výstupu pro zaznamenaná data v reálném čase k archivaci nebo pro další dávkové zpracování v architektuře lambda.

Další informace najdete v tématu úložiště dat.

Zpracování streamů

  • Azure Stream Analytics. Azure Stream Analytics může spouštět trvalé dotazy proti nevázanému proudu dat. Tyto dotazy využívají streamování dat z úložiště nebo zprostředkovatelů zpráv, filtrují a agreguje data na základě dočasných oken a zapisují výsledky do jímky, jako je úložiště, databáze nebo přímo do sestav v Power BI. Stream Analytics používá dotazovací jazyk založený SQL, který podporuje dočasné a geoprostorové konstrukce a dá se rozšířit pomocí javascriptu.
  • Zaplavení. Apache Storm je open source architektura pro zpracování datových proudů, která používá topologii spoutů a šrouby ke využívání, zpracování a výstupu výsledků ze zdrojů dat streamování v reálném čase. Můžete zřídit zaplavení v clusteru Azure HDInsight a implementovat topologii v jazyce Java nebo C#.
  • Streamování Sparku Apache Spark je open source distribuovaná platforma pro obecné zpracování dat. Spark poskytuje rozhraní API pro streamování Sparku, ve kterém můžete psát kód v libovolném podporovaném jazyce Spark, včetně Java, Scala a Pythonu. Spark 2,0 představil rozhraní API strukturovaného streamování Sparku, které poskytuje jednodušší a jednotnější programovací model. Spark 2,0 je k dispozici v clusteru Azure HDInsight.

Další informace najdete v tématu zpracování streamu.

Analytické úložiště dat

  • Azure synapse Analytics, Azure Průzkumník dat, HBA, Spark nebo podregistr. Data zpracovaná v reálném čase můžou být uložená v relační databázi, jako je synapse Analytics, Azure Průzkumník dat, NoSQL úložiště, jako je například HBA, nebo jako soubory v distribuovaném úložišti, ve kterém se dají definovat a dotazovat na ně tabulky Sparku nebo podregistru.

Další informace najdete v tématu analytické úložiště dat.

Analýzy a generování sestav

  • Azure Analysis Services, Power BI a Microsoft Excel. Data zpracovaná v reálném čase, která jsou uložena v analytickém úložišti dat, lze použít pro historické sestavy a analýzy stejným způsobem jako dávkové zpracování dat. kromě toho Power BI možné použít k publikování sestav a vizualizací v reálném čase (nebo téměř v reálném čase) z analytických zdrojů dat, u kterých je latence dostatečně nízká nebo v některých případech přímo z výstupu zpracování streamu.

Další informace najdete v tématu Analýza a vytváření sestav.

V čistě řešení v reálném čase je většina orchestrace zpracování spravována komponentami příjmu zpráv a zpracováním datových proudů. V architektuře lambda, která kombinuje dávkové zpracování a zpracování v reálném čase, možná budete muset použít architekturu orchestrace, jako je Azure Data Factory nebo Apache Oozie a Sqoop, ke správě pracovních postupů služby Batch pro data zaznamenaná v reálném čase.

Další kroky

Následující referenční architektura ukazuje kompletní kanál zpracování streamování: