Zarządzaj strumieniem danych, wypływających z Twojej firmy [nie tylko produkcyjnej]

Jeszcze w marcu pisałem o coraz większym udziale strumieniowego przetwarzania danych w ich codziennym wykorzystaniu. Różnego rodzaju rozwiązania technologiczne pozwalają na obsługę takiego strumienia, zarówno od strony jego przechwycenia, ale również przeprowadzenia analityki/opracowania danych bez konieczności ich wcześniejszego zapisywania w bazie, czy odkładania do plików. Jedną z usług, którą można wykorzystać do takiej analityki obok dość popularnego i często stosowanego Spark Streaming, jest Azure Stream Analytics. Przez ostatnie kilka dni miałem okazję chwilę dłużej sięgnąć do wnętrza usługi, która z wierzchu wydaje się być dość prosta w implementacji jak i obsłudze. Faktycznie tak właśnie jest. Bazując na dobrze znanej składni SQL-owej na poziomie Stream Analytics, można zdziałać bardzo wiele.

Przydatne funkcje to tylko początek

Implementacja SQL-a w Stream Analytics zawiera wiele przydatnych funkcji, pozwalających na ich analizę, dość charakterystyczną dla danych strumieniowych, czyli np. wyznaczanie pierwszej, czy ostatniej wartości w określonym oknie czasowym, wyznaczenie różnicy pomiędzy wartością określonych obiektów, czy też określenie czy wartości następujące po sobie w strumieniu danych uległy zmianie. To tylko kilka przykładów, przydatnym źródłem informacji, może być lektura poświęcona powszechnym wzorcom zapytań dla usługi Stream Analytics 

Stream Analytics tylko w chmurze?

No właśnie to jedna z przyczyn dla której (oprócz ostatnich prac ze Stream Analytics) postanowiłem wrócić do tematu obsługi danych w formie strumieniowej. Otóż faktycznie,  do tej pory, usługi z obszaru strumieniowej obsługi danych należały do grona usług oferowanych przez Microsoft wyłącznie w formie usług na platformie Azure. Tymczasem podczas trwającego właśnie Hannover Messse pojawił się informacja o dostępności usługi Stream Analytics dla urządzeń brzegowych.

Jak to to działa?

Aplikacja Azure Stream Analytics na urządzeniach brzegowych wykorzystuje pakiet Azure IoT Gateway SDK, do pracy w systemach operacyjnych Windows i Linux. IoT Gateway SDK udostępnia interfejsy komunikacji dla różnych standardowych protokołów komunikacyjnych, takich jak OPC-UA, Modbus i MQTT. Hub Azure IoT służy do zapewnienia bezpiecznej komunikacji dwukierunkowej pomiędzy bramami, a chmurą.

asa_edge.png

Reasumując w chwili obecnej niezależnie czy rozwiązanie działa w pełni w chmurze publicznej Microsoft, czy też źródłem danych strumieniowych są urządzenia we własnej infrastrukturze, wymagające odpowiedniej obsługi strumienia danych,

Więcej szczegółów oraz przykłady implementacji bramek komunikacji jest dostępnych na stronach Azure. Zaprezentowane rozwiązanie w dużej mierze adresować może potrzeby klientów myślących o budowanie rozwiązań klasy IoT, w których krytyczna dla całego procesu jest możliwość przechwycenia danych, ich wstępnej analizy i filtrowania jeszcze w obszarze własnej infrastruktury, a dopiero w kolejnym kroku „przekazanie” ich na platformę Azure. Uwzględniając specyfikę klientów, u których opisywane rozwiązanie może być interesujące nie trudno nie pomyśleć o przedsiębiorcach z branży produkcyjnej.wytwórczej, co oczywiście nie ogranicza zastosowania rozwiązani tylko w tych obszarach.