Narzędzia i trendy Big Data 1
Zamiast wstępu Model relacyjny 1970: podwaliny teoretyczne modelu 1980: SQL hype 1990: upowszechnienie standardu i narzędzi Model map-reduce 1995: koncepcja przetwarzania rozproszonego z krokami rozdzielania i scalania komunikatów 2005: koncepcja Map-reduce w Google 2015:...?... A miedzyczasie... kambryjska eksplozja narzędzi Nowe źródła danych uporządkowanych oraz bez zdefiniowanej struktury Narzędzia i techniki używane w IT można użyć do analizowania danych Tani sprzęt odpowiednio zestawiony pozwala zwiększyć wolumen przetwarzanych danych Planowanie nowego projektu nie jest łatwe mnogość rozwiązań Open Source na ratunek 2
Infrastruktura i narzędzia Stos technologii związanych z Big Data Urządzenia fizyczne i przeglądarki Zastosowania i aplikacje Raportowanie i wizualizacja Analiza i analityczne hurtownie danych Narzędzia niskopoziomowe i bazy danych Infrastruktura i bezpieczeństwo P.3
Poziom żółty: infrastruktura i bezpieczeństwo Serwery (sprzęt) Amazon EC2 Umożliwia wynajmowanie komputerów w różnych konfiguracjach (maszyny wirtualne Windows i Linux) Ułatwienia w tworzeniu serwerów Hadoop Istotny autor/właściciel systemu Google App Engine Hosting aplikacji napisanych w Java lub Python Serwis sam dba o rozkładanie obciążenia (dość nietypowe) System opłat może utrudniać realizację projektów Big Data (drogi) Heroku Hosting aplikacji napisanych w Ruby (i innych) Łatwość wdrożeń i więcej możliwości (swobody) niż GAE (dostęp do bazy SQL) Podobnie jak w GAE system opłat może utrudniać realizację projektów Big Data P.4
Poziom żółty: infrastruktura i bezpieczeństwo Systemy plików Apache HDFS Pierwszy Open Source na liście Część wielkiego ekosystemu przetwarzania Big Data Rozproszony system plików o wysokiej dostępności Usługa przechowywania danych tam, gdzie szybkość przetwarzania i rozmiar danych ma istotne znaczenie P.5
Poziom zielony: narzędzia niskopoziomowe i bazy danych Bazy danych Oparte na dokumentach MongoDB - Poszczególne rekordy przypominają obiekty JSON - Automatyczne rozkładanie obciążenia na wiele serwerów - Obsługuje MapReduce, zapytania w JavaScript - Łatwa w obsłudze i utrzymaniu - Idealna na start projektu CouchDB - Obsługuje MapReduce, zapytania nieco trudniejsze - Rozkład obciążenia na wiele serwerów zapewniany dodatkowymi narzędziami Kolumnowe (column-oriented) BigTable (GAE) - Komercyjny produkt Google dostępny w GAE - Bardziej skomplikowana struktura niż większość baz NoSQL (hierarchiczność i wielowymiarowość) - Przeznaczona do obsługi bardzo dużych ilości danych na wielu serwerach dostępnych masowo Kolumnowe cd. Hbase - Odpowiednik BigTable o otwartym kodzie źródłowym - Bardzo dobrze zintegrowana z projektem Hadoop Cassandra - Pierwotnie projekt Facebook a - Początkowo trudny w obsłudze, ale zmienia się to - Łączy model BigTable z modelem klucz-wartość - Duża elastyczność i możliwości za cenę nauki - Zapytania najlepiej tworzyć przez Hadoop niż Thrift Typu klucz-wartość Redis - Może być w całości w RAM (persystencja na dysku) - Bardzo wydajna do momentu stronicowania - Obsługa wielu serwerów na poziomie klienta Riak - Zaprojektowana do środowiska wieloserwerowego - Obsługuje MapReduce - Wsparcie komercyjne P.6
Poziom zielony: narzędzia niskopoziomowe i bazy danych Bazy danych cd. Grafowe Neo4J - Nierelacyjna, rozproszona baza danych z transakcjami - Wybierana kiedy model danych odwzorowuje graf (sieci społecznościowe, grupy zainteresowań, systemy klasyfikacji w biologii) - Wsparcie komercyjne Przestrzenne PostGIS - Baza do przechowywania danych przestrzennych (mapy geograficzne, obiekty trójwymiarowe: budynki, układy atmosferyczne, układy gwiezdne, rozłożenie sieci czujników) - Specjalistyczna nakładka na bazę relacyjną - Podstawa całej rodziny produktów do modelowania danych przestrzennych Grupa MapReduce Hadoop Hive Pig mrjob Odpowiedź Yahoo na MapReduce (Google) Implementacja idei MapReduce Bardzo popularne narzędzie (wiele testów) Dużo narzędzi ułatwiających konfigurację i pracę Programowanie zadań Hadoop za pomocą SQL Określa się transformacje danych wejściowych do tabel relacyjnych (wieloserwerowe środowisko) Specjalny język dla Hadoop Określa się kolejne kroki do wykonania operacji na danych (podejście proceduralne) Wadą jest konieczność nauki kolejnego języka Cascading Oozie, Greenplum P.7
Poziom czerwony: analiza i analityczne hurtownie danych Python + biblioteki R project P.8
Poziom czerwony: analiza i analityczne hurtownie danych Google Spreadsheets P.9
Poziom czerwony: analiza i analityczne hurtownie danych Many Eyes P.10
Poziom czerwony: analiza i analityczne hurtownie danych Tableau Public P.11
Poziom czerwony: analiza i analityczne hurtownie danych Analiza Przetwarzanie i modelowanie R, - Kompletne środowisko statystyczne - Ogrom pakietów rozszerzających możliwości - Nie jest przystosowane do środowiska wieloserwerowego (dane na jednej maszynie) - Idealne do prototpowania Yahoo Pipes - Środowisko graficzne do modelowania zadań przetwarzania danych Lucene/Solr, elasticsearch - Standard przeszukiwania i indeksowania tekstu - Rozbudowane narzędzie z dużymi możliwościami konfiguracji - Zaprojektowane dla środowiska wieloserwerowego - Można integrować wiele źródeł danych (PDF, Word, dane przestrzenne) GeoTools - Zestaw narzędzi do manipulowania danymi przestrzennymi JUNG / TinkerPop - Zestaw narzędzi do analizy i wizualizacji danych struktur sieciowych i grafowych - Zastosowanie w analizie sieci społecznościowych, PageRank, data mining Mechanical Turk - Masowe zadania wymagające udziału człowieka Uczenie maszynowe WEKA, Mahout scikit-learn, PyBrain Elefant, OpenCV Przetwarzanie tekstu (NLP) Natural Language Toolkit (NLTK) BeautifulSoup Awk Integracja z RDBMS Apache Flume Apache Sqoop P.12
Poziom niebieski: raportowanie i wizualizacja R (ggplot2) Python (ipython) P.13
Poziom niebieski: raportowanie i wizualizacja D3.js (Protovis) P.14
Poziom niebieski: raportowanie i wizualizacja Polymaps P.15
Poziom niebieski: raportowanie i wizualizacja Inkscape P.16
Poziom niebieski: raportowanie i wizualizacja Raportowanie i wizualizacja R (lattice, ggplot2) Pakiety graficzne w środowisku R Python Szeroka gama bibliotek oraz wtyczek narzędzi Gnuplot Tworzenie wykresów z linii poleceń (skrypty) Gephi Aplikacja w języku Java do wizualizacji sieci złożonych z węzłów i krawędzi Jeden z twórców projektu zatrudniony w Linkedin GraphViz Narzędzie do wizualizacji sieci z linii poleceń Szerokie możliwości konfiguracji Processing.js / D3.js Biblioteka JavaScript do wizualizacji P.17
Infrastruktura i narzędzia (przypomnienie) Stos technologii związanych z Big Data Urządzenia fizyczne i przeglądarki Zastosowania i aplikacje Raportowanie i wizualizacja Analiza i analityczne hurtownie danych Narzędzia niskopoziomowe i bazy danych Infrastruktura i bezpieczeństwo P.18
Trendy 2015+ Więcej automatyzacji, konsolidacji pakietów Open Source przez firmy komercyjne, większa dojrzałość narzędzi, nowe modele biznesowe Podeście typu point-and-click Udostępnienie możliwości analitycznych szerszym kręgom, szczególnie biznesowym Tzw. self-service Big Data oraz podejście as-a-service Wielowymiarowa analiza, tj. analiza połączonych danych: starych (hurtownie) oraz nowych, agile (dane bez struktury) Zmiana paradygmatu: z: jak analizować dane, na: które dane pojawią się szybciej do analizy Datafication, czyli odkrywanie dzięki technologii nowych procesów, które można poddawać analizie Urządzenia do fitness, piłki nożne i rakiety tenisowe z czujnikami ruchu i położenia Drony monitorujące stany magazynowe i online owy monitoring kupowanych produktów Elektronika samochodowa nowej ery Internet-of-things P.24
DZIĘKUJĘ ZA UWAGĘ P.25