3. Plan prezentacji
CouchDB Ruby
● Nierelacyjna baza danych ● Couchrest
● RESTful JSON API ● Couch_foo
● Widoki (MapReduce) ● Couch_potato
● Replikacje ● Reverse proxy
teoria praktyka
20.04.2010 Stanisław Wasiutyński 3
4. 20.04.2010 Stanisław Wasiutyński 4
Źródło: http://blog.nahurst.com/visual-guide-to-nosql-systems
5. tu jestem
20.04.2010 Stanisław Wasiutyński 5
Źródło: http://blog.nahurst.com/visual-guide-to-nosql-systems
6. Document-Oriented
● Wszystkie dane są przechowywane w formie dokumentów
o dowolnym rozmiarze.
● Każdy dokument ma unikalną nazwę, oraz posiada
dowolną liczbę pól o unikalnej nazwie.
● Każdemu polu (kluczowi) odpowiada wartość dowolnego
typu (np. String, Integer, Array, Hash).
● Na dokumentach wykonywane są operacje CRUD (Create,
Read, Update, Delete) tylko na całym dokumencie, nigdy
na jego fragmencie.
20.04.2010 Stanisław Wasiutyński 6
16. Coś więcej niż wymyślny
serwer plików.
20.04.2010 Stanisław Wasiutyński 16
http://www.flickr.com/photos/santos/1704875109/
17. Widoki
● Są przechowywane jako dokumenty,
● definiują dowolne funkcje map i reduce,
● służą do budowy wydajnych indeksów,
● pozwalają na niezależne przetwarzanie pojedynczych
dokumentów i zwrócenie ich w pożądanym formacie,
● generowane równolegle, inkrementalnie i na żądanie,
● brak dynamicznych zapytań („close to the metal”),
● rozbudowane API.
20.04.2010 Stanisław Wasiutyński 17
18. Map Reduce
GET /_design/comments/_view/cenzor?limit=11&reduce=false
GET /_design/comments/_view/cenzor?limit=11&reduce=false&
startkey=[<id>, <rok>, <miesiąc>, <dzień>]&
endkey=[<id>, <rok>, <miesiąc>, <dzień>+3]
GET /_design/comments/_view/cenzor?limit=11&group=true&group_level=3
GET /_design/comments/_view/cenzor?group=true&group_level=1&key=[<id>]
20.04.2010 Stanisław Wasiutyński 18