Dane są nową walutą w dzisiejszej gospodarce cyfrowej. Wiele organizacji wykorzystuje technologie big data i chmury do usprawnienia tradycyjnej infrastruktury IT oraz wspierania kultury i procesu decyzyjnego opartego na danych, jednocześnie modernizując centra danych. Jednak wirtualizacja i automatyzacja to tylko część przejścia do środowiska chmurowego. Podejścia do spełniania rosnących wymagań biznesowych muszą być dostosowane do przedsiębiorstwa. Podczas gdy chmura obliczeniowa to nic innego jak rewolucyjna zmiana w branży, a technologie oparte na chmurze są kluczem do zapewnienia zaawansowanej struktury zarządzania danymi, wyzwaniem jest to, jak uzyskać szybsze przetwarzanie danych – przetwarzanie wsadowe czy strumieniowe. Każdy z nich ma swoje plusy i minusy, ale wszystko sprowadza się do Twojego biznesowego przypadku użycia. Przyjrzyjmy się tym dwóm podejściom i poznajmy różnice między nimi.

Co to jest Batch Processing?

Przetwarzanie wsadowe jest metodą przetwarzania dużych ilości danych w grupie lub partii w określonym przedziale czasu. Systemy wykonują serię programów, które pobierają zestaw plików danych jako wejście, przetwarzają dane i produkują zestaw plików danych jako wyjście. Dobrym przykładem przetwarzania wsadowego są systemy płacowe i rozliczeniowe, w których wszystkie związane z nimi dane są gromadzone i przechowywane do momentu, gdy rachunek jest przetwarzany jako wsad na koniec każdego miesiąca. Jest to przetwarzanie bloków danych, które były już przechowywane w określonym czasie. Jest tak nazywany, ponieważ dane są gromadzone w partiach jako zestawy rekordów i przetwarzane jako jednostka. Wyjście to kolejna partia, która w razie potrzeby może być ponownie wykorzystana jako wejście. Prostota i zaawansowanie systemu wsadowego pozwala również na przetwarzanie równoległe, np. Hadoop.





Co to jest Stream Processing?

Przetwarzanie strumieniowe to metoda stosowana do odpytywania ciągłego strumienia danych i szybkiego wykrywania warunków w ograniczonym czasie. Innymi słowy, przetwarzanie strumieniowe polega na przetwarzaniu danych bezpośrednio po ich wytworzeniu lub otrzymaniu. Systemy przetwarzania strumieniowego często karmią się działaniami, które występują w czasie rzeczywistym, takimi jak wiadomości w mediach społecznościowych, kliknięcia stron internetowych, transakcje ecommerce, odczyty czujników itp. Systemy te powinny mieć szybsze tempo przetwarzania niż tempo napływających danych. Podstawową ideą przetwarzania strumieniowego jest to, że systemy te mają być długotrwałe, zajmując się ciągłym strumieniem danych. Aby uzyskać wartość z big data, dane muszą być przetwarzane tak szybko, jak tylko się pojawią, przy jednoczesnym zachowaniu ich jakości. Efektywne przetwarzanie strumieniowe może rozwiązać wiele różnych problemów świata rzeczywistego. Na przykład, strumień może być wykorzystany do wykrywania oszustw, podejmowania decyzji, uczenia się wzorców itp.

Różnica między przetwarzaniem wsadowym a strumieniowym

Definicja

– Przetwarzanie wsadowe to metoda przetwarzania dużych ilości danych w grupie lub partii w określonym czasie. Nazywa się je przetwarzaniem wsadowym, ponieważ dane są gromadzone w partiach jako zbiory rekordów i przetwarzane jako jednostka. Wyjściem jest kolejna partia, która w razie potrzeby może być ponownie wykorzystana jako wejście. Przetwarzanie strumieniowe, z drugiej strony, jest metodą przetwarzania danych bezpośrednio, jak to jest produkowane lub odbierane. Jest on używany do zapytania ciągłego strumienia danych i wykrycia warunków szybko w ograniczonym czasie.



Model

– W przetwarzaniu wsadowym system wykonuje serię programów, które przyjmują zestaw plików danych jako wejście, przetwarzają dane i produkują zestaw plików danych jako wyjście. Komponent wejściowy jest odpowiedzialny za zbieranie danych z wielu źródeł, zwykle baz danych, a komponent przetwarzający jest odpowiedzialny za wykonywanie obliczeń przy użyciu tych danych wejściowych. Wreszcie, komponent wyjściowy generuje wyniki, które są zapisywane z powrotem do baz danych. W przetwarzaniu strumieniowym system wykonuje przetwarzanie na najbardziej aktualnym zapisie danych, co oznacza, że systemy zasilają się działaniami, które mają miejsce w czasie rzeczywistym.



Przykład

– Najlepszym przykładem systemów przetwarzania wsadowego są systemy płac i rozliczeń, w których wszystkie powiązane dane są zbierane i przechowywane do momentu, gdy rachunek jest przetwarzany jako partia na koniec każdego miesiąca. Wiele platform programowania rozproszonego, takich jak MapReduce, Spark, GraphX i HTCondor, to systemy przetwarzania wsadowego. Przetwarzanie strumieniowe może być wykorzystywane jako rozwiązanie online do wykrywania oszustw i używane w aplikacjach, które wymagają ciągłego wyjścia z przychodzących danych, takich jak giełda, wiadomości z mediów społecznościowych, transakcje ecommerce, odczyty czujników itp. Platformy programistyczne Big Data, takie jak Storm, Spark Streaming i S4 są systemami przetwarzania strumieniowego.

Podsumowanie przetwarzania wsadowego vs. przetwarzania strumieniowego

Podczas gdy systemy przetwarzania wsadowego są znacznie mniej złożone i bardziej wyrafinowane w porównaniu do systemów przetwarzania strumieniowego, koszt systemów przetwarzania wsadowego może wydawać się mniej realny dla niektórych firm i organizacji, które nie mają drogiego sprzętu na początek. Jednak systemy przetwarzania strumieniowego mogą być używane w aplikacjach, które potrzebują ciągłego wyjścia z przychodzących danych w czasie rzeczywistym, takich jak aplikacje mediów społecznościowych, giełda itp. Podczas gdy przetwarzanie strumieniowe działa najlepiej w przypadkach użycia biznesowego, w których czas jest ograniczeniem, przetwarzanie wsadowe działa dobrze, gdy wszystkie powiązane zostały wstępnie zapisane. Tak więc, wszystko sprowadza się do Twojego przypadku użycia biznesowego.