Big Data & Analytics Optymalizacja biznesu Autor: Wiktor Jóźwicki, Scapaflow Senior Consultant Data wydania: 05.02.2014
Wprowadzenie Niniejszy dokument przedstawia zagadnienie Big Data w ujęciu zapotrzebowania biznesowego, wskazuje również najczęstsze zastosowania w firmach z wielu branż. W dalszej części następuje szczegółowe porównanie z dotychczasowymi rozwiązaniami BI opartymi na hurtowniach danych. Wyszczególnione są także różnice determinujące odmienne, czasem uzupełniające się zastosowania obu rozwiązań. Na końcu opisana została architektura i części składowe najpopularniejszej platformy Apache Hadoop. Rozwój Big Data Wobec wykładniczo rosnącej wielkości składowanych danych, największe korporacje zaczęły rozpatrywać, czy korzystając z ogromu niewykorzystywanych do tej pory informacji nie dałoby się zoptymalizować biznesu poprzez odpowiednie wnioskowanie, automatyzację bądź ulepszenie dotychczasowych procesów. Dane rosną w tempie 40% rocznie, osiągną objętość 45 ZB do 2020 roku [8]
W 2004 roku inżynierowie Google przedstawili założenia nowatorskiego podejścia do przetwarzania ogromnych ilości danych o nazwie MapReduce. Stworzony model pozwala zrównoleglić obliczenia, odbywające się na wielu rozproszonych serwerach jednocześnie. Podzielony jest na 2 fazy: Map oraz Reduce. W pierwszej wykonywane są takie operacje jak sortowanie i filtrowanie danych, natomiast w drugiej dokonywane jest podsumowanie, agregacja danych. Aktualnie, popularnym narzędziem wykorzystującym założenia MapReduce, które służy do operowania na wielkich zestawach danych jest Hadoop otwarte oprogramowanie, które stworzył Doug Cutting (pracownik Yahoo!) niedługo po pojawieniu się MapReduce. Hadoop rozwijany jest przez Apache Software Foundation, został zaadaptowany przez firmy z wielu branż, a wkład w jego rozwój wnoszą największe korporacje. Firmy wykorzystują szerokie spektrum rozwiązań oferowanych przez Apache Hadoop w sposób bezpośredni albo korzystając z jednej z kilku dystrybucji tego oprogramowania takich jak Hortonworks HDP albo Cloudera, oferujących zintegrowane platformy i dodatkowe funkcjonalności. W obu przypadkach potrzebne jest jednak dalsze dostosowanie narzędzi, zaplanowanie przepływów danych, wybór i implementacja algorytmów przetwarzania danych pod kątem potrzeby i zastosowań biznesowych, a nierzadko również interaktywne aplikacje korzystające z modeli statystycznych działające w czasie rzeczywistym. Ponadto narzędzia Big Data są już na tyle rozwinięte, że w łatwy sposób można je zintegrować z relacyjnymi bazami danych, najpopularniejszymi hurtowniami i narzędziami BI do wizualizacji (Microsoft BI, MicroStrategy, Oracle BI Tools, SAP Hana, Tableau, Microsoft Excel i wiele innych). Istnieją też alternatywne podejścia, takie jak Bash Reduce, Disco Project, czy Spark. Zostały napisane w odmiennych językach (często skryptowych) i pozwalają np. na przetwarzanie zapytań w całości w pamięci operacyjnej (in-memory processing) nawet na serwerach rozproszonych. Potrzeba biznesowa i zastosowania Dane, które wykorzystuje się w Big Data często były do tej pory uważane za średnio lub mało przydatne. Nie do końca wiadomo było co z nimi można zrobić, jednak ze względu na niskie koszty gromadzone były na wszelki wypadek. Ponieważ dziś dostępne są już odpowiednie techniki i narzędzia, w pierwszej kolejności należy postawić sobie jedyne właściwe pytanie: gdzie i jak mogę skutecznie wykorzystać Big Data?
Patrząc z biznesowego punktu widzenia, istnieje mnóstwo wariantów użycia Big data, możliwych do zastosowania praktycznie w każdej branży. Oczywiście im większa organizacja i im więcej lub z większą częstotliwością zbiera danych, tym szersza gama zastosowań. Poniżej przedstawionych zostało tylko kilka przykładowych sposobów wykorzystania narzędzi Big Data: Aplikacje i rozwiązania pozwalające podejmować decyzje operacyjne na podstawie modeli statystycznych i eksploracji danych (serwis wonga.com decyduje w czasie rzeczywistym czy udzielić klientowi pożyczki na podstawie danych i zachowań pochodzących z serwisów społecznościowych, Google dobiera odbiorców reklam na podstawie ich prywatnych danych). Zadania optymalizacyjne, np. dobieranie najlepszej trasy przewozu w celu zmniejszenia kosztów paliwa, wyznaczanie najbardziej opłacalnych obszarów pod nowe placówki, sklepy, siedziby, inwestycje. Analiza konwersacji z mediów społecznościowych, blogów, forów internetowych w celu zbadania opinii i sentymentów jakimi klienci darzą firmę lub jej produkty. Optymalizacja UX i interfejsów, zwiększanie efektywności reklam poprzez analizę kliknięć, logów i zachowań użytkowników aplikacji. Iteracyjne aktualizowanie i polepszanie rozbudowanych struktur danych na podstawie nowych informacji, zmieniających stan struktury (Yahoo! co kilka minut aktualizuje graf wiadomości na podstawie nowych historii. Narzędzia Big Data odnajdują powiązane historie, usuwając i dodając nowe połączenia w grafie [11]). Wykrywanie podejrzanych zachowań użytkowników, prób oszustw, obszarów miejskich o zwiększonej przestępczości, zagrożeń sieciowych. Przetwarzanie danych strumieniowych, oczyszczanie danych w locie, ETL, bezpieczne przechowywanie danych, szybki dostęp do danych nieustrukturalizowanych w narzędziach klasy BI. Wizualizacja danych o różnej strukturze, analiza strategiczna.
Research i sprawdzanie teorii za pomocą zapytań ad-hoc dla dużych i niejednorodnych zbiorów danych, analizowanie potrzeb klientów i kierunków rozwoju oprogramowania. Big Data vs Business Intelligence Po zapoznaniu z Big Data trudno się nie zastanowić, czym owa technologia różni się od hurtowni danych i rozwiązań klasy BI sprzed dobrych kilku lat. W hurtowniach największym trudem i nakładem pracy jest obarczony proces ETL, czyli proces czyszczenia, unifikacji i transformacji danych, które z założenia muszą być wpasowane w ścisłą strukturę. Rozwiązania Big Data takie jak Apache Hadoop mogą być postrzegane jako uogólnienie hurtowni, gdzie dane składowane są w luźnej formie bez ograniczeń strukturalnych. Dane przychodzące z dużą częstotliwością i kluczowe dla rozwiązań działających w czasie rzeczywistym mogą być łatwo przechowywane np. w bazach danych typu NoSQL. O ile klasyczny BI jest narzędziem dla zarządu, wspierającym m.in. decyzje strategiczne, to Big Data poprzez zastosowanie w aplikacjach interaktywnych może wspomagać decyzje zwykłych pracowników lub automatycznie podejmować decyzje dotyczące klientów np. jaki produkt najlepiej zareklamować konkretnej osobie albo czy zawarcie umowy z potencjalnym klientem jest opłacalne. Big Data prezentuje zupełnie odmienne podejście - przenosi obliczenia i przetwarzanie do magazynowanych danych, a nie dostosowuje danych do obliczeń - jak ma to miejsce w BI. Z tego względu znacznie łatwiej i częściej stosuje się tutaj metody eksploracji danych i uczenia maszynowego, które są potężnym narzędziem jeśli chodzi o budowanie przewagi konkurencyjnej firm. Klasyczna inteligencja biznesowa na podstawie dosyć sztywnego modelu pozwala wyciągać wnioski, a także potwierdzać bądź zaprzeczać hipotezom, natomiast, Big Data na podstawie danych buduje i stale aktualizuje model decyzyjny oraz pozwala na stawianie nowych hipotez. cecha Hurtownie i BI Big Data Tryb operacji na danych Offline Real-time lub offline Główna domena Decyzje strategiczne Działania operacyjne (ale nie tylko)
cecha Hurtownie i BI Big Data Obecność struktury Obowiązkowa struktura danych Dostęp do danych nieustrukturalizowanych Źródła danych Głównie relacyjne bazy danych Dowolne (również nosql, logi, muzyka, grafika, dane strumieniowe) Przyczynowo - skutkowość Model -> Wnioski Hipotezy -> Fakty Dane -> Model -> Decyzje Dane -> Hipotezy Przechowywanie i przetwarzanie danych Scentralizowane Rozproszone Wymagania Dostosowanie danych do obliczeń Przeniesienie obliczeń i modeli do danych Zestawienie cech charakterystycznych dla klasycznego BI i Big Data Dzięki rozproszeniu przetwarzania, możliwość skalowania oprogramowania jest nieograniczona (przy praktycznie liniowej złożoności). Dzięki temu rozmiar danych nie jest już problemem. Co więcej, ta cecha powoduje, że w niektórych zastosowaniach Big Data może być doskonałym uzupełnieniem rozwiązań analitycznych i BI. Coraz powszechniej stosuje się pojęcie data lake, określające warstwę systemów korporacyjnych, w której jednocześnie występują serwery Big Data i hurtownie danych. W tym przypadku, narzędzia do przetwarzania dużych danych świetnie uzupełniają BI dostarczając albo zunifikowanego widoku na dane, wraz z możliwością dostępu do nich za pomocą standardu języka SQL dla zapytań ad-hoc, albo niezwykle wydajnie ładują ogromne ilości danych bezpośrednio do hurtowni.
Data lake na rysunku środkowa warstwa systemów danych [12] Jak to działa? Apache Hadoop w wersji 2. to framework, który u swoich podstaw utylizuje redundantny i rozproszony system plików HDFS2. Bezpośrednio nad systemem plików działa system operacyjny YARN. Jego zadaniem jest przede wszystkim umożliwienie jednoczesnego działania wielu różnych silników przetwarzających dane, takich jak: MapReduce model programistyczny (dla różnych języków) zadań wsadowych Tez interaktywny silnik ułatwiający wykonywanie całych zestawów zadań
HBase model rozproszonej bazy danych NoSQL z bardzo szybkim dostępem do danych Storm system przetwarzający nieograniczone strumienie danych w czasie rzeczywistym Giraph system do iteracyjnego przebudowywania grafów danych Ponadto, powszechnie używane są narzędzia wykorzystujące silniki MapReduce i Tez: Hive widok hurtowni na dane, umożliwia dostęp do danych za pomocą SQL Pig język skryptowy znacznie przyspieszający pisanie oprogramowania dla MapReduce Hadoop architektura [12]
Źródła [1] Apache Giraph. https://giraph.apache.org/. [2] Apache Hadoop. http://hadoop.apache.org/. [3] Apache Hbase. http://hbase.apache.org/. [4] Apache Hive. http://hive.apache.org/. [5] Apache Pig. https://pig.apache.org/. [6] Apache Storm. http://storm-project.net/. [7] Apache Tez. http://tez.incubator.apache.org/. [8] Atkearney. Styczeń 2013. http://www.atkearney.com/strategic-it/ideas-insights/article/- /asset_publisher/lccgoes4t85g/content/big-data-and-the-creative-destruction-of-today-sbusiness-models/10192. [9] Cloudera. http://www.cloudera.com/. [10] Derrick Harris. Gigaom. 4 Marzec 2013. http://gigaom.com/2013/03/04/the-history-ofhadoop-from-4-nodes-to-the-future-of-data/. [11] gates. developer.yahoo. 18 8 2010. http://developer.yahoo.com/blogs/hadoop/pig-hiveyahoo-464.html. [12] Hortonworks. http://hortonworks.com/. [13] Jeff Kelly. Wikibon. 16 Wrzesień 2013. http://wikibon.org/wiki/v/hadoop:_from_innovative_up-start_to_enterprise- Grade_Big_Data_Platform.