Big Data. Mini-podręcznik dla laików

Transkrypt

Big Data. Mini-podręcznik dla laików
Big Data.
Mini-podręcznik
dla laików.
Filip Cyprowski
2014-06-23
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 ....................................................................................... 16
Czy naprawdę musisz? .................................................................................... 16
Nowe możliwości............................................................................................. 16
Rozwój technik analitycznych ....................................................................... 17
Rozwój infrastruktury analitycznej................................................................. 17
Rewolucja Open Source ............................................................................... 17
Zamiast podsumowania – jak zwiększyć efektywność firmy dzięki Big Data?........... 19
Co my możemy zaproponować? .......................................................................... 20
2
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 (np. Herschel
Space Observatory)?
Big Data to przede wszystkim analizy i sposoby przetwarzania danych. Krótko
mówiąc – 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. 3V 1). 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,
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.
3
że aplikacje i programy Big Data muszą być zdolne do ich przetwarzania
i strukturyzowania. Co to oznacza? Wyjaśnimy w dalszych częściach miniebooka.
Załóżmy więc teraz trzy autentyczne przypadki analiz i zastanówmy się, czy
można je określić jako Big Data:
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ń).
Przypadek 1 nie spełnia żadnego warunku Big Data – danych jest właściwie
mało (choć już nie mieszczą się 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
4
można zamknąć w tabeli trzeba je „pociąć”, „posortować” itd.) oraz jest ich dużo i stale
przyrastają („Volume”).
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? Istotne 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 Inteligence 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 expensive2 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
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.
5
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 ebooka – 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ą.
6
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 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 statystycznego3. 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..
3
Prawdę mówiąc dużo więcej niż podstawy.
7
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
Dopasowanie
modelu i jego
weryfikacja
Stosowanie
modelu do analizy
nowych,
podobnych danych
Wstępna eksploracja polega na odkryciu pewnych własności danych oraz na
niezbędnym ich przekształceniu. Np. gdy analizujemy prawdopodobieństwo przeżycia
na Titanicu (użytkownicy Kaggle mogli już ten temat zgłębiać – polecam) najpierw
8
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.
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
9
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ż 4.
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.
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:
Oczywiście to przykład bardzo uproszczony – już teraz wiadomo, że konieczne byłoby w tym przypadku
zastosowanie szczególnego modelu regresji nieliniowej.
4
10
Tabela 1
IP
Użytkown
Czas
Zapytanie
Protokół
ik
-
123.123.123.123
26/Apr/2014
portfolio-
HTTP
00:17:19
item/big-
1.0.
Statu
Bajt
s
y
200
1276
Start URL
-
3
data-minipodreczniklaikow/
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
IP
…
Adres
IP
…
Adres
123.123.123.1
…
Pozna
134.134.134.1
…
Krakó
145.145.145.1
…
Warszaw
ń
34
w
45
Pozna
134.134.134.1
Krakó
145.145.145.1
ń
34
w
45
23
123.123.123.1
23
…
11
…
a
…
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ów 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.
Widzicie, już druga opcja to trochę MapReduce. Trzecia opcja to MapReduce w
Apache Hadoop.
12
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, a tym jest właśnie Apache Hadoop.
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 nie niemożliwe),
Jeśli dane są bardzo różnorodne – np. mamy do czynienia
jednocześnie z danymi ustrukturyzowanymi (np. z naszego serwera
SQL), semistrukturalnych (np. XML) i nieustrukturyzowanymi (np.
zdjęcia, filmy etc.),
Jeśli wiemy, że ilość danych będzie rosła – Hadoop pozwala na
właściwie autmatyczne „dostosowanie się” aplikacji do zwiększonej
liczby danych. Wszystko co trzeba zrobić to dołożyć do systemu nową
maszynę.
13
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 nie ma),
SAS
(nieśmiertelne
orpogramowanie
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 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ć
14
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).
15
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. Wydaje się jednak, że 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”?
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. 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.
16
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 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 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
17
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 kosztuje 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.
Badania
społeczne i
rynkowe
Infobrokering
Analizy
statystyczne (w
tym
prognozowanie)
Wsparcie w
informacyjnych
rozwiązaniach
IT
Konsulting
informacyjny
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
20

Podobne dokumenty