Miesięcznik informatyków i menedżerów IT sektora publicznego

Paweł Ziółkowski

Zarządzanie bazą danych przy użyciu MongoDB

MongoDB to jeden z wielu nowych systemów do zarządzania bazami danych. W odróżnieniu od baz relacyjnych tzw. systemy NoSQL wykazują się większą elastycznością i skalowalnością, ale mają też swoje ograniczenia.

itwa.pl/extra
itwa.pl/extra

Pierwsze bazy NoSQL (not only SQL), określane mianem next-generation database, zaczęły się pojawiać na rynku już ponad 10 lat temu. Duże firmy informatyczne, takie jak Google czy Amazon, potrzebowały narzędzi, które będzie można łatwiej i w większym stopniu dopasować do ich potrzeb oraz które poradzą sobie z przechowywaniem i analizą ogromnej i ciągle rosnącej ilości danych. Pierwszymi systemami tych firm były Hadoop i Dynamo. Po nich pojawiły się kolejne, które coraz bardziej odchodziły od tradycyjnej, relacyjnej wizji składowania danych. Brak struktury danych, ich mniejszy determinizm, przechowywanie danych m.in. w kolumnach i dokumentach to tylko niektóre cechy NoSQL (sama nazwa NoSQL odnosi się głównie tylko do jednej cechy nowych baz, czyli do braku języka SQL). Obecnie mamy do dyspozycji setki różnych narzędzi do zarządzania bazami danych, w tym artykule skupimy się na MongoDB – bazie, która przechowuje dane w dokumentach.

Instalacja MongoDB

System zarządzania bazą danych MongoDB istnieje w kilku wersjach – począwszy od płatnej Enterprise, a skończywszy na darmowej Community Server. Wersja darmowa ma kilka ograniczeń i udostępnia mniej funkcji w porównaniu z płatnym wydaniem. Służy głównie do edukacji i prac developerskich. W wersji Enterprise znajdziemy systemy backupu, możliwość integracji z bazami LDAP, możliwość działania w pamięci RAM (in-memory), a nie na dysku, oraz wsparcie techniczne producentów.

Instalacja darmowego systemu przebiega zaledwie w kilku krokach (zobacz: itwa.pl/ap). Aby bezpiecznie pobrać i zweryfikować pakiet przez apt, należy dodać do listy kluczy publicznych /etc/apt/trusted.gpg klucz producenta, wydając polecenie apt-key adv -keyserver oraz dodać nowy adres, z którego zostanie pobrany pakiet. Po aktualizacji menedżera pakietów (apt-get update) możemy zainstalować MongoDB poleceniem apt-get install mongodb-org. Najważniejsze pliki, które pojawią się w systemie po instalacji, to:

  • /etc/mongod.conf – konfiguracja demona
  • /var/lib/mongodb – pliki bazy danych
  • /var/log/mongodb – logi.

Proces bazy uruchamiamy poleceniem service mongod start. Jeżeli serwis nie zostanie uruchomiony poprawnie, zostaniemy o tym poinformowani. Możemy też skontrolować stan działania usługi, sprawdzając logi systemowe lub wydając polecenie service mongod status. Błąd 100 informuje o braku wystarczającej ilości miejsca na dysku. Aby go obejść, można zmienić konfigurację, dopisując opcję smallFiles: true w pliku mongod.conf. Odstępy w tym pliku, w każdej linijce tworzymy tylko przez spację, a każdy następny poziom to dwa znaki spacji więcej:

storage:

mmapv1:

smallFiles: true

Zapisujemy poprawny plik konfiguracyjny i ponownie uruchamiamy serwis. Jeżeli wszystko działa poprawnie, w logach powinniśmy zobaczyć wpis:

[…] waiting for connections on port 27017

Jednym z pakietów otrzymywanych po instalacji jest mongodb-org-shell, dzięki któremu możemy wykonywać polecenia na bazie z wykorzystaniem linii poleceń (CLI). Polecenia będziemy wykonywać głównie w języku JavaScript, dlatego warto się przyjrzeć tym elementom przed rozpoczęciem pracy.

JSON i BSON

Format JSON (JavaScript Object Notation) to tekstowy zapis właściwości/pól i ich wartości w nawiasach klamrowych {}. Zapis obiektu „osoba”, której właściwości to imię i nazwisko, wygląda więc następująco:

{

„imie” : „Paweł”,

„nazwisko” : „Ziółkowski”

}

Właściwości (pola) oraz wartości zapisane są w cudzysłowach. Kolejne pola rozdzielane są przecinkiem. Często dane przechowywane są w kolekcjach, czyli tablicach obiektów, wtedy wszystkie obiekty rozdzielone są znakami {} otaczającymi obiekty lub dodatkowo przecinkami, a cała struktura zostaje często zamknięta w nawiasy kwadratowe []:

[...]

Autor jest absolwentem Uniwersytetu Ekonomicznego we Wrocławiu, pracuje jako informatyk w Urzędzie Gminy w Miękini.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma. Zapraszamy do składania zamówień na prenumeratę i numery archiwalne.
 
 

Polecamy

Biblioteka Informacja Publiczna

Specjalistyczne publikacje książkowe dla pracowników administracji publicznej

więcej