9

Z poradnika Młodego Zielarza – Składniki na Big Data, czyli otoczenie narzędziowe Big Data cz.1

W swoim poprzednim artykule, opublikowanym na Antyweb we wrześniu, pisałem o przykładach osiągnięć firm, które zdecydowały się użyć narzędzi zaliczanych do nurtu „Big Data”. Pojawiły się pod nim komentarze, w których autorzy próbowali wyjaśnić pojęcie tego zjawiska i odpowiedzieć na pytanie, czym właściwie jest Big Data? Rzeczywiście, być może najpierw powinienem zacząć od dokładnego opisania […]

W swoim poprzednim artykule, opublikowanym na Antyweb we wrześniu, pisałem o przykładach osiągnięć firm, które zdecydowały się użyć narzędzi zaliczanych do nurtu „Big Data”. Pojawiły się pod nim komentarze, w których autorzy próbowali wyjaśnić pojęcie tego zjawiska i odpowiedzieć na pytanie, czym właściwie jest Big Data? Rzeczywiście, być może najpierw powinienem zacząć od dokładnego opisania tego zjawiska, aby następnie rozwinąć temat. Postaram się jednak nadrobić tę zaległość, zaczynając od podstawy…

Autorem wpisu jest Edek Mężyk z Hicron Group.

…A więc definicja

Niejedna osoba próbowała uporać się z definicją, często przegadując temat. Dlatego ja podam jedynie kilka linków, aby pokazać, z jak szerokim terminem mamy do czynienia. Dodatkowo, żeby usystematyzować zbiór odnośników, postanowiłem pogrupować definicje na:

  1. „Encyklopedyczne”, mimo tego, że pisane przez prywatne osoby (zakładam jednak że ktoś zrecenzował te teksty):
  2. Korporacyjne, czyli jak definiują ten termin duże korporacje:
  3. Dziennikarskie, czyli co o Big Data piszą portale, vortale, czasopisma:
  4. Badawcze, czyli definicje organizacji, które trudnią się badaniami:
  5. Prywatne, czyli blogi i wszelkie inne formy wypowiedzi prywatnych. Tutaj warto zatrzymać się na dłuższą chwilę, gdyż wydaje się, że to właśnie te wypowiedzi najwierniej oddają stan rzeczy. Są przekrojowe, często poparte cytowaniami i doświadczeniami.

Ostatecznie według mojej opinii najbardziej oddającym rzeczywistość stwierdzeniem jest „The definition of Big Data is a moving target” (cytat z Opentracker). Wszystkie definicje są „rozmyte” Podobnie jak dawniej termin „Web 2.0” w terminologii związanej z budowaniem stron/aplikacji „internetowych”, tak teraz termin „Big Data” wydaje się być nagłówkiem dla pewnego nurtu na styku analityki i IT. Dlatego moim zdaniem „Big Data” nie da się jasno zdefiniować.

Niezależnie od tego, że sam termin nie jest dobrze zdefiniowany, to jest on bardzo modny, przez co jest też często wykorzystywany reklamowo przez firmy dostarczające narzędzia bazodanowe, analityczne oraz inne związane z analityka i IT. I w tym artykule będzie właśnie o tych narzędziach. Aby pokazać, że rynek jest ogromny, dzieli się na kilka kategorii i zarówno rozwiązania open source, jak i enterprise bardzo silnie rozwijają swoje możliwości. Wydaje mi się, że przynajmniej taką podstawową wiedzę powinna posiadać każda osoba decyzyjna, odpowiedzialna za obszary związane z tym nurtem.

Kategoryzacja narzędzi

Cały rynek narzędzi Big Data możemy podzielić na następujące segmenty: od najniższego poziomu abstrakcji (czyli sprzęt) do najwyższego poziomu abstrakcji (czyli wizualizacja oraz konsulting):

  • Hardware;
  • Bazy danych nowej generacji i często hardware z nimi skojarzony;
  • Bazy typu NoSql i ich dystrybucje;
  • Narzędzia do integracji danych oraz narzędzia z nimi związane;
  • Business intelligence, data mining i narzędzia do wizualizacji danych;
  • Konsulting Big Data, outsourcing, szkolenia oraz inne usługi eksperckie.

1
Diagram obrazujący warstwy narzędziowe na rynku Big Data.

Hardware

O tej kategorii warto wspomnieć, jednak jest to dziedzina, która nie związała się ściśle z Big Data. Rynek w obszarze hardware’u zdecydowanie wolniej wypuszcza sprzęt dedykowany tylko pod rozwiązania Big Data. Są to takie rozwiązania jak np. ParStream, które przy okazji sprzętu dedykowanego do obliczeń na ogromnych zbiorach, sprzedają również software do jego obsługi. Oczywiście są rozwiązania, które mają lepsze wyniki, gdy pracują na nich oprogramowania analityczne.

Często jednak te same rozwiązania są używane w wielu innych dziedzinach życia. Dlatego też nie będę rozwijał dalej tego wątku. Należy jednak wspomnieć, że odpowiednie dobranie hardware do software może mieć znaczący wpływ na wydajność całego rozwiązania. Dodatkowo też warto zaznaczyć, że wiodący producenci sprzętu rozpoznają nurt i adresują swoimi produktami jego zapotrzebowanie:

Bazy nowej generacji

Jest to jedna z prężniej rozwijających się dziedzin IT, która dzięki Big Data znalazła rynek zbytu. Warto zaznaczyć, że nie chodzi mi o to, co było pierwsze – rozwój baz czy Big Data. Ważny jest natomiast fakt, że te dwie rzeczy bardzo mocno się uzupełniają.

Bazy nowej generacji to przede wszystkim bazy kolumnowe, które w odróżnieniu od klasycznych baz wierszowych są zorientowane na przetwarzanie dużej ilości danych, a nie jak wierszowe – na przetwarzanie transakcji. W tych bazach postawiono na ograniczenie operacji wejścia/wyjścia (I/O), co sprowadza się do bardzo zaawansowanej optymalizacji na niskim poziomie. Dzięki takiemu podejściu bazy nowej generacji stały się bardzo popularne w wykorzystaniu Big Data. Należy wspomnieć, że te bazy posiadają sporo wad, które dyskwalifikują je z systemów zbierających dane. Przede wszystkim mają ubogie zarządzanie uprawnieniami, nie radzą sobie zbyt dobrze z transakcjami oraz dużą ilością otwartych połączeń.

Jednak wszystkie wymienione ułomności, w przypadku wykonywania zapytań analitycznych, nie mają znaczenia. W analityce bowiem liczy się ilość przetwarzanych danych oraz szybkość wykonywanych zapytań. W związku z tym, że ten segment jest bardzo wymagający pod kątem optymalizacji kodu na niskim poziomie i posiada stosunkowo niewiele odbiorców, przodują w nim rozwiązania komercyjne. Oczywiście w tym segmencie pojawiają się również bardzo modne bazy in-memory. Swoją siłę czerpią one z trzymania danych w pamięci RAM, która jest znacznie szybsza niż klasyczna pamięć dyskowa. Dzięki temu dużo szybszy jest też dostęp do danych.

Oczywiście tak jak wszystkie rozwiązania i te mają też swoją wadę – jak się chce robić zapytania na bardzo dużych zbiorach, to trzeba mieć bardzo dużo RAMu. Na koniec warto dodać, że bazy wierszowe również się pojawiają, są natomiast bardzo mocno zoptymalizowane pod kątem analityki. Poniżej przedstawiam kilka podstawowych pozycji, które osoba zainteresowana modą Big Data powinna poznać:

Bazy NoSQL

Prawdopodobnie to część narzędziowa, która tak mocno się przyczyniła do popularności Big Data. Głównie za sprawą Hadoopa, który jest implementacją dość prostej idei Map-Reduce. Jest to sposób na przetwarzanie dużej ilości danych, wykorzystując wiele maszyn jednocześnie. Dzięki temu prostemu pomysłowi do przetwarzania danych wystarczy cała masa tanich serwerów. Warunek? Powinno być ich jak najwięcej. Siła tego rozwiązania tkwi w równoległości obliczeń, a nie tak jak w przypadku baz kolumnowych w optymalizacji lub szybkim dostępie do pamięci.

Oczywiście optymalizacja i dostęp do pamięci to rzeczy, które już pojawiają się w rozwiązaniach Map-Reducowych, jednak zasada leżąca u podstaw tej idei to równoległość. W pojęciu baz NoSQL mieszczą się również bazy typu klucz-wartość, które służą do przechowywania dużych pakietów danych (np. plików, złożonych obiektów, zdjęć, itd. ). Te bazy, tak samo jak pochodne Hadoopa, wpisują się bardzo mocno w trend Big Data, gdyż umożliwiają przechowywanie danych, których przechowywanie w bazach relacyjnych dostarczałoby ogromnych problemów.

Warto wspomnieć, że bazy NoSQL są polem, na którym bardzo dobrze funkcjonuje opensource. To tu dokonuje się bardzo dużo dystrybucji Hadoop’a, a bazy klucz-wartość są darmowe i w pełni otwarte. Oczywiście korporacje nie pozostawiły tego kawałka rynku bez opieki i bardzo mocno wchodzą w ten segment. Są też pozytywne aspekty przewagi wersji community nad enterprise w tym segmencie – chociażby Microsoft, aby dopasować się do zasad panujących w tym segmencie, udostępnił niektóre swoje rozwiązania na licencjach open sourcowych.

Segment ten charakteryzuje się ogromną ilością dodatków, usprawniających lub ułatwiających działanie na produkcie podstawowym. Dlatego też do każdego produktu przypisanych jest kilka oprogramowań pobocznych, niezwykle potrzebnych, jak np. Hive dla Hadoopa, który pozwala wykonywać tradycyjne zapytania SQLowe na NoSQLowym rozwiązaniu.

Najważniejsi przedstawiciele tego segmentu to:

  1. Hadoop oraz jedne z jego najpopularniejszych dystrybucji:
  2. Amazon
  3. Cassandra
  4. SGI
  5. CouchBase
  6. mongoDB
  7. DataStax
  8. Rainstar
  9. I wiele innych.

Ciąg dalszy nastąpi…

W kolejnej części artykułu napiszę o narzędziach do integracji danych oraz o tym, co jest najbliższe osobom decyzyjnym w firmach, a zatem o końcówkach analitycznych i usługach.

O Autorze:
Codziennie spędza minimum 8h z ludźmi, którzy stworzyli jedną z pierwszych i największych hurtowni danych w Polsce (a może i w Europie).

Manager start-upów IT z kilkuletnim stażem. Od 2010 roku z sukcesem zarządza hurtownią danych w nurcie Big Data – zbudował i utrzymuje system ankietowy oraz wszystkie narzędzia do przeprowadzania badań opinii w Internecie. Obecnie projektuje produkt wykorzystujący Big Data, który podbije świat. Posiadacz czarnego pasa w dzieleniu się know-how i doświadczeniami – w takie otwarte podejście wierzy najbardziej.

Prywatnie znany z pracoholizmu, porzucenia doktoratu z informatyki na rzecz pracy, AGILE (czyt. Edziajala od imienia egzekutora metodyki) oraz żółtej czapki. Oczywiście wszystkiego się wypiera;)