Odcinek 36. to powrót do baz danych. Ale w innej odsłonie: tym razem poruszamy temat NoSQL. Głównie: Mongo, ale nie tylko.
Goszczę Grzegorza Bernasia. To pasjonat przetwarzania danych, a jego celem jest nauka poprzez działania i rozwiązywanie problemów. Swój chłop, co nie? ;) Znajdziecie go na Twitterze: @profesor79pl.
To jedziemy!
Montaż odcinka: Krzysztof Śmigiel.
Ważne adresy:
- zapisz się na newsletter
- zasubskrybuj w iTunes, Spotify lub przez RSS
- ściągnij odcinek w mp3
Linki:
- porównianie systemów DB: http://db-engines.com/en/ranking/document+store
- dokumentacja Mongo: https://docs.mongodb.com
- Mongo uniwersytet: https://university.mongodb.com/courses/M101N/about
- mongo na SO: http://stackoverflow.com/questions/tagged/mongodb
- couchbase – http://www.couchbase.com
- newSql: https://voltdb.com/
- DevTalk#29 – O wydajności baz danych z Damianem Widerą (http://devtalk.pl/2016/02/29-o-wydajnosci-baz-danych-z-damianem-widera/)
- inny polski podcast na ten temat: DevReview #2 O NoSQL z Rafałem Kaszczukiem (http://foreverframe.pl/devreview-2-o-nosql-z-rafalem-kaszczukiem/)
Muzyka wykorzystana w intro:
“Misuse” Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0
http://creativecommons.org/licenses/by/3.0/
Przesłuchałem oba podcasty o NoSql, i pod względem merytorycznym ten z DevReview znacznie lepszy. W tutejszym dostaliśmy trochę dość wątpliwej jakości stwierdzeń, słychać było że próbujesz wyciągnąć swojego gościa dodatkowymi pytaniami na właściwe tory, no ale wyszło średnio.
Dlatego polecam po przesłuchaniu tego podcasta, przesłuchać jeszcze ten z DevReview obowiązkowo.
Miałem podobne wrażenie. Mało konkretnych informacji, z których można by było skorzystać. Z tego co zrozumiałem z rozmowy to NoSQL jest wielkim nie do końca uporządkowanym workiem na dokumenty, w których trzeba wykonywać duplikację danych (i potem lecieć po całej kolekcji, żeby zaktualizować pole nadmiarowe). To praktycznie w ogóle mnie nie przekonało do sprawdzenia “z czym to się je”. Przy fragmencie omawiającym problemy w RavenDB z większą ilością dokumentów, zacząłem się zastanawiać czym jest w ogóle ten “dokument”… Zgadzam się, że z podcasta z DevReview można wyciągnąć dużo więcej.
Pozdrawiam
Odpowiednie treści dla osób, które dopiero co zaczynają przygodę z NoSQL, chociaż zalety takiego podejścia mogłyby zostać mocniej wypunktowane. Pozwolę sobie “przyczepić się” do 3 rzeczy:
1. Eventual consistency – tegp raczej nie tłumaczymy jako “ewentualne konsystencja”, bardziej jest to “ostateczna spójność”, czyli założenie, że możemy mieć pewność, że dane w systemie ostatecznie będą spójne ale niekoniecznie musi to nastąpić dokładnie w tym momencie.
2. Atrybuty – można skorzystać z Fluent API podobnie jak w EF/NH i dzięki temu trzymać “czyste” encje w domenie.
3. Filtry – można wykorzystać AsQueryable() dzięki czemu uzyskujemy dostęp do typu MongoQueryable, a co za tym idzie znany nam LINQ. Filtry są użyteczne dla bardziej skomplikowanych/złożonych zapytań lub gdy chcemy skorzystać z natywnych operacji dostępnych w bazie.
Brakło mi również wspomnienia o BASE i rozróżnienia czym się różni sharding od replikacji w kontekście dystrybucji danych.
Dzieki za komentarze! – jako ze byl to “moj pierwszy raz” w przestrzeni publicznej – to wszelkie techniczne uwagi biore do serca i bede nad nimi pracowal!
Jako cel podjelismy z Mackiem opowiedzenie troche o nosql’u, bez zagladania w implementacje ze strony Mongo, jako ze nie mialo to byc o Mongo., wiec podejrzewam ze to moglo zaciemnic technicza strone.
Mi się DevReview też bardzo podoba, dlatego go podlinkowałem :). Niektóre pytania się pokrywają, ale nie było to zamierzone – DevTalk nagraliśmy zanim DevReview zostało opublikowane.
DevTalk#36 – O NoSQL z Grzegorzem Bernasiem
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl