Data Streaming to pojęcie, które musiało w końcu się pojawić w dobie analizowania ogromnych ilości danych, w pełni zasługujących na określenie ich mianem Big Data. Na czym jednak to rozwiązanie się opiera? Gdzie rzeczywiście warto je zastosować?
Data Streaming – co to jest?
W celu wytłumaczenia znaczenia terminu Data Streaming najlepiej będzie posłużyć się przykładem. Należy sobie wyobrazić rzekę. Patrząc na nią w danym miejscu, trudno jest znaleźć jej początek i koniec, a woda cały czas płynie, nie zwalniając ani na chwilę. Dokładnie w ten sam sposób działają dane. Data Streaming opiera się na ich ciągłym przepływie i można tu przywołać dane telemetryczne albo te wysyłane przez Internet Rzeczy. Niewielkie wielkości danych, jednak cały czas pojawiające się na nowo.

Jako alternatywę można podać Batch Processing. Tam natomiast trzeba skupić się na analizie ogromnych ilości danych w konkretnym zakresie czasowym i wszystkie należą do którejś paczki, która potem jest przetwarzana. Niewątpliwie to sprawdza się świetnie do pracy na większych wolumenach danych, kiedy to latencja nie odgrywa szczególnie ważnej roli.
Z uwagi na ogromne zainteresowanie tematem Data Streaming i chęcią zastosowania go w realnych rzeczach, na rynku pojawiło się mnóstwo dedykowanych narzędzi. Poniżej omówiono te najpopularniejsze dostępne jako otwarte oprogramowanie, zbudowane wokół ekosystemu Apache Hadoop:
- Apache Kafka – broker wiadomości umożliwiający obsługę danych w czasie rzeczywistym pochodzących z wielu źródeł, można go połączyć z poniżej opisanymi usługami;
- Apache Storm – stworzony do Data Streaming, wykorzystuje on model pojedynczego przetwrazania strumieniowego reprezentowanego przez topologię. Przekształca stare strumienie danych w nowe i aktualizuje przy tym bazy danych;
- Apache Flink – bezpośredni rywal opisanego poniżej Sparka, który skupia się przede wszystkim na Data Streamingu;
- Apache Spark – o ile w zasadzie możliwości tej usługi są znacznie większe i częściej używa się go do Batch Processingu, o tyle twórcy zadbali o dodanie dedykowanego narzędzia o nazwie Apache Spark Streaming;
- Apache Beam – wykorzystuje on połączenie modele Batch i Streaming Processing, pozwalając na tworzenie rurociągów danychza pomocą rozbudowanego SDK.
Data Streaming – zastosowania w życiu codziennym
To wszystko brzmi interesująco, ale warto przyjrzeć się temu, które branże najbardziej korzystają z zalet, jakie zapewnia możliwość wprowadzenia Data Streaming. Na dobrą sprawę każdy segment rynku znajdzie coś dla siebie. Tym bardziej, że część zastosowań jest wspólna i wynika po prostu z korzystania z infrastruktury IT, niezależnie, czy mówimy tu o tej w chmurze czy też własnej na miejscu.
Sektor bankowy jest w stanie szybko wykryć jakiekolwiek nieprawidłowości i szybko odpowiadać na potencjalne zagrożenia. Z kolei branża sprzedażowa wykorzystuje to do badania zachowań użytkowników, np. w trakcie wizyty na ich stronie internetowej, pokazując konkretne elementy.

Data Streaming może przydać się również do błyskawicznej analizy danych bezpośrednio z urządzeń, m.in. Internetu Rzeczy czy serwerów. Pozwala to, np. szybciej wykryć potencjalną awarię. Także sektor cyberbezpieczeństwo korzysta z możliwości strumieniowego przesyłania danych. Dzięki temu specjaliści mogą łatwiej wykryć potencjalny atak, zapobiegając ewentualnym kosztownym problemom. Nawet przy przewidywaniu pogody Data Streaming okazuje się być przydatny.
W samym Smart City ta technologia przyda się już w przypadku autonomicznych samochodów, komunikujących się między sobą. Także dane pochodzące z innych urządzeń, podłączonych do sieci, mogą być analizowane w czasie rzeczywistym i najbardziej oczywistym przykładem pozostaje system optymalizacji ruchu na drogach.
Kiedy wykorzystać Streaming, a nie Batch Processing?
Zdecydowanie nie da się tu jednogłośnie wskazać tego, które rozwiązanie jest lepsze, ponieważ obydwa stworzone do zupełnie innych rzeczy.

Batch Processing sprawdza się idealnie wtedy, kiedy niepotrzebne są wyniki prawie w czasie rzeczywistym i największym wyzywaniem jest wielkość danych. Data Streaming Processing przyda się z kolei wtedy, kiedy główną rolę ma odgrywać szybkość analizy, a sama ilość przychodzących informacji nie jest aż tak duża. Często firmy decydują się na stosowanie mechanizmów, łączących w sobie te dwa sposoby przetwarzania.
Data Streaming – kluczowe cechy
Na koniec należy jeszcze, w formie podsumowania, wspomnieć o niezwykle ważnych cechach, które muszą wyróżniać dany system od Data Streaming:
- Data Streaming – czy zapewnimy jednolity strumień danych?
- Tolerancja błędów – czy jeżeli proces się zatrzyma, istnieją mechanizmy pozwalające na jego przywrócenie bez utraty danych?
- Skalowalność – czy możemy łatwo i bezpiecznie skalować dane rozwiązanie?
- Gwarancja niezawodności – czy na pewno wszystkie dane zostaną przetworzone?
- Dowolność języka programowania – czy możemy użyć dowolnego języka przy tworzeniu aplikacji z użyciem Data Streaming?