Principy zpracování událostí

Dokončeno

Azure Stream Analytics je služba pro komplexní zpracování událostí a analýzu streamovaných dat. Stream Analytics slouží k:

  • Ingestují data ze vstupu, jako je centrum událostí Azure, Azure IoT Hub nebo kontejner objektů blob služby Azure Storage.
  • Zpracování dat pomocí dotazu pro výběr, projektování a agregaci datových hodnot.
  • Zapište výsledky do výstupu, jako je Azure Data Lake Gen 2, Azure SQL Database, Azure Synapse Analytics, Azure Functions, centrum událostí Azure, Microsoft Power BI nebo další.

Diagram znázorňující úlohu Stream Analytics se vstupy, dotazem a výstupy

Po spuštění se dotaz Stream Analytics bude nekonečně spouštět, zpracovávat nová data při jejich příchodu do vstupu a ukládat výsledky do výstupu.

Stream Analytics zaručuje právě jedno zpracování události a minimálně jedno doručení události, takže události se nikdy neztratí. Obsahuje funkce obnovení pro případ, že by se doručení události nezdařilo. Stream Analytics také poskytuje integrované vytváření kontrolních bodů pro uchování stavu vašich úloh a produkuje opakovatelné výsledky. Vzhledem k tomu, že Azure Stream Analytics je řešení platformy jako služby (PaaS), je plně spravované a vysoce spolehlivé. Má integrovanou integraci s různými zdroji a cíli a poskytuje flexibilní model programovatelnosti. Modul Stream Analytics umožňuje výpočetní prostředky v paměti, takže nabízí vysoký výkon.

Clustery a úlohy Azure Stream Analytics

Nejjednodušším způsobem, jak použít Azure Stream Analytics, je vytvořit úlohu Stream Analytics v předplatném Azure, nakonfigurovat její vstupy a výstupy a definovat dotaz, který úloha použije ke zpracování dat. Dotaz se vyjadřuje pomocí syntaxe jazyka SQL (Structured Query Language) a může obsahovat statická referenční data z více zdrojů dat a poskytovat vyhledávací hodnoty, které je možné kombinovat se streamovanými daty přijatými ze vstupu.

Pokud jsou požadavky na proces streamu složité nebo náročné na prostředky, můžete vytvořit cluster Stream Analysis, který používá stejný základní modul zpracování jako úlohu Stream Analytics, ale ve vyhrazeném tenantovi (aby na vaše zpracování nemělo vliv ostatní zákazníci) a s konfigurovatelnou škálovatelností, která vám umožní definovat správnou rovnováhu propustnosti a nákladů pro konkrétní scénář.

Vstupy

Azure Stream Analytics může ingestovat data z následujících druhů vstupu:

  • Azure Event Hubs
  • Azure IoT Hub
  • Azure Blob Storage
  • Azure Data Lake Storage Gen2

Vstupy se obvykle používají k odkazování na zdroj streamovaných dat, která se zpracovávají při přidávání nových záznamů událostí. Kromě toho můžete definovat referenční vstupy, které se používají k ingestování statických dat k rozšíření dat streamu událostí v reálném čase. Můžete například ingestovat stream dat pozorování počasí v reálném čase, který obsahuje jedinečné ID každé meteorologické stanice, a rozšířit tato data o statický referenční vstup, který odpovídá ID meteorologické stanice smysluplnějšímu názvu.

Výstupy

Výstupy jsou cíle, do kterých se odesílají výsledky zpracování datového proudu. Azure Stream Analytics podporuje širokou škálu výstupů, které lze použít k:

  • Zachovat výsledky zpracování datových proudů pro další analýzu; například jejich načtením do datového jezera nebo datového skladu.
  • Zobrazení vizualizace datového streamu v reálném čase například přidáním dat do datové sady v Microsoft Power BI.
  • Generování filtrovaných nebo souhrnných událostí pro následné zpracování; například zápisem výsledků zpracování streamu do centra událostí.

Dotazy

Logika zpracování datového proudu je zapouzdřená v dotazu. Dotazy se definují pomocí příkazů SQL, které VYBEROU datová pole Z jednoho nebo více vstupů, filtrují nebo agregují data a zapisují výsledky DO výstupu. Následující dotaz například vyfiltruje události ze vstupu weather-events tak, aby zahrnoval pouze data z událostí s hodnotou teploty nižší než 0, a zapisuje výsledky do výstupu cold-temps :

SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0

Automaticky se vytvoří pole s názvem EventProcessedUtcTime , které definuje čas zpracování události dotazem Azure Stream Analytics. Toto pole můžete použít k určení časového razítka události nebo můžete explicitně zadat jiné pole DateTime pomocí klauzule TIMESTAMP BY , jak je znázorněno v tomto příkladu. V závislosti na vstupu, ze kterého se streamovaná data čtou, může být automaticky vytvořeno jedno nebo více potenciálních polí časového razítka; Například při použití vstupu služby Event Hubs se vygeneruje pole s názvem EventQueuedUtcTime , které zaznamená čas přijetí události ve frontě centra událostí.

Pole použité jako časové razítko je důležité při agregaci dat v časových oknech, což je popsáno dále.