Bazy danych dziś i jutro jakie wyzwania stoją przed technologią baz danych Mikołaj Morzy Instytut Informatyki Politechniki Poznańskiej osoby, które dotrwają do końca prezentacji, dowiedzą się czegoś, co uczyni resztę ich życia nieco lepszym… Tania produkcja danych • bardzo tanie urządzenia do składowania danych • sensory • aplikacje społecznościowe • inteligentne urządzenia • Internet Rzeczy (samochody, domy, AGD, …) Tanie przetwarzanie danych • wielordzeniowe procesory • przetwarzanie w chmurze • oprogramowanie open source Demokratyzacja danych • nowi twórcy i konsumenci danych • • • • decydenci naukowcy domenowi pracownicy platform typu crowdsource użytkownicy aplikacji • ogromna liczba osób zaangażowanych w tworzenie, przetwarzanie i konsumowanie danych Rewolucja Big Data pozyskanie → zapisanie → przetworzenie • transformacja surowych danych w użyteczną wiedzę • • • • • • przemysł biznes administracja inżynieria wspólnoty indywidualne osoby Data Management Game koniec końców, reszta świata pojęła wreszcie znaczenie tego, o czym środowisko baz danych bezustannie mówiło od lat… Ewolucja zarządzania danymi 5 lat temu dziś • Hadoop • MapReduce • NoSQL • rozwiązania ad hoc • NewSQL • Hive • Spanner + F-1 • SQL storage engines Dlaczego wielki powrót? • "[…] Based on its experience with BigTable, Google argues that it is better to have application programmers deal with performance problems due to overuse of transactions as bottlenecks arise, rather than always coding around the lack of transactions." źródło: en.wikipedia.org/wiki/Spanner_(database) Big Data i 3V dane można opisać jako "big data" jeśli sam rozmiar danych staje się częścią problemu Roger Magoulas I know it when I see it Justice Potter Steward Big Data i 3V • volume: KB → MB → GB → TB → PB → EB → ZB • velocity: batch → sparse → interval → real time • variety: RDBMS → XML → text → video → photo 5 wyzwań • skalowalna infrastruktura dla big/fast data • różnorodność środowiska zarządzania danymi • usługi w chmurze • przetwarzanie danych end-to-end • wyzwania dla społeczności baz danych Skalowalna infrastruktura • mamy: • architektury równoległe • ograniczone modele programowania (np. MapReduce) • środowiska: Hadoop + HDFS + Pig, Hive • potrzebujemy: • • • • • optymalizacji kosztowej przetwarzania zorientowanego na zbiory adaptatywnych silników wykonywania zapytań monitorowania postępów zapytań włączenia próbkowania i eksploracji danych Skalowalna infrastruktura • mamy: • uniwersalne wielordzeniowe procesory • potrzebujemy: • GPU (graphics processing unit) • FPGA (field-programmable gate arrays) • ASIC (application-specific integrated circuits) Skalowalna infrastruktura • dalsze pomysły • • • • • • dyski SSD, sieciowa pamięć stała NV-RAM (EPROM, F-RAM, M-RAM, Millipede, NanoRAM) NUMA (non-uniform memory access) próbkowanie i agregacja danych w strumieniach danych schema-on-read vs schema-on-write narzędzia, języki i silniki zapytań do surowych plików Skalowalna infrastruktura • otwarte problemy • • • • • • cost of ownership zarządzanie energią elektryczną przetwarzanie end-to-end kruchość danych użyteczność miary, testy, benchmarki Różnorodność środowiska • bezpowrotnie żegnamy • pojedynczą hurtownię danych zaprojektowaną i optymalizowaną pod kątem powtarzalnych analiz i zapytań ad hoc • uniwersalne systemy typu one-size-fits-all Różnorodność środowiska • wielość systemów • czyszczenie, uspójnianie, deduplikacja • analiza grafów i sieci • środowisko do eksperymentów naukowych • wielość abstrakcji • programistyczne abstrakcje względem dużych zbiorów danych (SQL, Pig, R, Python, …) • wzorce projektowe (mnożenie macierzy, wyrażenia listowe, …) z wiązaniami do języków programowania Różnorodność środowiska • w kierunku systemów przypominających klocki LEGO • Apache Mesos • Hadoop YARN • Apache Taverna Przetwarzanie end-to-end • stan na dziś • praktycznie brak narzędzi obsługujących całą ścieżkę od surowych danych do wiedzy • wysokie wymagania kompetencyjne • pojawienie się nowej kasty data scientists • główny nacisk na technologie integracji danych Przetwarzanie end-to-end akwizycja czyszczenie OLAP selekcja transformacja eksploracja ocena ekstrakcja wizualizacja Przetwarzanie end-to-end Bazy wiedzy • słowniki • ontologie • zbiory reguł Bazy wiedzy tworzenie, współdzielenie i wykorzystywanie wiedzy dziedzinowej aby zrozumieć dane wykorzystanie: • • • • odpowiedzi na pytania adnotacja tekstu wsparcie dla e-handlu analiza mediów społecznościowych Bazy wiedzy SQL> INSERT INTO emp_rdf VALUES (13, SDO_RDF_TRIPLE_S('Employees', 'http://semantic.cs.put.poznan.pl/emp/isHeadOf', 'rdf:type', 'rdf:Property')); SQL> INSERT INTO emp_rdf VALUES (14, SDO_RDF_TRIPLE_S('Employees', 'http://semantic.cs.put.poznan.pl/emp/isHeadOf', 'rdfs:subPropertyOf', 'http://www.ploug.org.pl/emp/worksIn')); SQL> INSERT INTO emp_rdf VALUES (15, SDO_RDF_TRIPLE_S('Employees', 'http://semantic.cs.put.poznan.pl/emp/isHeadOf', 'rdfs#domain', 'http://semantic.cs.put.poznan.pl/emp/Manager')); SQL> INSERT INTO emp_rdf VALUES (16, SDO_RDF_TRIPLE_S('Employees', 'http://semantic.cs.put.poznan.pl/emp/King', 'http://semantic.cs.put.poznan.pl/emp/isHeadOf', 'http://semantic.cs.put.poznan.pl/emp/Research')); Bazy wiedzy SQL> EXECUTE SEM_APIS.CREATE_RULEBASE('EmpRules'); SQL> INSERT INTO mdsys.semr_EmpRules VALUES ('WorksTogetherWithRule', '(?x :worksIn ?z) (?y :worksIn ?z)', null, '(?x :worksTogetherWith ?y)', SEM_ALIASES(SEM_ALIAS('','http://semantic.cs.put.poznan.pl/emp/'))); SQL> BEGIN SEM_APIS.CREATE_ENTAILMENT('rdfs_rix_employees', SEM_MODELS('Employees'), SEM_RULEBASES('RDFS','EmpRules'), null, null, 'USER_RULES=T'); END; SQL> SELECT x,y FROM TABLE( SEM_MATCH('(?x :worksTogetherWith ?y)', SEM_MODELS('Employees'),SDO_RDF_RULEBASES('RDFS','EmpRules'), SEM_ALIASES(SEM_ALIAS('','http://semantic.cs.put.poznan.pl/emp/')), null,null)) WHERE (x != y); X --------------------------------------http://semantic.cs.put.poznan.pl/emp/King http://semantic.cs.put.poznan.pl/emp/Jones Y --------------------------------http://semantic.cs.put.poznan.pl/emp/Jones http://semantic.cs.put.poznan.pl/emp/King Bazy wiedzy -- Blake zna Scotta SQL> INSERT INTO emp_rdf VALUES (9, SDO_RDF_TRIPLE_S('Employees', 'http://semantic.cs.put.poznan.pl/emp/Blake', 'http://semantic.cs.put.poznan.pl/emp/knows', 'http://semantic.cs.put.poznan.pl/emp/Scott')); -- knows jest cechą symetryczną SQL> INSERT INTO emp_rdf VALUES (10, SDO_RDF_TRIPLE_S('Employees', 'http://semantic.cs.put.poznan.pl/emp/knows', 'rdf:type', 'owl:SymmetricProperty')); -- bycie podwładną(ym) jest odwrotnością bycia przełożoną(ym) SQL> INSERT INTO emp_rdf VALUES (13, SDO_RDF_TRIPLE_S('Employees', 'http://semantic.cs.put.poznan.pl/emp/subordinateOf', 'owl:inverseOf', 'http://semantic.cs.put.poznan.pl/emp/managerOf')); Twierdzenie Bayesa prawdopodobieństwo a posteriori prawdopodobieństwo a priori P ( D | h) P ( h) P ( h | D) P( D) hipoteza dane n P( D) P( D | hi ) P(hi ), i 1 n P(h ) 1, P(h h ) 0 i 1 i i j Bazodanowy Bayes CREATE TABLE priors ( target_value VARCHAR(3), prior_probability NUMBER); INSERT INTO priors VALUES ('no',0.5); INSERT INTO priors VALUES ('yes',0.5); INSERT INTO settings VALUES (dbms_dm.algo_name,dbms_dm.algo_naive_bayes); INSERT INTO settings VALUES (dbms_dm.clas_priors_table_name,'PRIORS'); BEGIN DBMS_DM.CREATE_MODEL( model_name mining_function data_table_name case_id_column_name target_column_name settings_table_name END; => => => => => => 'NaiveBayes', DBMS_DM.CLASSIFICATION, 'titanic_train', 'id', 'survived', 'settings'); SELECT survived AS actual_outcome, PREDICTION(NaiveBayes USING *) AS predicted_outcome, PREDICTION_PROBABILITY(NaiveBayes, 0 USING *) AS death_probability, PREDICTION_PROBABILITY(NaiveBayes, 1 USING *) AS survive_probability FROM titanic_test; Usługi w chmurze • w świecie idealnym… • załaduj dane do chmury • odpytaj dane za pomocą standardowego SQL • wybiórczo współdziel dane Usługi w chmurze • o jakim rodzaju usługi mówimy? • IaaS: Infrastructure as a Service • PaaS: Platform as a Service • SaaS: Software as a Service • tradycyjne podziały szybko się zacierają • Database.com, Google BigQuery, Amazon Redshift, Microsoft Azure SQL Database Usługi w chmurze • elastyczność obliczenia są elastyczne, dane elastyczne nie są… • • • • czy dane mają być składowane na serwerze, czy w sieci? jak wspierać transakcyjność i analitykę jednocześnie? jak wykorzystać dostępność dodatkowych zasobów? jak obsługiwać wywłaszczenia? Usługi w chmurze • administracja i strojenie tradycyjne role administratora systemowego i administratora bazy danych za chwilę przestaną istnieć • • • • jak zapewnić ekstremalne automatyczne strojenie? jak automatycznie planować pojemność? jak zarządzać zasobami fizycznymi? jak konstruować polityki bezpieczeństwa? Usługi w chmurze • replikacja danych • musimy ponownie odwiedzić lata 90-te, wielowersyjne bazy danych, algorytmy optymistyczne blokowania, … • multitenancy • jak zapewnić obsługę nagłych skoków zapotrzebowania? • jak zarządzać pamięcią, I/O, CPU? • jak zapewnić bezpieczeństwo i poufność? Rola ludzi w cyklu życia danych • dawno, dawno temu, za górami, za lasami … • deweloperzy projektowali bazę danych • deweloperzy tworzyli aplikacje wokół bazy danych • analitycy odpytywali bazę danych korzystając z narzędzi OLAP lub SQL • użytkownicy końcowi generowali dane, odpytywali i aktualizowali bazę danych • administratorzy stroili i monitorowali bazę danych Rola ludzi w cyklu życia danych producenci • prywatność • meta-dane kuratorzy • tłumy • jakość danych konsumenci członkowie • interfejsy • asystowane zapytania • kolaboracja • wiedza ekspercka Społeczność baz danych uczenie baz danych jest całkowicie oderwane od rzeczywistości i odbywa się tak, jakbyśmy nadal żyli w latach 90-tych • zarządzanie buforami • losowe i sekwencyjne I/O • model relacyjny • SQL • baza danych w pamięci • dyski SSD • bazy kolumnowe, grafowe, semi-strukturalne, … • SPARQL, Hive, Pig Społeczność baz danych • szto diełat'? • top-bottom: przedstawiać technologię w postaci drzewa dyskutując każdy architekturalny punkt decyzji • jakość danych: przedstawiać proces przechodzenia od surowych danych do użytecznej wiedzy • preliminaria: wyjdźmy poza świat baz danych, uczmy naszych koncepcji (indeksowanie, haszowanie, optymalizacja) na zajęciach wstępnych z informatyki Społeczność baz danych Świat nauki nie jest bez grzechu • pogoń za IF, cytowaniami i indeksami (h-index, g-index) powoduje odejście od budowania dużych systemów prototypowych i systemów end-to-end • nacisk na dużą liczbę publikacji, komitety programowe preferują nowinki względem użyteczności lub długoterminowego wpływu Społeczność baz danych zarządzanie danymi przetwarzanie danych wielkiej skali data scientist informatyka ogólna analityka i BI matematyka i statystyka uczenie maszynowe optymalizacja a teraz do rzeczy dziękuję za uwagę