Ostatnie lata w świecie systemów IT to wzrost popularności rozwiązań opartych na chmurze obliczeniowej.
Związane jest to między innymi z korzyściami, jakie można osiągnąć przez wdrożenie rozwiązań chmurowych w organizacji:
-
Zmniejszenie kosztów infrastruktury
-
Zmniejszenie kosztów utrzymania systemów
-
Zwiększenie możliwości skalowalności systemów
-
Skrócenie czasu tworzenia nowych aplikacji poprzez stosowanie gotowych komponentów
-
Łatwość integracji komponentów i usług chmury
-
Bezpieczeństwo przetwarzania danych
-
Możliwość udostępnienia komponentów poszczególnym działom oraz partnerom
-
Możliwość przeprowadzenia migracji typu Shift and Lift
-
Możliwość ograniczenia aktualnie wykorzystywanych zasobów
Według niektórych źródeł jeden człowiek na Ziemi w ciągu jednej sekundy generuje prawie 1.7 megabajta nowych danych i tylko 40% z nich jest analizowane.
W związku z ciągłym napływem nowych danych podejmowanie decyzji w czasie rzeczywistym powoli staje się koniecznością, zwłaszcza w przypadku obsługi klienta, detekcji fraudów czy aktualizacji stanów magazynowych. W związku z tym procesy biznesowe coraz częściej wymagają, żeby uzyskiwać informacje o kliencie w trybie natychmiastowym, traktując go indywidualnie, a nie jako uśrednionego reprezentanta większego kolektywu.
Analizy danych w czasie rzeczywistym pozwalają określać stan otrzymywanych danych w momencie, gdy dane te pojawią się w naszym zasięgu. W konsekwencji dane możemy oznaczyć, pogrupować, a także – dzięki obecnym możliwościom sztucznej inteligencji – przetworzyć w taki sposób, żeby wyłonić potencjalnie ważne lub po prostu interesujące wzorce, których z samego przeglądania danych nigdy byśmy nie wyodrębnili. Jest to nie do przecenienia przy podejmowaniu decyzji eksperckich.
Analiza danych w czasie rzeczywistym może być wykorzystana w następujących obszarach biznesowych:
-
Silniki rekomendacyjne
-
Zarządzanie ryzykiem
-
Wykrywanie oszustwa lub nadużycia
-
Monitorowanie aplikacji
-
Analiza kosztów transakcyjnych
-
Internet of Things (IoT)
Jednym z zadań analitycznych jest wykrywanie anomalii w działaniu przedsiębiorstwa oraz wykrywanie tzw. fraudów, czyli zachowań prowadzących do nadużyć. Szerokie zastosowanie tego typu analiz można spotkać w sektorze bankowym, telekomunikacyjnym czy ubezpieczeniowym.
Do realizacji wspomnianego zadania można wykorzystać chmurę Microsoft Azure, która udostępnia szereg usług, dzięki którym uruchomienie wykrywania nadużyć nie wymaga ponoszenia dużych kosztów infrastruktury, a i sama integracja tych usług nie jest czasochłonna.
Jedna z wersji architektury wymaga skorzystania z kilku usług chmury Microsoft Azure.
Azure Event Hubs
-
Platforma analizy strumienia dużych wolumenów danych. Dzięki użyciu usługi Azure Event Hubs, możemy zbierać informacje pochodzące z wielu źródeł i zarządzać ich przetwarzaniem w jednym środowisku.
-
Obsługuje zarówno dane strumieniowe w czasie rzeczywistym jak i przesyłane partiami (batches).
-
Umożliwia gromadzenie danych w Blob Storage, Data Lake Storage gen 1 lub Data Lake Storage gen 2.
-
Pozwala przechwytywać zdarzenia przesyłane strumieniowo (możliwość zdefiniowania interwału czasu lub rozmiaru po którym pliki zapisywane są na wcześniej zdefiniowanej usłudze).
-
Uwzględnia automatyczne skalowanie w throughput units (jednostkach przepustowości) Event Hubs.
-
Umożliwia szybką konfigurację.
-
Zapisuje przechwycone dane np. w formacie Avro – szeroko wykorzystywanym w środowisku Big Data (m. in. Hadoop, Stream Analytics, Azure Data Factory). Dane są partycjonowane, co umożliwia ich szybkie odpytywanie. Możliwe jest skonfigurowanie tworzenia kopii zapasowych przechwyconych danych.
Azure Stream Analytics

-
Zdefiniowane zadania w tej usłudze pozwalają na uporządkowanie/wyfiltrowanie przypadków, które mogą spełniać określone cechy i warunki oraz przypisania ich do Eventów. Dzięki nim możemy wdrożyć reguły decyzyjne, określające, czy do danego zdarzenia doszło, czy nie. W przypadku analizy fraudów, takim warunkiem jest pojawienie się tego samego numeru klienta minimum dwa razy w różnych krajach, w jednym oknie czasowym – takie zdarzenie świadczyło o transakcji określanej jako fraud.
-
Takie dane mogą być przetwarzane na zasadach: jedno źródło -> wiele wyjść; wiele źródeł -> jedno wyjście; standardowe – jedno źródło -> jedno wyjście.
-
Azure Stream Analytics pozwala na zdefiniowanie interfejsów wyjściowych do takich usług chmury Azure, jak: Data Lake Storage Gen 1 i Gen 2, SQL Database, Synapse Analytics, Blob Storage, Event Hubs, Power BI, Table Storage, Service Bus queues/topics, Cosmos DB, Functions.
-
Usługa Stream Analytics wymaga definicji wejść i wyjść do analizy i oznaczenia przechwyconych danych.
Azure Machine Learning
-
Usługa umożliwiająca definiowanie i wdrożenie modeli Machine Learning/ Deep Learning. W przypadku analizy nadużyć będzie to model klasyfikacyjny, wykorzystywany do oszacowania i klasyfikacji na podstawie danych przysyłanych strumieniowo, pozwalający odpowiedzieć na pytanie ‘czy doszło do nadużycia?’.
-
Umożliwia podłączenie z usługą Azure Stream Analytics i analizą danych strumieniowych.
-
W przypadku analizy nadużyć Azure ML jest kolejnym ze sposobów wykrywania nadużyć (po regułach decyzyjnych ze Stream Analytics).
Power BI
-
Umożliwia wizualizację danych.
-
Przechwytywane dane są natychmiast uwzględniane na wcześniej zdefiniowanych diagramach.
-
Dobrze zdefiniowane pulpity informacyjne (dashboards) ułatwiają podejmowanie decyzji biznesowych.
Przykładowy dashboard w usłudze Power BI
Architektura dla funkcjonalności analizy danych w czasie rzeczywistym
-
Podłączenie istniejących aplikacji realizujących transakcje płatności do usługi Azure Event Hub. Każda aplikacja przesyłająca w sposób ciągły informacje o odbywającej się w danej chwili transakcji.
-
Przesłane dane zapisywane są automatycznie do wybranej usługi przechowywania danych.
-
Przechowywane dane, po określonym czasie, mogą być wykorzystane do ponownego trenowania modeli I uaktualniania ich parametrów.
-
Przetwarzanie przesłanych informacji za pomocą Azure Stream Analytics na podstawie reguł decyzyjnych, które nie muszą opierać się o model ML.
-
Aktualizacja modelu scoringowego na podstawie przechowywanych danych.
-
Ocena, czy doszło do oszustwa i z jakim prawdopodobieństwem.
-
Wizualizacja/przechowywanie wyników i danych.
-
Informacja zwrotna. Zgoda na realizację transakcji bądź jej zablokowanie.
Zaprezentowane usługi muszą być zintegrowane ze sobą, dzięki czemu wymiana informacji przebiega bez zbędnych opóźnień, a stworzony model Machine Learning pobiera odpowiednie dane udostępniane bezpośrednio przez Stream Analytics. Takie rozwiązanie umożliwia wygenerowanie odpowiednich danych wyjściowych, czyli wykrywanie oczekiwanych zdarzeń.
Podsumowanie
Zaprezentowana architektura umożliwia sprawdzenie w czasie rzeczywistym, na podstawie modelu ML i filtrowania danych, czy doszło do nadużycia podczas wykonywania płatności. Informacja jest przetwarzana w czasie trwania transakcji, dzięki czemu możliwe jest wstrzymanie realizacji transakcji w przypadku wykrycia nadużycia.
Warto zwrócić uwagę, że zaprezentowana koncepcja opiera się na dwóch sposobach wykrywania zdarzenia – jako reguły Stream Analytics oraz jako wynik działania modelu Azure Machine Learning. Takie podejście jest dobrą praktyką, gdyż umożliwia zwiększenie skuteczności wykrywania oczekiwanych zdarzeń.
Zauważmy, że stworzona architektura ma praktycznie nieograniczone możliwości jeśli chodzi o użycie biznesowe. Wszystko zależy od tego jakie dane wejściowe wykorzystamy i co w nich chcemy sprawdzać.
Autorzy: Radosław Rygiel, Sebastian Zając