Hurtownie danych wykład 5

advertisement
Relacyjne bazy danych
why NoSQL?
Hurtownie danych wykład 5
dr Sebastian Zając
SGH
Warszawa
7 lutego 2017
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
1
Relacyjne bazy danych
Współbieżność i integracja
Niezgodność impedancji
2
why NoSQL?
Historia NoSQL
Agregacyjne modele danych
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Współbieżność i integracja
Niezgodność impedancji
bazy danych
Bazy relacyjne
Bazy relacyjne jako ”oczywiste” narzędzie wykorzystywane przy
tworzeniu oprogramowania biznesowego i do przechowywania
danych.
zalety: możliwość trwałego przechowywania dużych ilości danych.
Przypomnienie – dwa rodzaje pamięci:
pamięć główna – szybka i nietrwała - brak zasilania,
ograniczona pojemność
magazyn wspierający – obszerniejszy ale wolniejszy. Np. plik
w systemie plików systemu operacyjnego, baza danych
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Współbieżność i integracja
Niezgodność impedancji
bazy danych
Współbieżność
Wielu użytkowników przegląda jednocześnie te same dane oraz
wykonuje modyfikację danych.Czy dwie osoby mogą zarezerwować
ten sam pokój ? Programistycznie trudne do realizacji ale w bazach
danych obsługiwane prze transakcje. Jeśli podczas wprowadzania
zmian nastąpi błąd transakcja wycofa zmiany i przywróci
poprzednie wartości.
Integracja
Systemy biznesowe zazwyczaj składają się z wielu aplikacji
współpracujących w celu wykonania zadań, co wymaga
zaawansowanej organizacji pracy tych aplikacji. Aplikacje
wykorzystują często te same dane , a modyfikacje dokonane w
jednej aplikacji muszą być widoczne także w innych. Zazwyczaj
osiąga się to przez integrację poprzez współdzieloną BD.
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Współbieżność i integracja
Niezgodność impedancji
bazy danych
Ustandaryzowany model
Popularność baz danych ze względu na udostępnianie w/w
funkcjonalności w ustandaryzowany sposób. Mimo, iż pomiędzy
systemami relacyjnymi występują różnice, podstawowy mechanizm
jest taki sam. Dialekty języka SQL są bardzo podobne, transakcje
obsługiwane są prawie identycznie.
Niezgodność impedancji
Model relacyjny organizuje dane w strukturę tabel i wierszy (relacje
i krotki). Poleganie na relacjach wprowadza jednak ograniczenia:
Dane w krotce muszą być proste - nie mogą zawierać listy bądź
struktury zagnieżdżonej. Dla danych umieszczanych w pamięci
głównej problem ten nie występuje.
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Współbieżność i integracja
Niezgodność impedancji
bazy danych
Rozwiązaniem problemu mogły być bazy obiektowe - wymaga
jednak to procedur mapujących, co może prowadzić do ignorowania
transakcji i spadku szybkości wykonywanych zapytań.
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Historia NoSQL
Agregacyjne modele danych
Klastry
Po 2000 roku wiele firm internetowych zanotowało wzrosty. Strony
internetowe zaczęły bardzo szczegółowo śledzić aktywność i
analizować strukturę, co doprowadziło do pojawienia się olbrzymiej
ilości danych: łącza, sieci społecznościowe, logi aktywności,dane
mapujące. Ponadto największe strony stały się miejscami regularnie
odwiedzanymi przez ogromne ilości użytkowników — zwiększenie
zasobów:
skalowanie w górę - większa pamięć, dysk, procesor - wzrost
kosztów !
skalowanie w bok - wykorzystanie wielu słabszych maszyn w
klastrze. bazy relacyjne nie są zaprojektowane do pracy w
klastrach!!!
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Historia NoSQL
Agregacyjne modele danych
Bazy na klastrach
Google i Amazon - pierwsze prace nad systemami bazodanowymi
działającymi na klastrach (BigTable i Dynamo).
Baza ”prawie” NoSQL
Termin NoSQL pojawił się po raz pierwszy w latach 90 jako nazwa
bazy relacyjnej open source, której twórcą był Carlo Strozzi (Strozzi
NoSQL) - dane w formie plików ASCII - krotka = linia oddzielona
znakami tabulacji. Brak języka SQL do obsługi (skrypty BASH).
11 czerwca 2009 San Francisco - spotkanie (użytkownicy Hadoop)
zorganizowane przez Johana Oskarssona. Poszukiwanie prostej
nazwy (znacznik Twittera). Nazwę NoSQL zaproponował Eric
Evans.
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Historia NoSQL
Agregacyjne modele danych
Termin NoSQL uzyskał wielką popularność ale sama nazwa nigdy
dokładnie nie opisuje zjawiska. Dotyczy otwartych, rozproszonych i
nierelacyjnych baz danych: Voldemort, Cassandra, Dynomite,
HBase, Hypertable, CouchDB, MongoDB. Obecnie brak ogólnej
definicji (czy też organizacji, która mogłaby stworzyć taką
definicję).
Główne cechy
Bazy mogą, ale nie muszą wykorzystywać SQL (najczęściej
język podobny do SQL np. CQL - Cassandra - ”dokładnie
jak SQL, poza miejscami, gdzie się różni”.
Oprogramowanie Open Source
Brak modelu relacyjnego
Sprawne działanie w klastrze
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Historia NoSQL
Agregacyjne modele danych
Agregacyjne modele danych
Model danych - model, zgodnie z którym baza danych organizuje
dane. Np. Model relacyjny – wizualizowany jest jako zestaw tabel.
Każda tabela posiada wiersze, każdy wiersz reprezentuje encję.
Encje opisywane są za pomocą kolumn, a każda kolumna zawiera
pojedynczą wartość.
Modele NoSQL
1 modele zorientowane na agregacje
klucz – wartość
dokument
rodzina kolumn
2
modele grafowe
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Historia NoSQL
Agregacyjne modele danych
Agregacje
Model relacyjny
Dane podzielone na krotki (wiersze). Nie można zagnieżdżać
krotek wewnątrz innych krotek. Operacje = modyfikacja i
zwracanie krotek.
Agregacje
Operacje na danych bardziej skomplikowanych niż krotka.
Wygodnie myśleć jako operacje na rozbudowanych rekordach
pozwalających na przechowywanie innych rekordów. Agregacja Kolekcja obiektów, które traktowane są jako jednostka.
dr Sebastian Zając
Hurtownie danych wykład 5
Relacyjne bazy danych
why NoSQL?
Historia NoSQL
Agregacyjne modele danych
JSON
JavaScript Object Notation
W bazach NoSQL najczęściej wykorzystuje się format JSON:
{ ”id”:1,
”nazwa”:”Marcin”,
”adresPlatnika”:[”miasto”:”Warszawa”,”ulica”:”Polna”,”nr”:”43”]
}
dr Sebastian Zając
Hurtownie danych wykład 5
Download