Ten post pierwotnie pojawił się na O’Reilly Radar („What is big data?”). Jest on ponownie publikowany za zgodą.
Przez Edd Dumbill
Big data to dane, które przekraczają możliwości przetwarzania konwencjonalnych systemów baz danych. Dane te są zbyt duże, poruszają się zbyt szybko lub nie pasują do ograniczeń architektury baz danych. Aby uzyskać wartość dodaną z tych danych, należy wybrać alternatywny sposób ich przetwarzania.
Gorące słowo IT 2012 roku, big data, stało się realne dzięki pojawieniu się opłacalnych metod ujarzmiania objętości, szybkości i zmienności ogromnych danych. W tych danych kryją się cenne wzorce i informacje, wcześniej ukryte ze względu na ilość pracy potrzebnej do ich wydobycia. Dla wiodących korporacji, takich jak Walmart czy Google, ta moc była w zasięgu ręki już od jakiegoś czasu, ale za fantastyczną cenę. Dzisiejszy sprzęt klasy commodity, architektury chmurowe i oprogramowanie open source sprawiają, że przetwarzanie big data staje się dostępne dla mniej zamożnych. Przetwarzanie big data jest wykonalne nawet dla małych garażowych startupów, które mogą tanio wynająć czas na serwerze w chmurze.
Wartość big data dla organizacji dzieli się na dwie kategorie: zastosowanie analityczne i umożliwienie tworzenia nowych produktów. Analityka big data może ujawnić spostrzeżenia ukryte wcześniej przez dane zbyt kosztowne do przetworzenia, takie jak wpływy rówieśników wśród klientów, ujawnione dzięki analizie transakcji kupujących, danych społecznych i geograficznych. Możliwość przetworzenia każdego elementu danych w rozsądnym czasie eliminuje kłopotliwą potrzebę próbkowania i promuje badawcze podejście do danych, w przeciwieństwie do nieco statycznej natury prowadzenia z góry określonych raportów.
Sukcesy startupów internetowych z ostatniej dekady są doskonałymi przykładami wykorzystania big data jako czynnika umożliwiającego tworzenie nowych produktów i usług. Na przykład, łącząc dużą liczbę sygnałów z działań użytkownika i tych z ich przyjaciół, Facebook był w stanie spreparować wysoce spersonalizowane doświadczenie użytkownika i stworzyć nowy rodzaj biznesu reklamowego. To nie przypadek, że lwia część pomysłów i narzędzi leżących u podstaw big data powstała w Google, Yahoo, Amazon i Facebook.
Wprowadzenie big data do przedsiębiorstw niesie ze sobą niezbędny odpowiednik: zwinność. Skuteczne wykorzystanie wartości zawartych w big data wymaga eksperymentowania i eksploracji. Niezależnie od tego, czy chodzi o tworzenie nowych produktów, czy o szukanie sposobów na zdobycie przewagi konkurencyjnej, praca ta wymaga ciekawości i przedsiębiorczego spojrzenia.
Jak wygląda big data?
Jako termin ogólny, „big data” może być dość mglista, tak samo jak termin „chmura” obejmuje różne technologie. Danymi wejściowymi do systemów big data mogą być rozmowy w sieciach społecznościowych, logi serwerów internetowych, czujniki natężenia ruchu, zdjęcia satelitarne, transmisje audio, transakcje bankowe, pliki MP3 z muzyką rockową, zawartość stron internetowych, skany dokumentów rządowych, ścieżki GPS, telemetria z samochodów, dane z rynków finansowych – lista jest długa. Czy to wszystko to naprawdę to samo?
Aby wyjaśnić tę kwestię, trzy pojęcia: ilość, prędkość i różnorodność są powszechnie używane do charakteryzowania różnych aspektów big data. Są one pomocnym obiektywem, przez który można zobaczyć i zrozumieć naturę danych i platform programowych dostępnych do ich wykorzystania. Najprawdopodobniej będziesz zmagał się z każdym z nich w takim czy innym stopniu.
Objętość
Korzyści płynące z możliwości przetwarzania dużych ilości informacji są główną atrakcją analityki big data. Posiadanie większej ilości danych pokonuje posiadanie lepszych modeli: proste bity matematyczne mogą być nieracjonalnie skuteczne przy dużej ilości danych. Gdybyś mógł przeprowadzić prognozę uwzględniającą 300 czynników, a nie 6, czy mógłbyś lepiej przewidzieć popyt?
Ta objętość stanowi najbardziej bezpośrednie wyzwanie dla konwencjonalnych struktur IT. Wymaga skalowalnej pamięci masowej i rozproszonego podejścia do zapytań. Wiele firm posiada już duże ilości zarchiwizowanych danych, być może w formie logów, ale nie ma możliwości ich przetwarzania.
Zakładając, że wolumeny danych są większe niż te, z którymi mogą sobie poradzić infrastruktury konwencjonalnych relacyjnych baz danych, opcje przetwarzania rozbijają się zasadniczo o wybór pomiędzy architekturami przetwarzania masowo równoległego – hurtowniami danych lub bazami danych takimi jak Greenplum – a rozwiązaniami opartymi na Apache Hadoop. Wybór ten jest często uzależniony od stopnia, w jakim jedno z pozostałych „V” – różnorodność – wchodzi w grę. Zazwyczaj hurtownie danych wykorzystują z góry ustalone schematy, dopasowane do regularnych i powoli zmieniających się zbiorów danych. Apache Hadoop, z drugiej strony, nie stawia żadnych warunków co do struktury danych, które może przetwarzać.
Jako rdzeń, Hadoop jest platformą do dystrybucji problemów obliczeniowych na wielu serwerach. Po raz pierwszy opracowana i udostępniona jako open source przez Yahoo, implementuje podejście MapReduce, które zostało zapoczątkowane przez Google w kompilacji indeksów wyszukiwania. Hadoop’s MapReduce obejmuje dystrybucję zbioru danych pomiędzy wieloma serwerami i operowanie na danych: etap „mapowania”. Częściowe wyniki są następnie łączone: etap „reduce”.
Do przechowywania danych Hadoop wykorzystuje swój własny rozproszony system plików, HDFS, który udostępnia dane wielu węzłom obliczeniowym. Typowy schemat użycia Hadoopa obejmuje trzy etapy:
- załadowanie danych do HDFS,
- operacje MapReduce, oraz
- pobieranie wyników z HDFS.
Proces ten jest z natury operacją wsadową, odpowiednią dla analitycznych lub nieinteraktywnych zadań obliczeniowych. Z tego powodu Hadoop nie jest sam w sobie bazą danych ani hurtownią danych, ale może działać jako analityczny dodatek do niej.
Jednym z najbardziej znanych użytkowników Hadoop jest Facebook, którego model jest zgodny z tym wzorcem. Baza danych MySQL przechowuje podstawowe dane. Są one następnie odzwierciedlane w Hadoop, gdzie wykonywane są obliczenia, takie jak tworzenie rekomendacji dla użytkownika na podstawie zainteresowań jego znajomych. Facebook następnie przesyła wyniki z powrotem do MySQL, do wykorzystania na stronach serwowanych użytkownikom.
Zaoszczędź 20% na rejestracji z kodem RADAR20
Velocity
Ważność szybkości przepływu danych – rosnącego tempa, w jakim dane napływają do organizacji – podąża za podobnym wzorcem, co objętość. Problemy, które wcześniej ograniczały się do segmentów przemysłu, teraz pojawiają się w znacznie szerszym kontekście. Wyspecjalizowane firmy, takie jak traderzy finansowi, od dawna wykorzystują systemy radzące sobie z szybko zmieniającymi się danymi na swoją korzyść. Teraz przyszła kolej na nas.
Dlaczego tak jest? Era Internetu i telefonii komórkowej oznacza, że sposób, w jaki dostarczamy i konsumujemy produkty i usługi jest coraz bardziej oprzyrządowany, generując przepływ danych z powrotem do dostawcy. Sprzedawcy internetowi są w stanie tworzyć obszerne historie każdego kliknięcia i interakcji klientów: nie tylko ostatecznej sprzedaży. Ci, którzy są w stanie szybko wykorzystać te informacje, np. rekomendując dodatkowe zakupy, zyskują przewagę nad konkurencją. Era smartfonów ponownie zwiększa tempo napływu danych, ponieważ konsumenci noszą przy sobie strumieniowe źródło geolokalizowanych obrazów i danych dźwiękowych.
Nie tylko szybkość napływających danych jest problemem: możliwe jest na przykład strumieniowe przesyłanie szybko zmieniających się danych do pamięci masowej w celu późniejszego przetwarzania wsadowego
. Znaczenie ma szybkość pętli sprzężenia zwrotnego, w której dane przechodzą od wejścia do decyzji. Reklama IBM mówi, że nie przeszedłbyś przez ulicę, gdybyś miał tylko pięciominutową migawkę lokalizacji ruchu. Zdarzają się sytuacje, w których po prostu nie będziesz mógł czekać na uruchomienie raportu lub zakończenie zadania Hadoop.
Terminologia branżowa dotycząca takich szybko zmieniających się danych to „dane strumieniowe” lub „złożone przetwarzanie zdarzeń”. Ten ostatni termin był bardziej ugruntowany w kategoriach produktów, zanim przetwarzanie strumieniowe danych zyskało bardziej powszechne znaczenie, i wydaje się, że prawdopodobnie zmniejszy się na korzyść przetwarzania strumieniowego.
Istnieją dwa główne powody, dla których warto rozważyć przetwarzanie strumieniowe. Pierwszym z nich jest sytuacja, w której dane wejściowe są zbyt szybkie, aby przechowywać je w całości: aby utrzymać wymagania dotyczące przechowywania danych w praktyce, pewien poziom analizy musi wystąpić jako strumień danych. Na skrajnym końcu skali, Wielki Zderzacz Hadronów w CERN generuje tak dużo danych, że naukowcy muszą odrzucić przytłaczającą większość z nich – mając twardą nadzieję, że nie wyrzucili niczego użytecznego. Drugim powodem, dla którego warto rozważyć streaming, jest sytuacja, w której aplikacja wymaga natychmiastowej reakcji na dane. Dzięki rozwojowi aplikacji mobilnych i gier online jest to coraz częściej spotykana sytuacja.
Kategorie produktów do obsługi danych strumieniowych dzielą się na uznane produkty własnościowe, takie jak InfoSphere Streams firmy IBM, oraz mniej dopracowane i wciąż powstające frameworki open source wywodzące się z branży internetowej: Twitter’s Storm, oraz Yahoo S4.
Jak wspomniano powyżej, nie chodzi tylko o dane wejściowe. Prędkość wyjścia systemu również może mieć znaczenie. Im ściślejsza pętla sprzężenia zwrotnego, tym większa przewaga konkurencyjna. Wyniki mogą trafiać bezpośrednio do produktu, np. rekomendacji Facebooka, lub do pulpitów nawigacyjnych, wykorzystywanych do podejmowania decyzji.
To właśnie ta potrzeba szybkości, szczególnie w sieci, stała się motorem rozwoju magazynów wartości kluczowych i kolumnowych baz danych, zoptymalizowanych pod kątem szybkiego wyszukiwania wstępnie obliczonych informacji. Bazy te stanowią część kategorii NoSQL, wykorzystywanej w sytuacjach, gdy modele relacyjne nie są odpowiednie.
Różnorodność
Rzadko kiedy dane występują w formie idealnie uporządkowanej i gotowej do przetwarzania. Wspólnym tematem w systemach big data jest to, że dane źródłowe są zróżnicowane i nie mieszczą się w zgrabnych strukturach relacyjnych. Może to być tekst z sieci społecznościowych, dane obrazowe, surowe dane bezpośrednio z czujników. Żadna z tych rzeczy nie jest gotowa do integracji z aplikacją.
Nawet w sieci, gdzie komunikacja komputer-komputer powinna przynieść pewne gwarancje, rzeczywistość danych jest niechlujna. Różne przeglądarki wysyłają różne dane, użytkownicy ukrywają informacje, mogą używać różnych wersji oprogramowania lub dostawców do komunikacji z Tobą. I można się założyć, że jeśli część procesu wymaga udziału człowieka, wystąpią błędy i niespójności.
Powszechnym zastosowaniem przetwarzania dużych danych jest pobieranie nieustrukturyzowanych danych i wydobywanie uporządkowanego znaczenia, do wykorzystania przez ludzi lub jako ustrukturyzowane dane wejściowe do aplikacji. Jednym z takich przykładów jest rozwiązywanie encji, proces określania, do czego dokładnie odnosi się dana nazwa. Czy to miasto to Londyn, Anglia, czy Londyn, Teksas? W momencie, gdy logika biznesowa do tego dojdzie, nie chcesz już zgadywać.
Proces przechodzenia od danych źródłowych do przetworzonych danych aplikacji wiąże się z utratą informacji. Kiedy sprzątasz, w końcu wyrzucasz rzeczy. Podkreśla to zasadę big data: kiedy możesz, zachowaj wszystko. W kawałkach, które wyrzucasz, mogą znajdować się użyteczne sygnały. Jeśli stracisz dane źródłowe, nie ma już powrotu.
Mimo popularności i dobrze rozumianej natury relacyjnych baz danych, nie jest tak, że powinny one zawsze być miejscem docelowym dla danych, nawet jeśli są uporządkowane. Niektóre typy danych lepiej pasują do pewnych klas baz danych. Na przykład, dokumenty zakodowane jako XML są najbardziej uniwersalne, gdy są przechowywane w dedykowanym magazynie XML, takim jak MarkLogic. Relacje w sieciach społecznych są z natury grafami, a bazy danych grafów, takie jak Neo4J, upraszczają operacje na nich i czynią je bardziej wydajnymi.
Nawet tam, gdzie nie ma radykalnego niedopasowania typów danych, wadą relacyjnej bazy danych jest statyczna natura jej schematów. W zwinnym, eksploracyjnym środowisku wyniki obliczeń będą ewoluować wraz z wykrywaniem i wydobywaniem kolejnych sygnałów. Półstrukturalne bazy danych NoSQL spełniają tę potrzebę elastyczności: zapewniają wystarczającą strukturę do organizacji danych, ale nie wymagają dokładnego schematu danych przed ich zapisaniem.
W praktyce
Zgłębiliśmy naturę big data i zbadaliśmy krajobraz big data z wysokiego poziomu. Jak zwykle, jeśli chodzi o wdrażanie, istnieją wymiary, które należy rozważyć poza wyborem narzędzia.
Chmura czy in-house?
Większość rozwiązań big data jest obecnie dostarczana w trzech formach: tylko jako oprogramowanie, jako urządzenie lub w chmurze. Decyzja, którą drogę wybrać, zależy między innymi od kwestii lokalizacji danych, prywatności i regulacji, zasobów ludzkich i wymagań projektowych. Wiele organizacji decyduje się na rozwiązanie hybrydowe: wykorzystanie zasobów chmury na żądanie w celu uzupełnienia wdrożeń wewnętrznych.
Big data is big
Podstawowym faktem jest, że dane, które są zbyt duże, aby przetwarzać je w sposób konwencjonalny, są również zbyt duże, aby je gdziekolwiek przetransportować. W IT następuje odwrócenie priorytetów: to program musi się przemieszczać, a nie dane. Jeśli chcesz przeanalizować dane ze spisu powszechnego w USA, o wiele łatwiej jest uruchomić kod na platformie usług internetowych Amazona, która przechowuje takie dane lokalnie, a ich przeniesienie nie będzie cię kosztować ani czasu, ani pieniędzy.
Nawet jeśli dane nie są zbyt duże, aby je przenosić, lokalizacja może nadal stanowić problem, zwłaszcza w przypadku szybko aktualizowanych danych. Finansowe systemy transakcyjne tłoczą się w centrach danych, aby uzyskać najszybsze połączenie z danymi źródłowymi, ponieważ ta milisekundowa różnica w czasie przetwarzania równa się przewadze konkurencyjnej.
Big data is messy
Nie wszystko zależy od infrastruktury. Praktycy zajmujący się dużymi danymi konsekwentnie twierdzą, że 80% wysiłku związanego z obsługą danych polega na ich czyszczeniu, jak zauważa Pete Warden w swoim słowniku Big Data Glossary: „Prawdopodobnie spędzam więcej czasu na przekształcaniu niechlujnych danych źródłowych w coś użytecznego niż na reszcie procesu analizy danych razem wziętych.”
Z powodu wysokich kosztów pozyskiwania i czyszczenia danych warto zastanowić się, co właściwie trzeba samemu pozyskiwać. Rynki danych są sposobem na pozyskanie wspólnych danych, a często można wnieść ulepszenia z powrotem. Jakość może być oczywiście zmienna, ale coraz częściej będzie punktem odniesienia, na którym rynki danych będą konkurować.
Kultura
Zjawisko big data jest ściśle związane z pojawieniem się nauki o danych, dyscypliny łączącej matematykę, programowanie i instynkt naukowy. Czerpanie korzyści z big data oznacza inwestowanie w zespoły posiadające ten zestaw umiejętności i otaczanie ich organizacyjną gotowością do zrozumienia i wykorzystania danych w celu osiągnięcia korzyści.
W swoim raporcie „Building Data Science Teams” D.J. Patil charakteryzuje
naukowców zajmujących się danymi jako posiadających następujące cechy:
- Wiedza techniczna: najlepsi naukowcy zajmujący się danymi zazwyczaj posiadają głęboką wiedzę w jakiejś dyscyplinie naukowej.
- Ciekawość: chęć zejścia pod powierzchnię, odkrycia i destylacji problemu do bardzo jasnego zestawu hipotez, które można przetestować.
- Storytelling: umiejętność wykorzystania danych do opowiedzenia historii i umiejętność skutecznego jej przekazania.
- Spryt: umiejętność spojrzenia na problem w różny, kreatywny sposób.
Dalekosiężna natura projektów analitycznych big data może mieć niewygodne aspekty: dane muszą zostać wyrwane z silosów, aby można było je wydobyć, a organizacja musi nauczyć się, jak komunikować i interpretować wyniki analizy.
Te umiejętności opowiadania historii i sprytu są czynnikami, które ostatecznie decydują o tym, czy korzyści z pracy analitycznej zostaną wchłonięte przez organizację. Sztuka i praktyka wizualizacji danych staje się coraz ważniejsza w wypełnianiu luki między człowiekiem a komputerem, aby w znaczący sposób zapośredniczać wgląd analityczny.
Wiedz, dokąd chcesz dojść
Na koniec pamiętaj, że big data nie jest panaceum. Możesz znaleźć wzorce i wskazówki w swoich danych, ale co potem? Christer Johnson, lider IBM ds. zaawansowanej analityki w Ameryce Północnej, radzi firmom rozpoczynającym pracę z big data: najpierw zdecyduj, jaki problem chcesz rozwiązać.
Jeśli wybierzesz realny problem biznesowy, np. jak zmienić strategię reklamową, aby zwiększyć wydatki na klienta, będzie on stanowił wskazówkę przy wdrażaniu. Podczas gdy praca z big data korzysta z ducha przedsiębiorczości, korzysta też mocno z konkretnego celu.
Powiązane:
- Co to jest data science?
- Budowanie zespołów data science
- Big Data Now
- „Data at the Scale of the Universe,” prezentacja Kyle’a Cranmera na Strata NY 2011 (wideo)
- Budowanie startupów data science: Szybkie, duże i skoncentrowane