big data mini podręcznik dla laików
DESCRIPTION
ÂTRANSCRIPT
Big Data. Mini-podręcznik dla laików
Filip Cyprowski 2014-06-23
2
Spis treści Co to jest Big Data? ................................................................................................ 3
Kto korzysta z Big Data? ......................................................................................... 6
Big Words – kluczowe pojęcia dla Big Data ............................................................. 7
Data science ........................................................................................................ 7
Data mining ......................................................................................................... 8
Machine learning ................................................................................................. 9
MapReduce ........................................................................................................ 10
Hadoop .............................................................................................................. 13
Narzędzia do analizy Big Data ............................................................................... 14
Big data w małej firmie ......................................................................................... 15
Czy naprawdę musisz? ...................................................................................... 15
Nowe możliwości ............................................................................................... 16
Rozwój technik analitycznych ......................................................................... 16
Rozwój infrastruktury analitycznej ................................................................. 16
Rewolucja Open Source.................................................................................. 17
Zamiast podsumowania – jak zwiększyć efektywność firmy dzięki Big Data? ........ 18
Co my możemy zaproponować? ............................................................................ 19
3
Co to jest Big Data?
Dużo danych? Wielkie dane? Wszyscy o tym słyszymy, ale właściwie nie
wiemy o czym naprawdę mowa i przede wszystkim – jakie znaczenie ma dla nas –
niekoniecznie szefów Facebooka, Google i wielkich projektów naukowych jak
Herschel Space Observatory?
Big Data to przede wszystkim analizy i sposoby przetwarzania danych.
Krótko mówiąc – w kontekście biznesowym – jest to nowy sposób na wyciągnięcie z
rozmaitych danych (internetowych, wewnętrznych - np. z maszyn produkcyjnych)
wiedzy, która przyczyni się do poprawy funkcjonowania firmy. Z reguły zresztą
chodzi o zmianę rewolucyjną, wzbicie firmy na wyższy poziom efektywności.
Dlaczego jednak uznajemy, że jest to nowy sposób? W końcu analizy w firmach
prowadzone są – z różnym natężeniem – od dawna.
Big Data definiuje się najczęściej poprzez trzy warunki (tzw. 3V1). Mówimy
więc, że „data” jest „big”, gdy:
Danych jest dużo („Volume”) – niestety brakuje odpowiedzi na
pytanie, od jakiej ilości danych stwierdza się, że tak jest. Kilka
gigabajtów? Terabajt? Kilka terabajtów? Kwestia ta jest, jak się
okazuje, dość subiektywna. Wrócimy do tego.
Dane szybko wchodzą i wychodzą („Velocity”) – czyli analizy
tworzone są często w czasie rzeczywistym, są silnie
zautomatyzowane (np. bez interakcji z człowiekiem pobierają
niezbędne dane, przetwarzają je itd.) oraz ilość danych stale się
powiększa.
Dane są zróżnicowane („Variety”) – mają różne formaty (np. teksty,
zdjęcia, filmy, dokumenty) i często są nieustrukturyzowane. Oznacza
to, że aplikacje i programy Big Data muszą być zdolne do ich
przetwarzania i strukturyzowania. Co to oznacza? Wyjaśnimy w
dalszych częściach mini-ebooka.
1 Czytelnik może spotkać się również z definicją 4V, ale ów dodatkowy komponent („Value” – czyli
fakt, iż z danych można wyciągnąć informację) jest stricte biznesowy i… subiektywny. Analiza bezużytecznych danych to – w kwestach technicznych – to samo, co analiza danych użytecznych.
4
Załóżmy więc teraz trzy autentyczne przypadki analiz i zastanówmy się, czy
można je określić jako Big Data:
Przypadek 1 nie spełnia żadnego warunku Big Data – danych jest właściwie
mało (choć już mogą się nie mieścić w arkuszu Excela), zaś analizy prowadzone są
przede wszystkim przez analityków. To oni kierują zapytania do bazy danych, oni
generują raporty.
Przypadek 2 nie spełnia wszystkich wymagań Big Data, choć ma pewne
wymagane cechy. Dane nie są silnie ustrukturyzowane („Variety”), a ich
zdobywaniem i przetwarzaniem zajmuje się specjalna aplikacja („Velocity”). Żeby
wydobyć z danych wiedzę konieczna jest co prawda praca analityków, ale wciąż
duża część przetwarzania odbywa się automatycznie. Problemem jest jednak
niewielka ilość danych.
Przypadek 3 spełnia wszystkie wymagania Big Data. Dane przetwarzane są
automatycznie („Velocity”), są nieustrukturyzowane („Variety” – zanim będzie je
można zamknąć w tabeli trzeba je „pociąć”, „posortować” itd.) oraz jest ich dużo i
stale przyrastają („Volume”).
Przypadek 1.
• Mamy 3GB danych dotyczących produkcji (liczba wyprodukowanych towarów w danej godzinie). Dział analityków na bieżąco prowadzi analizy prognostyczne w celu uzyskania jak największej wydajności produkcji.
Przypadek 2.
• Specjalna aplikacja ściąga z portali społecznościowych wypowiedzi klientów na temat Twojej marki, a następnie analitycy czerpią z nich informacje o satysfakcji klientów. (załóżmy, że dziennie napływa ok. 100 wypowiedzi).
Przypadek 3.
• Firmowa aplikacja zbiera dane z czujników sensorycznych w maszynach i na bieżąco podaje niezbędne statystyki. Dane senoryczne przyrastają z dużą prędkością (np. 1GB na dzień).
5
Warto jednak się zastanowić, czy w kwestii analizy i potencjalnych korzyści z
tych wszystkich przypadków różnią się one tak bardzo i czy różnica ta jest istotna
dla menadżerów i właścicieli przedsiębiorstw? Ważne informacje można wydobyć
zarówno z klasycznego Business Inteligence (Przypadek 1) jak i klasycznego Big
Data (Przypadek 3). Przypadek 2 to zaś ani Business Inteligence2 ani Big Data,
natomiast doświadczenie podpowiada nam, że taki system to nieocenione źródło
wiedzy. W dodatku – pod względem analitycznym niewiele różni się od Przypadku
3. Jeśli pójdziemy dalej w tych rozważaniach, to okaże się, że nie tylko nie
potrafimy już dokładnie zdefiniować, czym jest Big Data, ale również Business
Intelligence.
Z powodu tych nieścisłości proponuję traktować Big Data szerzej, jako każdy
zbiór danych, który jest trudny w utrzymaniu, a wyciągnięcie z niego wiedzy
wymaga zastosowania skomplikowanych procedur przetwarzania i analizy. W
pewnym stopniu odpowiada to definicji Michaela Franklina z University of
California:
"Big Data is any data that is expensive3 to manage and hard to
extract value from"
Dodatkowo, ponieważ zajmujemy się przede wszystkim wykorzystaniem
technologii Big Data w firmach, które niekoniecznie mają problem z petabajtami
danych, uznajmy, że Big Data będziemy postrzegać przez pryzmat Data Science (o
tym w kolejnych rozdziałach). Tam gdzie dane są nieustrukturyzowane,
zróżnicowane i rozsiane, nie mieszczą się w tabelach Excela i wymagają
zastosowania skomplikowanych technik analizy – tam mamy do czynienia z czymś
co bardzo przypomina Big Data. Przynajmniej pod względem analitycznym i tego,
jaką wartość można uzyskać z danych.
2 Oczywiście można się spierać – niemniej wydaje się, że text mining rzadko pojawia się w
kontekście business intelligence. Niesłusznie zresztą, jeśli mnie o to pytacie. 3 Wyrażenie „drogie” zastąpiono „trudnym” głównie z tego powodu, że w ostatnich czasach
magazynowanie danych za sprawą rozwoju cloud computing stało się dużo tańsze. Z drugiej strony wciąż wielkości rzędu PB mogą znacząco uszczuplać budżet przedsiębiorstwa. Mało która firma jednak rzeczywiście potrzebuje aż tak pojemnych serwerów.
6
Kto korzysta z Big Data?
Wszyscy. Dosłownie wszyscy. Big Data wykorzystałeś, żeby ściągnąć tego
ebooka. Jeśli korzystasz z Twittera, Google, czy Facebooka – to znaczy, że
wykorzystujesz Big Data. Jeśli śledzisz ruch na stronie przez Google Analytics to
wykorzystujesz już Big Data Analytics. Wciąż rośnie rynek aplikacji, które opierają
się na technologiach związanych z BD i oferują firmom i prywatnym użytkownikom
różnego rodzaju usługi. Wiadomo jednak, że nie o takim wykorzystaniu Big Data
tutaj mówimy.
Dla wielu dużych przedsiębiorstw Big Data oznacza problem – ich bazy
danych rosną bardzo szybko i coraz trudniej wyciągnąć z nich informacje
(obliczenia trwają zbyt długo, brakuje miejsca na magazynowanie danych). Dlatego
konieczne są w nich „małe rewolucje” takie jak wymiana systemu i technik
analitycznych.
Ponadto przejście na bardziej sprawne systemy zarządzania wiedzą otwiera
dla firm nowe możliwości. Możemy analizować dane sensoryczne, logi, możemy
projektować aplikacje zbierające dane z serwisów internetowych i na bieżąco je
analizujące. Wyobraź sobie tylko możliwość stałego monitorowania danych na
temat sprzedaży na Allegro, Ebayu, czy AliBaba. Zresztą Big Data to nie tylko
analiza sensu stricto. To również złożone systemy rekomendacyjne, czy systemy
polepszające workflow w przedsiębiorstwach. Tak naprawdę w kwestii tego, jak
można wykorzystać dane ogranicza nas już wyłącznie wyobraźnia (i niekiedy
pieniądze).
Pozostaje oczywiście pytanie, czy Ty – czytelnik tego e-booka – naprawdę
potrzebujesz Big Data. A jeśli nie, to czy zwiększając wiedzę na ten temat możesz
osiągnąć jakieś korzyści?
Zdecydowanie tak. Nawet jeśli nie potrzebujesz takich rozwiązań jak
Facebook, Google, Amazon i inne wielkie firmy, z pewnością potrzebujesz analityki.
Z Big Data jest trochę jak z lotami w kosmos. W statku kosmicznym znajdzie się
kilku astronautów, ale zwykły człowiek dostanie przynajmniej patelnię teflonową.
7
Big Words – kluczowe pojęcia dla Big Data
Odkąd Big Data stało się popularne w USA dociera do nas coraz więcej tzw.
buzzwords, modnych terminów, które rzekomo mają zrewolucjonizować
funkcjonowanie przedsiębiorstw. Oczywiście, jak to zwykle bywa ze świeżymi
koncepcjami, szybko okazuje się, że nie są one aż tak rewolucyjne. Choć zwykle w
określonych warunkach naprawdę mogą przyczynić się do polepszenia sytuacji
przedsiębiorstwa. Np. popularne jeszcze niedawno TQM/Kaizen spotkało się
zarówno z falą entuzjazmu jak i krytyki. Niekiedy rewolucjonizowało firmy, a
niekiedy kompletnie nie było im potrzebne.
Ale do rzeczy. Jakie pojęcia wiążą się z Big Data?
Data science
Gdybyśmy bardzo chcieli, moglibyśmy zrównać termin data science po
prostu ze statystyką. W pewnym sensie bowiem, każdy data scientist musi być
statystykiem lub powinien znać podstawy wnioskowania statystycznego4. Jednak
nie każdy statystyk może poszczycić się tym tytułem. Dlaczego? Cóż, osoba
zajmująca się data science nie jest jedynie analitykiem danych. Jej zadanie nie
ogranicza się wyłącznie do wyciągnięcia wniosków ze skoroszytu Excela lub bazy
SQL. Ona te bazy również sama tworzy. Tym samym do jej obowiązków należy:
Kreatywne myślenie nad możliwością przełożenia rozproszonych i
nieoczywistych danych na dane możliwe do analizy (i mające potencjał
rozwojowy dla przedsiębiorstwa lub instytucji),
Przetwarzanie danych i przygotowywanie ich do analizy (z pomocą
specjalistycznych programów i języków programowania – Python, R, Java
etc.),
Tworzenie całych systemów bazodanowych, rekomendacyjnych,
analitycznych etc.,
Wreszcie – analiza. Zwykle chodzi jednak nie o statystykę opisową, ale
stosowanie skomplikowanych algorytmów do analizy klastrów,
prognozowania etc..
4 Prawdę mówiąc dużo więcej niż podstawy.
8
Czy potrzebujesz w swojej firmie data science? Jeśli Twoja firma prowadzi
choćby profil na facebooku – jak najbardziej. Jeśli prowadzisz biznes e-commerce –
jest to konieczność.
Data mining
To słowo pojawiało się już w setkach odmian. Sam byłem jednym z tych
ludzi, którzy niekiedy całkiem świadomie używali go w nieco innych znaczeniach
niż przyjęte. Wynika to z faktu, że słowo „mining” może być nieco mylące, sugeruje
bowiem, że w jakiś sposób wydobywamy skądś dane, a tymczasem – chodzi nam o
informację. Z gąszczu danych wydobywamy informację. W ostatnich latach
data mining jako czynność łącząca takie dziedziny nauki jak statystyka,
programowanie i sztuczna inteligencja stała się szczególnie popularna wśród
programistów, którzy jednak rzadko rzeczywiście wiedzą o co w niej chodzi.
Data mining to przede wszystkim zbiór technik analitycznych, które
pozwalają na badanie zależności w dużych zbiorach danych. Jak wygląda to krok po
kroku? Spójrzcie na schemat:
Wstępna eksploracja polega na odkryciu pewnych własności danych oraz na
niezbędnym ich przekształceniu. Np. gdy analizujemy prawdopodobieństwo
Wstępna eksploracja
Dopasowanie modelu i jego weryfikacja
Stosowanie modelu do analizy
nowych, podobnych danych
9
przeżycia na Titanicu (użytkownicy Kaggle mogli już ten temat zgłębiać5) najpierw
badamy własności poszczególnych zmiennych – np. ile było w populacji kobiet,
mężczyzn, w jakich kabinach się znajdowali i w jaki sposób jest to powiązane.
Następnie dopasowujemy model, łączymy modele, weryfikujemy je itd., tak
aby w jak najlepszy sposób wyjaśniały określone zjawisko lub je przewidywały.
Dobór i weryfikacja modelu to zadanie skomplikowane i wymagające dużego
nakładu pracy, ale przynoszące niespodziewanie doniosłe efekty. A kiedy już
dopasujemy i zweryfikujemy model – możemy go stosować do nowych, podobnych
danych. Czyli data mining to idealne rozwiązanie np. do analizowania dużych
systemów CRM.
Ale nie tylko. Coraz częściej metody data mining wykorzystuje się np. do
analizy tekstów. Ja sam wykorzystuję techniki text mining do wykrywania insightów
np. z portali społecznościowych, czy forów internetowych.
Machine learning
Termin, który musimy znać, jeśli mówimy o data mining. Właściwie każdy
model wykorzystywany w data mining opiera się na uczeniu maszynowym (a tym
jest właśnie machine learning). Co ciekawe, o ile w przypadku data mining i big
data istnieją pewne problemy pojęciowe – przyznacie w końcu, że nie jest to to,
czym się na początku wydaje – o tyle machine learning jest określeniem dość
intuicyjnym. Na czym polega?
To bardzo proste. Program/algorytm uczy się wykrywać pewne zależności.
Może to robić zarówno jeśli damy mu na wstępie jakiś materiał do nauczenia
(wówczas nazywa się to uczeniem maszynowym z nauczycielem – supervised
machine learning) lub nie (bez nauczyciela – unsupervised machine learning).
Podręcznik ten ma być wybitnie prosty, dlatego po prostu przedstawię jak działa
machine learning na przykładach.
Przykład 1. Mamy zestaw danych określających cenę produktu i
wielkość sprzedaży. Chcemy określić, przy jakich cenach wielkość
sprzedaży spadnie.
5 Kaggle to pierwsza na świecie społeczność data scientist. Zbieramy się i rozwiązujemy zadania
analityczne. Pasjonujące, prawda?
10
Przykład 2. Mamy zestaw cech naszych klientów z bazy danych
zamówień – płeć, adres, wielkość zamówienia, może jakieś uwagi.
Chcemy zobaczyć, czy można podzielić naszych klientów na
konkretne segmenty, do których można by było adresować inne
strategie marketingowe.
Przykład 1 to oczywiście uczenie maszynowe z nauczycielem. Algorytm
otrzymuje dane z naszej bazy i w oparciu o nie „decyduje” w jaki sposób cena
wpływa na wielkość sprzedaży. Tym samym pozwala przewidzieć, że jeśli znacząco
podniesiemy ceny, spadnie nam sprzedaż6.
Przypadek drugi wydaje się nieco ciekawszy, ponieważ na wstępie nie
jesteśmy nawet w stanie stwierdzić ile segmentów chcielibyśmy uzyskać. Innymi
słowy nasz algorytm sam musi to odkryć. Brzmi wspaniale, prawda? Program
wykonuje za nas niezwykle skomplikowaną pracę i dostarcza nam przydatną
wiedzę. W rzeczywistości sprawa nie jest aż tak prosta, ale to już nasze –
analityków – zmartwienie.
MapReduce
To stosunkowo najtrudniejszy termin w całym gąszczu Big Words – głównie
ze względu na fakt, że nie będąc analitykiem lub programistą dość trudno go
zrozumieć. Polska Wiki podaje, że jest to "platforma do przetwarzania
równoległego dużych zbiorów danych w klastrach komputerów stworzona przez
firmę Google. Nazwa była zainspirowana funkcjami map i reduce z programowania
funkcyjnego.". To jednak tylko część definicji – w dodatku niekoniecznie ta, która
nas interesuje.
MapReduce to – mówiąc prosto – nowy sposób rozwiązywania problemów
programistycznych i analitycznych. Jak powiedziano, służący do równoległego, a
zatem szybszego (i często po prostu możliwego do zrealizowania) przetwarzania
danych. W „R” – języku, który szczególnie sobie upodobałem, odpowiednikiem
paradygmatu MapReduce jest paradygmat SAC (Split Apply Combine). Pokrótce
przedstawię na przykładzie jego funkcjonowanie.
6 Oczywiście to przykład bardzo uproszczony – już teraz wiadomo, że konieczne byłoby w tym
przypadku zastosowanie szczególnego modelu regresji nieliniowej.
11
Załóżmy, że posiadamy bazę danych z logów http, która przekazuje nam
informację, kto i kiedy wchodził na naszą stronę. Taka baza (po przekształceniu
odpowiedniego log-file) wygląda mniej więcej tak:
Tabela 1
IP Użytkown
ik
Czas Zapytanie Protokó
ł
Statu
s
Bajt
y
Start URL
123.123.123.123 - 26/Apr/2014
00:17:19
portfolio-
item/big-
data-mini-
podrecznik
-laikow/
HTTP
1.0.
200 1276
3
-
145.145.145.145 … … … … … … …
… … … … … … … …
Podobne bazy – zwłaszcza jeśli mamy bardzo dużo wejść na stronę – potrafią
mieć milion i więcej wierszy (zwłaszcza jeśli doliczymy do nich odwiedziny
google’owskich crawlerów). Załóżmy, że chcemy geolokolizować naszych
użytkowników – oznacza to, że do każdego wiersza konieczne jest dołożenie
jednego rekordu np. z nazwą miejscowości, z której otrzymaliśmy zapytanie.
„Tradycyjny” algorytm po prostu sprawdzałby każdy kolejny wiersz po kolei,
porównywałby numer IP z osobną bazą danych, która zawiera objaśnienia do
znanych numerów IP. Z pewnych względów „wędrowanie” algorytmu po całym
milionie wierszy zajmuje jednak bardzo dużo czasu. W niektórych przypadkach
natomiast może być wręcz niemożliwe (dostatecznie duża baza może zawiesić np.
R). Musimy więc szukać rozwiązania nietradycyjnego.
W pierwszej fazie (faza Map lub – gdy mowa o R – faza „Split, Apply”)
rozbijamy tabelę na mniejsze kawałki. Otrzymujemy około kilkuset tabel, z których
każda odpowiada unikalnemu adresowi IP. Wówczas na każdej z tych tabel
dokonywana jest odpowiednia operacja – tzn. przypisanie nazwy miejscowości do
adresu IP. Rezultat pierwszej fazy wygląda mniej więcej tak:
Tabela 2
IP … Adres
123.123.123.12 … Pozna
IP … Adres
134.134.134.13 … Krakó
IP … Adres
145.145.145.14 … Warszaw
12
3 ń
123.123.123.12
3
… Pozna
ń
4 w
134.134.134.13
4
… Krakó
w
5 a
145.145.145.14
5
… Warszaw
a
Nic wielkiego? Tak się tylko wydaje. Musicie sobie bowiem wyobrazić, że
każda z tych tabel może być teraz przetwarzana równocześnie na kilku
komputerach. Pierwszą tabelę przetwarza Twój komputer, drugą komputer kolegi z
działu sprzedaży, a trzecią komputer sekretarki. W tym samym czasie. Praca, która
normalnie musiałaby zostać wykonana przez jeden komputer i zajęłaby
przynajmniej kilka minut, zostanie wykonana w sekundy, dzięki rozproszeniu zadań
pomiędzy inne komputery.
W drugiej fazie (Reduce lub – dla R – Combine) „łączymy” nasze części w
jedną tabelę. Przy czym niekoniecznie musi to być Tabela 1 z dodatkową kolumną
zawierającą nazwy miejscowości. Równie dobrze możemy każdą kolejną tabelę
podsumować (np. funkcją „nrow” w R, która zwraca liczbę wierszy w tabeli) i na
etapie Reduce otrzymać już taką tabelę:
Tabela 3
Poznań 100
Warszawa 92
Kraków 87
Oczywiście zdaję sobie sprawę, że nie każdy rozumie, na czym rzeczywiście
polega rewolucja w tym podejściu, a ci którzy rozumieją, pytają zapewne –
„naprawdę nikt na to wcześniej nie wpadł?”. Dlatego albo zaufacie mi i rzeszy
analityków, data scientists i data engineers, albo zastanówcie się nad tym:
Musimy przetransportować 40 ton zboża. Która z poniższych opcji jest
najlepsza?
a) Zapakujemy całe 40 ton do jednego powozu, napoimy konia sterydami i
będziemy liczyć na to, że ruszy,
b) Rozłożymy ładunek na ~60 powozów. Koń przewiezie każdy powóz
osobno,
c) Rozłożymy ładunek na ~60 powozów i wypożyczymy jeszcze 59 (bo
jednego już mamy) koni, które przewiozą ładunek.
13
Widzicie, już druga opcja to trochę MapReduce. Trzecia opcja to MapReduce
w Apache Hadoop.
Hadoop
Jeśli jesteście choć trochę zainteresowani tematem Big Data, to znaczy, że
musieliście się spotkać z tym pojęciem. Problem polega na tym, że tak naprawdę
niewielu ludzi dokładnie rozumie, co to takiego. Temat jest dość obszerny, dlatego
uznałem, że najważniejsze fakty dotyczące Hadoopa najlepiej przedstawić w
punktach:
1. Apache Hadoop nie jest programem ani językiem programowania. Jest
pewnym środowiskiem, tzw. frameworkiem, zestawem narzędzi, które
służą do przetwarzania dużych, rosnących i różnorodnych zbiorów
danych.
2. Żeby zrozumieć czym jest Hadoop należy przyswoić sobie przynajmniej
dwa pojęcia, które stanowią podstawę jego architektury: MapReduce i
HDFS. Pierwsze pojęcie zostało już krótko wytłumaczone. Pojęcie drugie
oznacza tyle, że dane w Hadoop przetwarzane są jednocześnie na wielu
komputerach. Połączenie MapReduce i HDFS daje olbrzymie możliwości
do przetwarzania ogromnych baz danych.
3. Hadoop świetnie radzi sobie z wszelkimi błędami w danych (ze względu
na fakt, że każdy plik przechowywany jest zwykle przynajmniej w kilku
node’ach).
4. Hadoopa w analityce używa się w kilku przypadkach:
Jeśli danych jest więcej niż 10TB (granica jest raczej arbitralna, ale
można z dużą dozą pewności stwierdzić, że poniżej 10TB można
doskonale radzić sobie np. przy pomocy Pythona; R w tym temacie
bywa problematyczny, ale też jest to możliwe),
Jeśli dane są bardzo różnorodne – np. mamy do czynienia
jednocześnie z danymi ustrukturyzowanymi (np. z naszego
serwera SQL), semistrukturalnymi (np. XML) i
nieustrukturyzowanymi (np. zdjęcia, filmy etc.),
14
Jeśli wiemy, że ilość danych będzie rosła – Hadoop pozwala na
właściwie automatyczne „dostosowanie się” aplikacji do
zwiększonej liczby danych. Wszystko, co trzeba zrobić, to dołożyć
do systemu nową maszynę.
5. Hadoop nie musi być trudny. Powstało już kilka dystrybucji ułatwiających
operowanie na Apache Hadoop. Cloudera, Hortonworks, MapR –
wszystkie one dostarczają klientowi przyjazny interfejs i łatwy dostęp do
wygodnych rozszerzeń ułatwiających przetwarzanie danych: Apache Pig,
Hive, HBase etc.
Narzędzia do analizy Big Data
Istnieje szereg narzędzi umożliwiających analizę dużych zbiorów danych. Oto
tylko niektóre z nich:
R (język pisany przez i dla statystyków, posiadający już właściwie
wszystkie niezbędne komponenty: pakiety do wizualizacji danych,
pakiety do łączenia R z innymi językami, np. z Javą i hurtowniami
danych; w ostatnich latach rozwija się nawet osobna infrastruktura do
budowania aplikacji webowych – tzw. R Shine; coraz łatwiej też
pracuje się z R na Apache Hadoop),
Python (znany i lubiany język wykorzystywany w tworzeniu gier,
aplikacji i właściwie wszystkim, co można robić z programowaniem;
jeśli chodzi o analizę interesują nas przede wszystkim moduły NumPy,
SciPy, Sci-kit Learn, Pandas, czy NLTK; wydaje się łatwiejszy i bardziej
intuicyjny niż R oraz lepszy przy zadaniach związanych z text mining,
choć pewności wciąż nie mam),
SAS (nieśmiertelne oprogramowanie do analizy danych w
przedsiębiorstwach; jeśli jesteś menadżerem w średniej lub dużej
firmie to na pewno albo już używasz SAS albo ich przedstawiciel już
do Ciebie dzwonił),
SPSS, Statistica, Stata (programy przeznaczone do analizy
statystycznej; choć sam nie posiadam w nich doświadczenia, wiem,
że moi współpracownicy bardzo je sobie chwalą; wydają się łatwiejsze
15
w obsłudze niż np. R, choć niestety – podobnie jak SAS - trochę
kosztują),
Matlab (znany i wciąż szeroko wykorzystywany język do analizy
danych, statystyki i wizualizacji danych; często porównywany z R,
choć prawdopodobnie w najbliższych latach będzie ustępował
swojemu bezpłatnemu koledze),
Apache Mahout (biblioteka Java do uczenia maszynowego – słabo
poznane i stosunkowo nowe narzędzie; podobno jedno z najlepszych,
jeśli chodzi o zadania związane z Natural Language Processing;
przede wszystkim jednak – fakt, że Mahout jest częścią rodziny
Apache, sprawia, że jest idealnym rozwiązaniem do łączenia z
Hadoop).
Big data w małej firmie
Przedstawiliśmy pokrótce najważniejsze sprawy związane z Big Data, ale
wciąż nie odpowiedzieliśmy na pytanie – co właściwie dzięki temu zyskasz i w jaki
sposób Big Data Analytics może przełożyć się na funkcjonowanie w małej firmie.
Zastanówmy się.
Czy naprawdę musisz?
Swoje programy Big Data zaczynają wprowadzać największe spółki w Polsce,
przy czym nie wszystkie z nich to firmy informatyczne. Nie miejmy złudzeń, że
jedno z ważniejszych pytań dla nich będzie brzmiało: „Wsiadasz do tego pociągu,
czy zostajesz?”. Ale czy to samo będzie dotyczyć małych i średnich firm?
Odpowiedź nie jest jednoznaczna – wydaje się bowiem, że nawet mała firma
może porwać się na projekt, w którym organizacja danych będzie wymagała
zbudowania infrastruktury Big Data. Takie firmy stanowić będą (przynajmniej na
razie) wyjątki. Niemniej jednak wróćmy do pytania, które zadałem wcześniej – czy
mimo to nie skorzystasz z tej „rewolucji”?
16
Nowe możliwości
Ja sam widzę przynajmniej trzy pozytywne aspekty Big Data. Pierwszy jest
taki, że powoli uznaje się Business Intelligence za historię. Bynajmniej nie mam
zamiaru się z tym przekonaniem zgodzić – Business Intelligence wciąż ma (i będzie
się miało) dobrze. Jednak fakt akcentowania roli Big Data sprawił, że firmy, które
dotychczas uchylały się od analizowania danych, teraz czują się nieco
zawstydzone. Wiele z nich może myśleć w ten sposób: „kiedy nasza konkurencja
jest na etapie Big Data, my wciąż jeszcze nie wdrożyliśmy Business Intelligence”.
Powiedzmy jednak, że pozytywność tego aspektu wiąże się z moim
interesem - w końcu żyjemy w TriC z outsourcingu analiz; im więcej firm zdaje
sobie sprawę, że są im one potrzebne, tym lepiej dla nas. Dlatego skupmy się na
dwóch kolejnych pozytywnych aspektach.
Rozwój technik analitycznych
W ciągu ostatnich kilku lat powstało mnóstwo blogów, opracowań i badań
poświęconych wykorzystywaniu data mining do rozwiązywania realnych
problemów biznesowych. Zaawansowana analityka na dobre wyszła z akademii i
stała się nieodłącznym elementem kształtowania strategii w firmach. Nie tylko tych
dużych. Oczywiście przyczyniła się do tego już wcześniejsza „rewolucja Business
Intelligence”, ale wydaje się, że dopiero ostatni szał związany z Big Data
zaowocował tysiącami inspirujących myśli. Sieci neuronowe dotąd wykorzystywane
tylko przez spółki Warrena Buffeta do przewidywania wyników operacji
finansowych zaczęto wykorzystywać w codziennych działaniach biznesowych
mniejszych firm – np. w celu odpowiedniego targetowania mailingu. Wszelkie inne
techniki predykcyjne – regresje liniowe, logistyczne, regresja Poissona, regresja
Bayesa – zadomowiły się tam już na dobre.
Rozwój infrastruktury analitycznej
Rewolucja Big Data wywołała spore zamieszanie na rynku rozwiązań
biznesowych i zdopingowała firmy takie jak IBM, Oracle i inne do gwałtownego
rozwijania podobnych rozwiązań. Tym sposobem Big Data to już nie tylko Hadoop
(choć ten nadal wygrywa raczej przy zadaniach typu batch processing i – co za tym
idzie – real time analysis), ale też stare i sprawdzone rozwiązania uzupełnione o
nowe elementy: SQL Server, Oracle itd. Mimo faktu, że w ostatnich latach pojawiło
17
się wiele opinii, że bazy NoSQL wygrywają z SQL nie jest to do końca prawdą.
Nadal przy większości problemów biznesowych lepiej sprawdzają się rozwiązania
SQL (głównie ze względu na możliwość realizowania interaktywnych zapytań, która
np. w samym Hadoop jest – delikatnie mówiąc – ograniczona), zwłaszcza wtedy,
gdy projektowane były z myślą o naprawdę dużych zbiorach danych. Jeśli ktoś jest
chętny, sugeruję sprawdzić działanie Google Big Query (można poćwiczyć na
darmowych bazach danych) lub Cloudera Impala. Szybkość zapytań może porazić.
Rewolucja Open Source
Jest to sprawa pomijana, a chyba jednak warta odnotowania. Nietrudno
zauważyć, że większość rozwiązań Big Data, jeśli nie jest darmowa, to przynajmniej
z darmowego oprogramowania wyrasta. Co ciekawe, nie chodzi wyłącznie o
Apache Hadoop, którego utrzymanie wiąże się wyłącznie z kosztami dostawców
serwerów. Z idei Open Source wyrastają najlepsze jak dotąd języki do analizy
danych: R i Python. I uwierz, są to potężne narzędzia.
Oczywiście najlepsze i najwygodniejsze jak dotąd rozwiązania wymagają już
pewnych inwestycji - np. Revolution R Enterprise, czyli R do bezproblemowej
analizy Big Data to impreza bardzo droga – ale wciąż istnieją szerokie możliwości
do budowania tych rozwiązań na własną rękę. Być może więc wygłaszam to zdanie
przedwcześnie, ale wydaje mi się, że w ciągu kilku lat możemy spodziewać się
zmierzchu nieśmiertelnych, wydawałoby się, rozwiązań analitycznych takich jak np.
SAS.
18
Zamiast podsumowania – jak zwiększyć efektywność firmy
dzięki Big Data?
Być może nie potrzebujesz wprowadzania Apache Hadoop do swojej firmy.
Być może nie masz problemu ze wciąż rosnącymi zbiorami danych. Być może
zamiast budować system Big Data wolisz po prostu usunąć zbędne dane. Pewnie
masz rację. Istnieje bardzo małe prawdopodobieństwo, że jesteś jedną z tych osób,
które naprawdę potrzebują tego typu rozwiązań (choć może się tak zdarzyć –
wówczas sugeruję skonsultować się ze specjalistami od wykorzystywania
informacji). Jest jednak prawie pewne, że potrzebujesz danych i zaawansowanej
analityki.
Big Data spowodowało rewolucję w podejściu do zarządzania
przedsiębiorstwem i dostarczyło dowodów, że dobrze zaprojektowana baza danych
i profesjonalna jej analiza potrafią zdziałać cuda. Możemy być stuprocentowo
pewni, że Facebook tym wygrał z wcześniejszymi portalami społecznościowymi, że
natychmiast reagował na zmiany w otoczeniu. A udawało mu się to nie tylko dzięki
wynalezieniu technologii do przetwarzania dużych zbiorów danych, ale przede
wszystkim dzięki rozwojowi technik analizy i prognozowania.
Masz więc rację, jeśli twierdzisz, że Big Data to coś odległego i póki co jest
tylko słowem powstałym na użytek firm organizujących konferencje i spotkania
start-upów. Analityka jest już jednak czymś realnym. Czymś co ukierunkowuje
reakcje Twojej firmy. Jest uszami i oczami przedsiębiorstwa. I właśnie to jest
największą zaletą rewolucji Big Data – że zwróciła uwagę na korzyści wynikające z
analiz.
19
Co my możemy zaproponować?
Instytut Badań Rynkowych i Społecznych TriC to profesjonalna agencja
badawczo-informacyjna zajmująca się badaniami społecznymi i rynkowymi,
wyszukiwaniem informacji (infobrokeringiem) i tworzeniem informacyjnych rozwiązań IT
dla klientów. Żyjemy z dostarczania wiedzy dla firm, mediów i instytucji publicznych.
TriC to oczy Twojej firmy.
Chcesz wiedzieć więcej? Zadzwoń lub skontaktuj się z nami:
Email: [email protected]
Tel.: 512 960 460
http://tric.pl
Paweł Chmielowski
Filip Cyprowski
Marcin Cybulski
Badania społeczne i
rynkowe Infobrokering
Wsparcie w informacyjnych rozwiązaniach
IT
Analizy statystyczne (w
tym prognozowanie)
Konsulting informacyjny