Big data mini podręcznik dla laików.

Page 1

Big Data. Minipodrę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 ......................................................................................... 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

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 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

często

w

czasie

rzeczywistym,

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.

3


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ż 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”).

4


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.

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 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ą.

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/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

prognozowania etc..

4

Prawdę mówiąc dużo więcej niż podstawy.

7

do

analizy

klastrów,


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

8


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?

9


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.

10


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

Czas

Zapytanie

ik -

123.123.123.123

Protokó

Statu

Bajt

ł

s

y

200

1276

26/Apr/2014

portfolio-

HTTP

00:17:19

item/big-

1.0.

Start URL -

3

data-minipodrecznik -laikow/ 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.12

Pozna

134.134.134.13

Krakó

145.145.145.14

Warszaw

11


3 123.123.123.12

3

ń

4

Pozna

134.134.134.13

ń

4

w

5

Krakó

145.145.145.14

w

5

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ó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.

12


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

nieustrukturyzowanymi (np. zdjęcia, filmy etc.),

13

(np.

XML)

i


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

14


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”?

15


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

16


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.

17


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.

18


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: tric@tric.pl Tel.: 512 960 460 http://tric.pl

Paweł Chmielowski Filip Cyprowski Marcin Cybulski

19


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.