Bazy danych dzi* i jutro jakie wyzwania stoj* przed

advertisement
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ę
Download