Obecnie zdobywając informacje na tematy informatyczne, zwykle udajemy się na szkolenia, odbywamy kursy online, oglądamy tutoriale… czasami jednak warto wrócić do korzeni zdobywania wiedzy, szczególnie w przypadku bardziej skomplikowanych kwestii. Każdy chyba, kto w ogóle słyszał o systemach Big Data, zgodzi się, że operowanie jakimikolwiek danymi w tak ogromnych zbiorach może stanowić prawdziwe wyzwanie, nawet dla tych, dla których praca na dużych zbiorach informacji nie stanowi nowości. Warto w takiej sytuacji skorzystać z możliwości uzupełnienia wiedzy, jaką dają, zwykłe, jak by się wydawało książki.
Układ konstrukcyjny książki
Publikacja N. Marz-a i J. Warren-a nazywana jest często podręcznikiem do informatyki, między innymi z powodu, iż dane w niej zawarte wyjaśnione są w możliwie prosty sposób, etapami, gdzie dla każdej warstwy wybrana została jedna implementacja, którą kolejno omówiono w rozdziałach. Książkę tą nazywa się podręcznikiem również ze względu na sposób prezentacji informacji – w każdym podrozdziale znaleźć można streszczenia i podsumowania najważniejszych informacji, powtarzające się na początku i na końcu tekstu. Niektórzy czytelnicy odbierają może ten zabieg jak irytującą konwencję, sugestię autorów, iż czytelnik nie grzeszy zbyt dobrą pamięcią. Postawmy się jednak w nieco innej sytuacji, do której jako odbiorca poniekąd „z doskoku” się przychylam. Realia współczesnej pracy wyglądają w taki sposób, iż raczej rzadko mamy możliwość na spokojnie usiąść z książką w cichym miejscu, robić notatki, testować omawiane rozwiązania, czy wykonywać inne czynności, które akurat nam pomagają przyswajać wiadomości. Powtarzające się streszczenia ułatwiają powrót do tematu po przerwie, skupienie się na treści wtedy, kiedy czytanie przerywamy, aby zająć się czymś innym, zadaniem na daną chwilę pilniejszym.
Co czytelnik może znaleźć w poszczególnych częściach
Struktura książki podzielona została, oprócz informacji początkowych i końcowych, na 18 rozdziałów, podzielonych na 3 zasadnicze części. Części te dotyczą kolejno warstwy przetwarzania wsadowego, warstwy obsługującej oraz warstwy przetwarzania czasu rzeczywistego. W rozdziale pierwszym, zatytułowanym „Nowy paradygmat dla Big Data” omówione zostały w pierwszej kolejności schematy o mniejszej skali, a również przyczyny, dla jakich okazały się one zawodne w ujęciu dużych baz danych. Autorzy przedstawili również krótki opis właściwości systemu, niezbędnych, aby mógł on służyć do przetwarzania omawianych zbiorów informacji. Poruszyli kwestię problemów związanych z architekturami w pełni przyrostowymi, wśród których moich zdaniem na szczególną uwagę zasługuje krótki podrozdział na temat braku odporności na ludzkie błędy – czyli zagadnieniem, z którym w jakiejś formie stykamy się nieustannie. W podrozdziale znajdują się również informacje na temat architektury lambda, a również najnowszych trendów w technologii, rozważania zamyka prezentacja przykładowej aplikacji o cechach omówionych powyżej.
Kilka słów o przetwarzaniu wsadowym
W części pierwszej, dotyczącej przetwarzania wsadowego, jak nietrudno się domyślić, Nathan Marz i James Warren zaczynają przede wszystkim od przekazania czytelnikowi informacji na temat tego, jakie właściwości dane muszą posiadać, aby mogły funkcjonować w modelu Big Data. Kolejny rozdział tej części dotyczy zilustrowania opisanych powyżej informacji – ponownie taki sposób prezentacji wiadomości dla niektórych czytelników może być denerwujący, w mojej ocenie jednak pomaga zrozumieć i poprawnie odebrać omawianą wiedzę. Taki układ przekazywania informacji pojawia się w całym podręczniku, przesądzając o ich łatwości odbioru i przyswajalności. Z drugiej strony, jeżeli komuś nie potrzeba powtórzeń, może je po prostu pominąć – znacznie gorzej byłoby, gdyby nie występowały, a czytelnik o mniej uważnej percepcji musiałby cały czas wracać do poprzednio omawianych zagadnień. Wracając do zawartości pierwszej części – następnie autorzy przybliżają kwestię przechowywania danych w omawianej warstwie, sugerując jednocześnie najlepsze rozwiązanie pamięci masowej przy określonym typie danych. Kolejno następuje ilustracja omówionego zagadnienia, następnie omówienie samej warstwy przetwarzania wsadowego. Dwa ostatnie rozdziały tej części skupiają się na omówieniu przykładowej warstwy przetwarzania wsadowego – z podziałem na architekturę i algorytmy oraz implementację.
Podstawy odnośnie warstwy obsługującej i warstwy przetwarzania czasu rzeczywistego
Część druga książki dotyczy warstwy obsługującej. W pierwszym rozdziale z tej części autorzy przedstawiają jej właściwości, kwestie metryk wydajności, a również porównują z rozwiązaniem w pełni przyrostowym. W sposób typowy dla struktury podręcznika, kolejny rozdział dotyczy ilustracji zagadnień omówionych w poprzednim.
Ostatnia część dotycząca warstwy przetwarzania czasu rzeczywistego zawiera 6 rozdziałów. Pierwszy z nich dotyczy obrazów czasu rzeczywistego. Wśród kwestii, na które autorzy zwrócili szczególną uwagę znalazły się zagadnienia związane z przechowywaniem tego rodzaju obrazów, a również wyzwaniami związanymi z obliczeniami przyrostowymi. Odrębne podrozdziały poświęcone zostały tematyce porównania aktualizacji synchronicznych z asynchronicznymi, co szczególnie ułatwia zrozumienie tego zagadnienia. W części tej znajdują się również rozważania dotyczące kolejkowania i przetwarzania strumieniowego, jako przykład twórcy książki wybrali w tym przypadku Apache Storm. Autorzy wyjaśniają również kwestie związane z mikrowsadowym przetwarzaniem strumieniowym, omawiając kwestie semantyczne z wykorzystaniem interfejsu Trident. Ostatni rozdział poświęcony został zagadnieniu tajników architektury Lambda, oczywiście każdorazowo, zgodnie z układem książki, po omówieniu danego zagadnienia umieszczony został rozdział dotyczący ilustracji informacji przekazanych uprzednio.
Dlaczego warto wybrać akurat pozycję tych autorów
Książkę wyróżniają przede wszystkim prostota i jasność przekazu informacji, sprawiające, iż z takim samym podejściem czytelnik zaczyna podchodzić do zagadnienia przetwarzania danych. Ogólnie uważa się ją za reprezentatywny i użyteczny przegląd technik wykorzystywanych przy przetwarzaniu Big Data, tym niemniej w przypadku niektórych zagadnień (jak opracowanie dla składowej X), może okazać się pozycją podstawową, którą należy uzupełnić innymi.