facebook LinkedIN LinkedIN - follow
Business Intelligence , AI a Business Intelligence

Real-time zpracování proudů dat v cloudu



Intelligent TechnologiesVětšina současných analytických aplikací vyžaduje pro svůj běh data, která jsou zpracována, očištěna (ETL) a uložena (datový sklad) před samotnou analýzou. Požadavky současného byznysu však často vyžadují reakci, která následuje co nejdříve po události, kterou sledujeme. Když je potřeba dobu prodlevy snížit k nulovým hodnotám a dostat se tak k reakcím v reálném čase, není možné ukládat příchozí události do databáze a nad nimi pak provádět filtrování a dotazování. Právě pro tyto situace jsou k dispozici systémy, které zpracovávají proudy dat v reálném čase.


Tyto průtokové systémy nijak nenahrazují trendovou analytiku založenou na velkém objemu uložených dat, pouze přidávají možnost reagovat na aktuální situaci. Jejich primární nasazení je v oblasti senzorů, měřičů, výrobních dat, dat ze sociálních sítí, návštěvnosti webu (clickstream) a internetu věcí.

Několik konkrétních příkladů využití:

  • Vytvoření varovného systému pro výrobní senzory s upozorněním, když průměr naměřených hodnot za poslední minutu přesahuje stanovený práh
  • Telekomunikace a detekce podvodů se SIM kartami – firma může reagovat na hovory přicházející se stejnou identitou ve shodnou dobu z různých lokací a tyto hovory ukončit
  • Aktuální reakce na nákupní košík zákazníka může vyústit ve slevový kupón, který odpovídá preferencím zákazníka (nenabízím obecnou, ale konkrétní slevu)
  • Reakce na zvýšený počet příspěvků na sociálních sítích. Možno kombinovat s analýzou sentimentu a vytvořit varování při konkrétním počtu negativních příspěvků za posledních několik minut.
  • Zpracování dat ze senzorů napojených na pacienty umožní lékařům rychleji předpovědět a léčit nebezpečné infekce.

Použité pojmy a nástroje

Complex event processing (CEP) – zpracování událostí z mnoha zdrojů v reálném čase tak, aby šlo na probíhající události co nejrychleji reagovat
Event Hub – služba pro zpracování událostí, vstupní brána pro CEP systémy
PowerBI – cloudové BI řešení pro analýzu a reporting

Azure Stream Analytics

Na trhu je v současné době dostupných několik systémů, které podporují práci s proudy dat. Namátkou Amazon Kinesis, InfoSphere Streams, Oracle Event Processing, Google Dataflow, StreamInsight, Apache Storm. Texto text blíže popisuje Azure Stream Analytics, což je cloudová služba pro zpracování proudů dat v reálném čase od Microsoftu.

Její cena se odvíjí podle využívaných zdrojů a je kalkulována dle objemu zpracovaných dat (v GB) a podle proudových jednotek (streaming units). Proudová jednotka je kombinace množství zpracovávaných událostí a jejich velikosti. Jedna jednotka umožní zpracování do objemu 1 MB/sek. Platba za spotřebovaný výkon umožňuje ekonomicky smysluplně provozovat i menší aplikace. Pokud mají nízké kapacitní požadavky bude jejich celoměsíční provoz stát ve stovkách korun.

Vytvoření analytické aplikace přitom může být otázkou několika minut. Stream Analytics je možné ovládat pomocí SQL syntaxe. V Azure portálu se vytvoří nový Stream Analytics job, kterému se určí název a geografické umístění. Samotná služba se pak sestává ze třech částí:

  • Vstupy mohou být proudové povahy, nebo vystupovat jako referenční data (číselníky, které obsahují doplňkové informace). Vstupní data mohou být uložena v textových souborech nebo vstupují přes Event Huby (viz slovníček).
  • Transformace vstupů na výstupy se zapisuje v SQL dialektu. Detailněji je zápis dotazů popsán v kapitole o dotazování. Součástí transformace může být využití prediktivních algoritmů v Azure Machine Learning. V telekomunikačním nasazení mohu nějak se vymykající telefonát prohnat algoritmem, který určí pravděpodobnost škodlivosti hovoru (na základě předchozích hovorů se stejnými atributy). Nebo při analýze sociálních médií mohu příspěvky obohatit o sentiment a mohu tak získat aktuální vývoj popularity mé značky.
  • Výstupy definované transformací se ukládají do několika typů úložišť cloudového charakteru: Azure SQL database, blob storage, no-sql databáze. Poslední možnost je posílat výsledky do PowerBI datasetů, které nabízí možnost real-time dashboardů a další analýzy, včetně mobilního zobrazení. 
Obr. 1: Schéma toku události v systému Azure Stream Analytics
Obr. 1: Schéma toku události v systému Azure Stream Analytics


Dotazování

Jednou z nejdůležitějších vlastností Stream Analytics je zápis transformačních pravidel ve formě SQL dotazů. Pro lepší představu si zde dovolím uvést příklad pro identifikaci potenciálně podvodných hovorů, které odcházejí ze stejného čísla, ale z jiné lokality během posledních 5 sekund:

SELECT System.Timestamp as Cas,
H1.CisloVolajiciho, H1.CisloVolaneho,
H2.CisloVolaneho,H1.Poloha, H2.Poloha
FROM Hovory H1 JOIN Hovory H2
ON H1.CisloVolajiciho = H2.CisloVolajiciho
AND DATEDIFF(ss, H1, H2) BETWEEN 1 AND 5
WHERE H1.Poloha != H2.Poloha

Čas

V aplikacích, které zpracovávají události v reálném čase, je běžně potřeba současně zpracovávat skupinu událostí, které spadají do stejného časového rámce. Koncept času je podstatnou náležitostí CEP systémů a je nezbytné, aby existoval snadný způsob, jak s časem pracovat. Je nutné také odlišovat aplikační čas a čas, kdy záznam vstoupil do systému. Tyto dva časy se mohou lišit, zejména, pokud pracujeme s úložištěm v sql databázi. Ve Stream Analytics se události dají seskupovat do časových oken. Okno umožní pracovat naráz se všemi událostmi, které se vyskytly v zadaném časovém intervalu. Existují tři typy oken:

  • Navazující – je to série navazujících, nepřekrývajících se, stejně dlouhých intervalů. Ve chvíli, kdy se předchozí okno uzavírá, automaticky startuje další. Příklad: za sebou jdoucí pětiminutové intervaly.
  • Skákavé – série stejně dlouhých, překrývajících se intervalů. Na rozdíl od navazujících oken se skákavé mohou překrývat. Příklad: okna startující co pět minut a měří hodnoty za poslední hodinu
  • Klouzavé – série stejně dlouhých, překrývajících se intervalů. Okno se neotvírá ve stanovenou dobu, ale s každou novou událostí. Příklad: při každém použití čipové karty mohu pomocí klouzavého okna zjistit počet použití stejné karty během předchozích např. 60m (předcházím tím použití duplikátu karty)

Další konkrétní použití, pro klouzavé okno s ukázkou jednoduchosti dotazu – máme mýtnou bránu se sledováním SPZ a chceme zjistit, přes kterou bránu v posledních 5 minutách projelo méně než 3 auta:


SELECT DateAdd(minute,-5,System.TimeStamp)
AS Zacatek, System.TimeStamp AS Konec, CisloBrany,
COUNT(*) PocetAut
FROM DatovyTok TIMESTAMP BY CasZmereniAuta
GROUP BY CisloBrany, SlidingWindow(minute, 5)
HAVING COUNT(*) > 3

Shrnutí

Analýza proudů dat je vhodná tam, kde je potřeba reagovat na aktuální dění. Nejčastější vstupní data jsou události generované čidly, měřiči, internetovou návštěvností, sociálními sítěmi. Vhodné oblasti použití jsou v energetice, vodárenství, maloobchodu, ecommerce, telekomunikacích a výrobě. Výsledek analýzy toku dat směřuje ke konkrétní akci, je to varování, upozornění na překročení limitu, souběh událostí, na nárůst množství nebo hodnot měření. Řešení ve formě cloudové služby nabízí jednoduchou platformu pro rychlý vývoj analytických aplikací i bez znalosti sofistikovaných programovacích jazyků

Radim Hampel, Intelligent Technologies Radim Hampel
Autor článku je technickým ředitelem společnosti Intelligent Technologies.
Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.

Inzerce

Fortinet rozšiřuje FortiAI napříč svou platformou Security Fabric

Fortinet FortiAISpolečnost Fortinet, světový lídr v oblasti kybernetické bezpečnosti a průkopník konvergence sítí a zabezpečení, představila na konferenci Accelerate 2025 významné inovace FortiAI napříč platformou Fortinet Security Fabric. Novinky posílí ochranu před novými a vznikajícími hrozbami, zjednoduší a zautomatizují bezpečnostní a síťové operace a zabezpečí využití služeb s umělou inteligencí (AI) zaměstnanci.