Programowanie

NoSQL test – CouchDB w moich rękach.

Całkiem niedawno, albo może i dawno patrząc na postępujący czas, zacząłem pisać pewien programik w pracy. Ma nas on wspomagać w DevOps – owaniu. Dzięki niemu uda się, mam nadzieję, zautomatyzować sporo rzeczy. Oczywiście jak to nowy programik – NodeJs (tego jeszcze nie było), mikroserwisy, komunikacja po REST oraz jakaś baza danych.

Zazwyczaj na ten ostatni element zwracałem najmniejszą uwagę, bo dowolny ORM załatwiał sprawę za mnie. Więc tym razem, bo mogę, stwierdziłem, że spróbuję czegoś nowego – NoSQL. Na bazę wybrałem CouchDB bardzo przypadkowo. Po prostu wpisałem gdzieś “jaka baza do NodeJS”.

NoSQL-owe bazy charakteryzują się tym, że nie maja SQL 🙂 A tak naprawdę chodzi o to, że dane nie są uporządkowane, nie mają pełnych relacji i nie są wsadzane w schematy tabel. Do bazy NoSQL, zwłaszcza opartej o JSON wrzucamy po prostu dowolne dane. Mamy jakiś dokument – np. dane dowodu osobistego wraz z adresem -> BUM! Jest spisany JSON i leży w bazie. Mamy dowolny tekst wpisywany w pole opisu: Dlaczego nie kocham Urzędu Skarbowego? BUM! Jest spisany JSON i leży w bazie.

Dodatkowo jeśli mamy różne rodzaje danych to możemy spokojnie dodawać je w 1 miejsce. Nie ma tak, że tabela posiada kolumny zadanego typu. Każdy osobny zestaw danych może mieć inny schemat, nie ma z tym żadnego problemu.

Dzięki temu, że nie mamy specyficznych relacji, wyciągnięcie interesujących nas danych jest tak samo proste, jak ściągniecie i sparsowanie JSON-a. Szybkie i sprawne dodatkowo. Z drugiej strony, takie dane mogą mieć silną redundancję i zabierać sporo miejsca.

CouchDB dodatkowo działa trochę jak GIT. Każdą dodaną informację zapisuje, nadaje jej hash i trzyma w bazie. W ten sposób możemy zobaczyć jak zmieniały się dane po kolei od stworzenia bazy.

Takie bazy w moim mniemaniu są fajne do malutkich i szybciutkich projektów. Idealne, bo bardzo proste i (przynajmniej w wypadku CouchDB) zazwyczaj mają fajne API. Wybrany przeze mnie silnik to API ma REST-owe co jest dodatkowym plusem w moim wypadku.

Aplikacja dzięki zastosowaniu takiej bazy danych zyskała na prostocie, bo i tak większość informacji przesyłana jest poprzez JSON. Wystarczy, że go przetworzę i zapiszę. Polecam spróbować czegoś takiego.

5 thoughts on “NoSQL test – CouchDB w moich rękach.

  1. Pingback: dotnetomaniak.pl
  2. NoSQL, w tym wypadku MongoDB idealnie sprawdza się również jak się okazuje przy sklepach internetowych.
    Mówię tu akurat o GrandNode. Oparty o ASP.NET MVC 5 i wspomniane wcześniej MongoDB. Całkiem fajnie się prezentuje jako dotNetowa alternatywa dla najpopularniejszych PHPowych ecommerców. Przy czym samo użycie NoSQL znacząco przyspiesza wszystkie procesy w sklepie. Nie zgodziłbym się co do użyteczności w malutkich projektach. Prawdziwą moc może pokazać przy przetwarzaniu takiej ilości żądań jak w sklepie internetowych.

    http://grandnode.com jakbyś chciał zerknąć 🙂 ewentualnie są dostępni też na Gicie github.com/grandnode/grandnode

    1. Widać źle to opisałem. Nie chodzi mi o to, że tylko w małych projektach. W dużych również, ale w małych to dla mnie działa jak SQLite… Tylko bez SQL.

    1. A sensie, że da się w nich coś wyszukać? Tak da się, napiszę o tym pewnie jeszcze, bo temat ciekawy.

Leave a Reply

Your email address will not be published. Required fields are marked *