45
Bazy danych NoSQL Szymon Francuzik [email protected] Poznań, 29.10.2012 Szymon Francuzik [email protected] () Bazy danych NoSQL Poznań, 29.10.2012 1 / 45

BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

  • Upload
    letuyen

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Bazy danych NoSQL

Szymon [email protected]

Poznań, 29.10.2012

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 1 / 45

Page 2: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Plan prezentacji

1 Definicja

2 Motywacje

3 Klasyfikacja NoSQL

4 Amazon DynamoPrzeznaczenieRealizacja

5 CassandraPrzeznaczenie“Rozpraszanie”API

6 RavenDB

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 2 / 45

Page 3: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

RDBMS

Relacyjne systemy zarządzania bazami danych:relacyjny model danych — Edgar Codd (IBM) — 1970język SQLtransakcjeACID

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 3 / 45

Page 4: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Model relacyjny

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 4 / 45

Page 5: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

ACID

Atomicity (atomowość)Consistency (spójność)Isolation (izolacja)Durability (trwałość)

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 5 / 45

Page 6: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Definicja NoSQL

Wikipedia:NoSQL jest klasą systemów zarządzania baządanych nie pasujących do powszechniestosowanego modelu relacyjnych baz danych:

brak języka SQL (w szczególności brakoperacji JOIN)nierelacyjny model danychnie musi zapewniać ACIDrozproszona, odporna na awariearchitektura

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 6 / 45

Page 7: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Wydajność

atomowość

spójność

izolacja

trwałość

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 7 / 45

Page 8: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Skalowalność

Możliwość zwiększania wydajności systemu wraz zrosnącym zapotrzebowaniem.

skalowanie wertykalne (ang. scale up)skalowanie horyzontalne (ang. scale out)

I sharding (partycjonowanie poziome)I partycjonowanie pionoweI repliki do odczytu

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 8 / 45

Page 9: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

CAP Theorem (Brewer’s conjecture)

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 9 / 45

Page 10: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

PACELC

Partition

yes no

Availability Consistency Latency Consistency

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 10 / 45

Page 11: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Alternatywa dla ACID

BASE:Basically AvailableSoft-stateEventual consistency

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 11 / 45

Page 12: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Model danych

relacyjny model danych nie zawsze wygodnyI normalizacja vs. efektywnośćI brakujące dane

trudności przy zmianie schematu danych

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 12 / 45

Page 13: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Motywacje

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 13 / 45

Page 14: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Podział ze względu na reprezentację danych

klucz-wartośćhierarchiczna struktura klucz-wartość (“BigTable-like”)dokumentowegrafowe

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 14 / 45

Page 15: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Bazy klucz-wartość

przechowują pary klucz-wartośćdostęp do danych jedynie po kluczuprzykłady:

I Berkeley DBI RiakI Dynamo

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 15 / 45

Page 16: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Bazy z hierarchiczną strukturą klucz-wartość

wzorowane na BigTable (Google)każdy wiersz może mieć przyporządkowany inny zestaw kolumnczęściowo ustrukturalizowaneprzykłady:

I HBaseI CassandraI SimpleDB

columnfamily1

row-key1supercolumn1 supercolumn2col1 col2 col1 col3 ...val1 val2 val3 val4 ...

row-key2 supercolumn1 supercolumn2

columnfamily

row1

row2

supercolumn1

supercolumn2

column1

column2

column3

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 16 / 45

Page 17: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Bazy z hierarchiczną strukturą klucz-wartość

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 17 / 45

Page 18: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Dokumentowe bazy danych

przechowuje dokumenty zamiastwierszy/rekordówdokument: wpis w bazieskładający się z pól(nazwa-wartość)możliwość odwoływania się popolach nie będących kluczempodstawowymprzykłady:

I CouchDBI MongoDBI ThruDB

{ imie: "Jan",

nazwisko: "Kowalski",

nr_indeksu: 98765,

oceny: [5, 4.5, 3, 4]

dzienny: true }

db.students.find({nazwisko:

"Kowalski"})

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 18 / 45

Page 19: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Grafowe bazy danych

węzły, krawędzie (łuki), własnościszybki dostęp do powiązanych danychprzykłady:

I HyperGraphDBI Neo4JI Trinity

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 19 / 45

Page 20: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Amazon Dynamo

baza typu klucz-wartośćstworzona do zarządzania stanem usług oferowanych przez Amazon:

I koszyk zakupów: dziesiątki milionów zapytań, do 3 mln transakcjizakupu dziennie

I sesje klientów: setki tysięcy równoległych sesjiI inne usługi: katalog produktów, system rekomendacji

rozproszona architektura — serwery rozproszone po całym świeciespójność ostateczna

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 20 / 45

Page 21: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Cele

niezawodność (dostępność) — nawet kosztem spójnościskalowalność pozioma — commodity hardwareSLA — ograniczenia na czas odpowiedzi

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 21 / 45

Page 22: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Dlaczego nie RDBMS

dostęp do danych poprzez klucz podstawowy — nie potrzeba modelurelacyjnegobrak operacji odwołujących się do kilku elementów — nie potrzebatransakcjiRDBMS wymaga specjalistów i drogiego sprzętuograniczona dostępność w przypadku awariisłaba skalowalność pozioma — brak wsparcia dla automatycznegopartycjonowania

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 22 / 45

Page 23: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Interfejs

komunikacja po HTTPoperacje:

I get(key) — odsyła wartość oraz kontekstI put(key, context, value)

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 23 / 45

Page 24: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Partycjonowanie danych

consistent hashing (MD5 128b)

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 24 / 45

Page 25: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Replikacja

konfigurowalna liczba repliklista preferencjisloppy quorum

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 25 / 45

Page 26: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Uspójnianie stanu

uspójnianie przy odczycieanti-entropyhinted handoff

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 26 / 45

Page 27: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Wielowersyjność obiektów

wersja obiektu opisywana przez zegarwektorowy:TS1 : {(S1,3), (S2,5), (S3,1)}TS2 : {(S1,3), (S2,4), (S3,2)}TS3 : {(S1,3), (S2,6), (S3,2)}przechowywanie wersji powstałychwspółbieżnie do czasu uspójnienia przezklientaprzy odczycie klient otrzymuje wszystkiedostępne wersje obiektu

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 27 / 45

Page 28: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Cassandra

hierarchiczna struktura klucz wartośćFacebook — indeksowanie na potrzeby przeszukiwania skrzynkiużytkownika

I setki milionów użytkownikówI 600+ rdzeniI rozmiar indeksu: 120+ TB

open source

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 28 / 45

Page 29: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Struktura danych

przestrzeń kluczy (keyspace)rodzina kolumn (column family) — zdefiniowane statycznie

I super kolumny (super columns)I kolumny (columns)

wiersz (row) — pojedynczy element z przypisanymikolumnami/super-kolumnami

row-key

columnfamily1 columnfamily1supercolumn1 supercolumn2 col21 col22col1 col2 col1 col3 ...

val5 val6val1 val2 val3 val4 ...

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 29 / 45

Page 30: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Reprezentacja danych

klucz i wartość reprezentowana jako tablica bajtówkolumny i super-kolumny posortowane po nazwach lub czasiemodyfikacjiindeksowanie kluczy

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 30 / 45

Page 31: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Indeksowanie

Adam

index_by_users_interactionsMarek Kasia ...

m100 m252 m124 m511 m600 ...- - - - ...

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 31 / 45

Page 32: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Partycjonowanie danych

consistent hashingdynamiczne równoważenie obciążeniadwie strategie podziału:

I random partitionerI order preserving partitioner

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 32 / 45

Page 33: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Replikacja

możliwość konfigurowania liczby replikstrategia rozmieszczania replik:

I przydział prostyI świadoma topologi sieci: rack aware, datacenter aware

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 33 / 45

Page 34: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Kontrola poziomu spójności

Zapisy:anyonequorumlocal_quorumeach_quorumall

Odczyty:onequorumlocal_quorumeach_quorumall

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 34 / 45

Page 35: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Uspójnianie replik

uspójnianie przy odczycieanti-entropyhinted handoff

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 35 / 45

Page 36: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Interfejs

Thrift — RPC framework for cross-language service developmentwspierane języki:C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa,JavaScript, Node.js, Smalltalk, OCamlgotowe biblioteki dla wybranych języków programowania

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 36 / 45

Page 37: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Example Code

va r c l i e n t F a c t o r y = new KeyedCa s s and r aC l i e n tFac to r y (new Ca s s and r aC l i e n tPoo l F a c t o r y ( ) . C rea te ( ) ,new KeyedCa s s and r aC l i e n tFac to r y . Con f i g ( ) ) ;

va r c l i e n t = c l i e n t F a c t o r y .Make(new Endpo int ( " l o c a l h o s t " , 9 160 ) ) ;

va r key space = c l i e n t . GetKeyspace ( "Keyspace1 " ) ;va r path = new ColumnPath ( " Standard1 " , n u l l , " g r e e t i n g " ) ;key space . I n s e r t ( "0" , path , " He l l o ␣World ! " ) ;Column column = keyspace . GetColumn ( "0" , path ) ;Conso l e . Wr i t eL i n e ( column . Value ) ;

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 37 / 45

Page 38: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

RavenDB

dokumentowa — JSONschema-lesstransakcje

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 38 / 45

Page 39: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Skalowalność

replikacjasharding

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 39 / 45

Page 40: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Interfejs

.NET ClientHTTP — RESTful API

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 40 / 45

Page 41: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

.NET Client Example

BlogPost pos t = new BlogPost ( ) {T i t l e = " He l l o ␣RavenDB" ,Category = "RavenDB" ,Content = "This ␣ i s ␣a␣ b log ␣ about ␣RavenDB" ,Comments = new BlogComment [ ] {

new BlogComment ( ) { T i t l e=" U n r e a l i s t i c " , Content=" example1 " } ,new BlogComment ( ) { T i t l e="Nice " , Content=" example2 "}}

} ;

s e s s i o n . S to r e ( pos t ) ;s e s s i o n . SaveChanges ( ) ;

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 41 / 45

Page 42: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

RESTful Example

PUT /docs / B logPost s /1 HTTP/1 .1Accept−Encoding : d e f l a t e , g z i pContent−Type : a p p l i c a t i o n / j s o n ;c h a r s e t=ut f −8Host : 1 2 7 . 0 . 0 . 1 : 8 0 8 0Content−Length : 378

{" T i t l e " : " He l l o ␣RavenDB" ," Category " : "RavenDB" ,"Content " : "Thi s ␣ i s ␣a␣ b log ␣ about ␣RavenDB" ,"Comments" : [

{" T i t l e " : " U n r e a l i s t i c " ,"Content " : "This ␣ example ␣ i s ␣ u n r e a l i s t i c " } ,

{" T i t l e " : "Nice " ,"Content " : "This ␣ example ␣ i s ␣ n i c e "}]}

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 42 / 45

Page 43: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Bibliografia

http://nosql-database.org/

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 43 / 45

Page 44: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Bibliografia

http://nosqltapes.com/

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 44 / 45

Page 45: BazydanychNoSQL - cs.put.poznan.pl · Planprezentacji 1 Definicja 2 Motywacje 3 KlasyfikacjaNoSQL 4 AmazonDynamo Przeznaczenie Realizacja 5 Cassandra Przeznaczenie “Rozpraszanie”

Bibliografia

http://nosqlsummer.org/

Szymon Francuzik [email protected] ()Bazy danych NoSQL Poznań, 29.10.2012 45 / 45