Mikołaj Morzy Instytut Informatyki Politechniki Poznańskiej 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
pozyskanie → zapisanie → przetworzenie 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ś NewSQL Hive Spanner + F-1 SQL storage engines Hadoop MapReduce NoSQL rozwiązania ad hoc
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 selekcja ocena ekstrakcja transformacja czyszczenie OLAP eksploracja 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', 'rdfs:subPropertyOf', 'http://www.ploug.org.pl/emp/worksIn')); SQL> INSERT INTO emp_rdf VALUES (15, SDO_RDF_TRIPLE_S('Employees', '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 Y --------------------------------------- --------------------------------- http://semantic.cs.put.poznan.pl/emp/King http://semantic.cs.put.poznan.pl/emp/Jones 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', '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 prawdopodobieństwo a priori a posteriori hipoteza dane
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 => 'NaiveBayes', mining_function => DBMS_DM.CLASSIFICATION, data_table_name => 'titanic_train', case_id_column_name => 'id', target_column_name => 'survived', settings_table_name => 'settings'); END; 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 multitenancy 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 interfejsy asystowane zapytania członkowie 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 informatyka ogólna data scientist analityka i BI matematyka i statystyka uczenie maszynowe optymalizacja
a teraz do rzeczy
dziękuję za uwagę