Bazy danych NoSQL. wprowadzenie. Szymon Francuzik Poznań,

Podobne dokumenty
Bazy danych NoSQL. Szymon Francuzik Poznań,

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Wst p Model Danych Saklowalno± + replikacja Spójno± Ograniczenia. Cassandra. Paweª Róg. Pozna«, maj 2011

BAZY DANYCH. NIERELACYJNE BAZY DANYCH NoSQL I ASOCJACYJNE STRUKTURY DANYCH. Adrian Horzyk. Akademia Górniczo-Hutnicza

NoSQL & relax with CouchDB

Przetwarzanie danych z wykorzystaniem technologii NoSQL na przykładzie serwisu Serp24

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

Hbase, Hive i BigSQL

Wprowadzenie do NoSql. Maksymilian Wiesiołek

Big Data i 5V Nowe wyzwania w świecie danych Krzysztof Goczyła

Definicja. Not Only SQL

Hurtownie danych wykład 5

Technologie Informacyjne

Wprowadzenie do Hurtowni Danych

Pojęcie bazy danych. Funkcje i możliwości.

Bazy danych 12. Bazy NoSQL. P. F. Góra

Wprowadzenie do baz NoSQL

BAZY DANYCH WYKŁAD 5 NO-SQL DATABASE

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Nierelacyjne bazy danych

Bazy danych - wykład wstępny

011 ASPEKTY BAZ NOSQL. Prof. dr hab. Marek Wisła

Szkolenie wycofane z oferty. Apache Cassandra - modelowanie, wydajność, analiza danych

CZĘŚĆ I. WARSTWA PRZETWARZANIA WSADOWEGO

Bazy danych NoSQL Część II. Maciej Zakrzewicz Politechnika Poznańska, Instytut Informatyki,

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Projektowanie rozwiązań Big Data z wykorzystaniem Apache Hadoop & Family

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Architektura Doświadczenia i wnioski. Amazon Dynamo. Tomasz Klukowski

Nowe technologie baz danych

010 NOSQL. Prof. dr hab. Marek Wisła

Bazy danych Wykład zerowy. P. F. Góra

(Apache) CouchDB. Krzysztof Kulewski 2008

1. WPROWADZENIE PRZEBADANE TECHNOLOGIE ŚRODOWISKO BADAWCZE ZAPISYWANIE I ODCZYTYWANIE W OBRĘBIE JEDNEJ INSTANCJI...

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

Tematy projektów Edycja 2014

WPROWADZENIE DO BAZ DANYCH

Baza danych. Modele danych

Bazy danych. Dr inż. Paweł Kasprowski

Seminarium Bazy Danych I. BigTable. Piotr Świgoń Uniwersytet Warszawski

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Big Data to skalowalność i prostota obsługi wielkich ilości danych!

Administracja bazami danych

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań,

Projektowanie: architektura baz danych

na podstawie bazy Oracle NoSQL

Wykład XII. optymalizacja w relacyjnych bazach danych

Wybrane działy Informatyki Stosowanej

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

Narzędzia i trendy Big Data

Bazy danych i usługi sieciowe

Projektowanie rozwiązań Big Data z wykorzystaniem Apache Hadoop & Family

Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Wybrane działy Informatyki Stosowanej

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Baza danych. Baza danych to:

Zaawansowany kurs języka Python

Technologia informacyjna

Adam Cankudis IFP UAM

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Rozproszone bazy danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

CouchDB. Michał Nowikowski

Hurtownie danych. 31 stycznia 2017

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Bazy danych 2. Wykład 1

Systemy Rozproszone. Zagadnienia do egzaminu.

Budowanie interfejsów do baz danych

Więzy integralności referencyjnej i klucze obce. PYTANIE NA EGZAMIN LICENCJACKI

Wprowadzenie do Hurtowni Danych

Współczesne systemy baz danych

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB


Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Tabela wewnętrzna - definicja

Podstawowe informacje o bazach danych. Technologie Informacyjne

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

Oracle 12.2 Database Sharding

PRZYKŁAD. Prosta uczelnia. Autor: Jan Kowalski nr indeksu: (przykładowy projekt)

Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres

Relacyjne bazy danych

Bazy danych 11. Systemy rozproszone, twierdzenie CAP i bazy NoSQL. P. F. Góra

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

ZSE - Systemy baz danych MODELE BAZ DANYCH. Ewolucja technologii baz danych

NoSQL. Technologie zarządzania treścią. dr inż. Robert Perliński

Transkrypt:

Bazy danych NoSQL wprowadzenie Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Poznań, 16.05.2012 Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 1 / 37

Plan prezentacji 1 Motywacja Relacyjne bazy danych Problemy relacyjnych baz danych 2 NoSQL Definicja Typy baz NoSQL 3 Amazon Dynamo Przeznaczenie Realizacja 4 Cassandra Przeznaczenie Rozpraszanie API Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 2 / 37

RDBMS Relacyjne systemy zarządzania bazami danych: relacyjny model danych Edgar Codd (IBM) 1970 język SQL transakcje ACID Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 3 / 37

Model relacyjny Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 4 / 37

ACID Atomicity (atomowość) Consistency (spójność) Isolation (izolacja) Durability (trwałość) Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 5 / 37

Wydajność atomowość konieczność logowania operacji spójność weryfikacja poprawności izolacja blokowanie/wycofywanie trwałość zapis do pamięci trwałej Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 6 / 37

Skalowalność Możliwość zwiększania wydajności systemu wraz z rosnącym zapotrzebowaniem. skalowanie wertykalne (ang. scale up) skalowanie horyzontalne (ang. scale out) sharding (partycjonowanie poziome) partycjonowanie pionowe repliki do odczytu Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 7 / 37

Model danych relacyjny model danych nie zawsze wygodny normalizacja vs. efektywność brakujące dane trudności przy zmianie schematu danych Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 8 / 37

CAP Theorem (Brewer s conjecture) Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 9 / 37

PACELC Partition yes no Availability Consistency Latency Consistency Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 10 / 37

Problemy podsumowanie Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 11 / 37

Definicja NoSQL Wikipedia: NoSQL jest klasą systemów zarządzania bazą danych nie pasujących do powszechnie stosowanego modelu relacyjnych baz danych: brak języka SQL (w szczególności brak operacji JOIN) nierelacyjny model danych nie musi zapewniać ACID rozproszona, odporna na awarie architektura Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 12 / 37

Alternatywa dla ACID BASE: Basic Availability Soft-state Eventual consistency Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 13 / 37

Podział ze względu na reprezentację danych klucz-wartość hierarchiczna struktura klucz-wartość ( BigTable-like ) dokumentowe grafowe Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 14 / 37

Bazy klucz-wartość przechowują pary klucz-wartość dostęp do danych jedynie po kluczu przykłady: Berkeley DB Riak Dynamo Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 15 / 37

Bazy z hierarchiczną strukturą klucz-wartość wzorowane na BigTable (Google) każdy wiersz może mieć przyporządkowany inny zestaw kolumn częściowo ustrukturalizowane przykłady: HBase Cassandra SimpleDB row-key columnfamily1 columnfamily1 supercolumn1 supercolumn2 col21 col22 col1 col2 col1 col3... val5 val6 val1 val2 val3 val4... Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 16 / 37

Dokumentowe bazy danych przechowuje dokumenty zamiast wierszy/rekordów dokument: wpis w bazie składający się z pól (nazwa-wartość) możliwość odwoływania się po polach nie będących kluczem podstawowym przykłady: CouchDB MongoDB ThruDB { imie: "Jan", nazwisko: "Kowalski", nr_indeksu: 98765, oceny: [5, 4.5, 3, 4] dzienny: true } db.students.find({nazwisko: "Kowalski"}) Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 17 / 37

Grafowe bazy danych węzły, krawędzie (łuki), własności szybki dostęp do powiązanych danych przykłady: HyperGraphDB Neo4J Trinity Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 18 / 37

Amazon Dynamo baza typu klucz-wartość stworzona do zarządzania stanem usług oferowanych przez Amazon: koszyk zakupów: dziesiątki milionów zapytań, do 3 mln transakcji zakupu dziennie sesje klientów: setki tysięcy równoległych sesji inne usługi: katalog produktów, system rekomendacji rozproszona architektura serwery rozproszone po całym świecie spójność ostateczna Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 19 / 37

Cele niezawodność (dostępność) nawet kosztem spójności skalowalność pozioma commodity hardware SLA ograniczenia na czas odpowiedzi Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 20 / 37

Dlaczego nie RDBMS dostęp do danych poprzez klucz podstawowy nie potrzeba modelu relacyjnego brak operacji odwołujących się do kilku elementów nie potrzeba transakcji RDBMS wymaga specjalistów i drogiego sprzętu ograniczona dostępność w przypadku awarii słaba skalowalność pozioma brak wsparcia dla automatycznego partycjonowania Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 21 / 37

Interfejs komunikacja po HTTP operacje: get(key) odsyła wartość oraz kontekst put(key, context, value) Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 22 / 37

Partycjonowanie danych consistent hashing: na podstawie klucza generowany hash MD5 (128b) przestrzeń haszy podzielona między wirtualne serwery do każdego fizycznego serwera przypisana określona liczba serwerów wirtualnych Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 23 / 37

Replikacja możliwość zdefiniowania ilości replik replikacja wpisu na N kolejnych replik w pierścieniu lista preferencji replik możliwość ustawienia parametru R i W sloppy quorum uspójnianie stanu: uspójnianie przy odczycie anti-entropy hinted handoff Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 24 / 37

Wielowersyjność obiektów wersja obiektu opisywana przez zegar wektorowy: TS 1 : {(S 1,3), (S 2,5), (S 3,1)} TS 2 : {(S 1,3), (S 2,4), (S 3,2)} TS 3 : {(S 1,3), (S 2,6), (S 3,2)} przechowywanie wersji powstałych współbieżnie do czasu uspójnienia przez klienta przy odczycie klient otrzymuje wszystkie dostępne wersje obiektu zymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 25 / 37

Cassandra hierarchiczna struktura klucz wartość Facebook indeksowanie na potrzeby przeszukiwania skrzynki użytkownika setki milionów użytkowników 600+ rdzeni rozmiar indeksu: 120+ TB open source Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 26 / 37

Struktura danych przestrzeń kluczy (keyspace) rodzina kolumn (column family) zdefiniowane statycznie super kolumny (super columns) kolumny (columns) wiersz (row) pojedynczy element z przypisanymi kolumnami/super-kolumnami row-key columnfamily1 columnfamily1 supercolumn1 supercolumn2 col21 col22 col1 col2 col1 col3... val5 val6 val1 val2 val3 val4... Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 27 / 37

Reprezentacja danych klucz i wartość reprezentowana jako tablica bajtów kolumny i super-kolumny posortowane po nazwach lub czasie modyfikacji indeksowanie kluczy Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 28 / 37

Indeksowanie Adam index_by_users_interactions Marek Kasia... m100 m252 m124 m511 m600... - - - -... Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 29 / 37

Partycjonowanie danych consistent hashing dynamiczne równoważenie obciążenia dwie strategie podziału: random partitioner ordered preserving partitioner Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 30 / 37

Replikacja możliwość konfigurowania liczby replik strategia rozmieszczania replik: przydział prosty świadoma topologi sieci: rack aware, datacenter aware Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 31 / 37

Kontrola poziomu spójności Zapisy: any one quorum local_quorum each_quorum all Odczyty: one quorum local_quorum each_quorum all Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 32 / 37

Uspójnianie replik uspójnianie przy odczycie anti-entropy hinted handoff Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 33 / 37

Interfejs Thrift RPC framework for cross-language service development wspierane języki: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml gotowe biblioteki dla wybranych języków programowania Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 34 / 37

Bibliografia http://nosql-database.org/ Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 35 / 37

Bibliografia http://nosqltapes.com/ Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 36 / 37

Bibliografia http://nosqlsummer.org/ Szymon Francuzik szymon.francuzik@cs.put.poznan.pl Bazy () danych NoSQL Poznań, 16.05.2012 37 / 37