Intrygujące, jak bazy danych

Przedstawiamy 11 najciekawszych baz danych nowej generacji, które mogą przechowywać dane w bardziej elastycznych formatach, na większej liczbie komputerów oraz obsługują różne formy zapytań.

Zaledwie kilka lat temu praca przy bazach danych była jednym ze spokojniejszych zadań IT. Dane były uporządkowane, a producenci relacyjnych baz danych skutecznie poprawiali ich wydajność i niezawodność. Jednak w pewnym momencie zmieniła się natura informacji, które chcemy przechowywać, a to zapoczątkowało rewolucję w świecie baz danych.

Bazy danych nie służą już tylko do obsługi kont bankowych czy przechowywania danych z faktur. Obecnie wszyscy udostępniają dane w sieciach społecznościowych. Nagle okazało się, że jest znacznie więcej danych do przechowywania, a większość nowych danych nie nadaje się do przechowywania w tabelach. Praca twórców i administratorów baz danych zaczęła się diametralnie zmieniać. Efektem jest szeroki wachlarz nowych, interesujących rozwiązań, które sprawiły, że technologie bazodanowe są dzisiaj jednymi z najbardziej intrygujących.

Zobacz również:

  • Asystent AI Copilot wkroczył do platformy Azure SQL Database

Cassandra, MongoDB, CouchDB, Riak, Neo4j – innowacje bazodanowe z ostatnich kilku lat na dobre zagościły w wielu firmach. Tymczasem szybko rozwija się kolejna generacja. Przedstawiamy aż 11 najciekawszych baz danych, które mogą przechowywać dane w bardziej elastycznych formatach, na większej liczbie komputerów oraz obsługują różne formy zapytań. Świat baz danych nigdy nie był tak interesujący, jak dzisiaj.

FaunaDB

Kiedy kilku byłych pracowników Twittera myślało nad nowym projektem, w którym mogli wykorzystać swoje doświadczenie zdobyte przy przetwarzaniu miliardów wpisów, uznali, że rozproszona baza danych będzie właściwym wyzwaniem. Język zapytań wbudowany w FaunaDB umożliwia tworzenie złożonych kwerend, które zbierają dane z wielu źródeł, jednocześnie przeszukując media społecznościowe oraz inne struktury, np. bazy grafy. Aby przetestować tę bazę danych, nie trzeba jej nawet instalować. Autorzy udostępniają ją w formie usługi SaaS. Oczywiście, aby mieć większą kontrolę nad bazą danych, należy ją zainstalować we własnym środowisku.

ArangoDB

Wiele osób zajmujących się bazami danych za ideał uważa rozwiązanie łączące elastyczność baz danych zorientowana dokumentowo, specjalne właściwości grafowych baz danych oraz elastyczność tabelarycznych danych. Okazuje się, że baza danych spełniająca te wymagania, jest już na rynku. ArangoDB umożliwia umieszczanie danych w bazach dokumentowych lub grafowych. Następnie umożliwia tworzenie zapytań, które wykorzystują pętle oraz złączenia obejmujące wszystkie lokalizacje bazy danych, dzięki czemu zapytania są szybciej przetwarzane. Poza tym język zapytań jest ujęty w JavaScript, który udostępnia mikrousługi przez interfejsy API.

ArangoDB jest jedynym przykładem łączącym moc grafowych i dokumentowych baz danych. OrientDB ma podobne właściwości, ale jej twórcy opisują ją raczej jako drugą generację grafowych baz danych. Innymi słowy, węzły w grafie są dokumentami, które czekają na przydzielanie odpowiednich wartości klucza. To sprawia, że przy pierwszym kontakcie OrientDB sprawia wrażenie bazy grafowej, ale nie ma powodu, żeby nie używać wyłącznie przechowywanych wartości klucza. OrientDB również wykorzystuje RESTful API do obsługi zapytań.

Crate.io

Ta baza danych łączy w jednym rozwiązaniu potęgę takich mechanizmów wyszukiwania, jak Lucene, ale jednocześnie umożliwia łatwe tworzenie zapytań o strukturze podobnej do SQL’a. Lucene rozpoczynał jako wyszukiwarka do znajdowania słów kluczowych w dużych, nieuporządkowanych blokach tekstu, ale zawsze był oferowany do przechowywania kluczy i odpowiadających im wartości w dokumentach. Dlatego niektórzy zaliczają go do rewolucji NoSQL.

Crate.io startowało razem z Lucene oraz z jego większym, skalowalnym i rozproszonym kuzynem - Elasticsearch – ale wprowadziło język zapytań o składni zbliżonej do SQL. Osoby stojące za projektem Crate.io planują dodanie polecenia JOIN, co znacznie podniesie możliwości tej bazy danych (zakładając, że dany użytkownik potrzebuje polecenia JOIN). Osoby przyzwyczajone do pracy z SQL’em docenią fakt, że Crate.io łączy nowe, skalowalne technologie w sposób, który jest łatwiejszy do wykorzystania przez systemy bazujące na SQL’u.

CockroachDB

Nazwa może nie jest zbyt atrakcyjna, ale może budzić sentyment. Twórcy CockroachDB uznali, że nie ma innego organizmu, niż karaluch, który byłby bardziej żywotny i odporny na negatywny wpływ czynników zewnętrznych. CockroachDB umożliwia wdrażanie aplikacji w sposób pozwalający na ich bardzo skuteczne przywracanie po awarii. Wprawdzie dopiero z czasem przekonamy się, czy twórcom faktycznie udało się osiągnąć cel, ale przyczyną ewentualnego niepowodzenia na pewno nie będą braki techniczne. Zespół planuje uczynić tę bazę danych łatwą do skalowania. Po dodaniu nowego węzła CockroachDB przeprowadzi odpowiednie działania, aby wykorzystać nową przestrzeń. Z kolei po odłączeniu węzła, baza danych ograniczy swój rozmiar i zreplikuje dane, które były przechowywane na niedostępnych węźle. Aby poprawić bezpieczeństwo, CockroachDB umożliwia korzystanie z szeregowania transakcji, które są wykonywane przez cały klaster. Użytkownik nie musi się martwić o dane, które, nawiasem mówiąc, są przechowywane jako pojedyncza mapa składająca się z kluczy i wartości, w której zarówno klucze, jaki wartości są ciągami bajtów.

RethinkDB

W tradycyjnych bazach danych wysyła się zapytania, a baza odsyła odpowiedź. Jeśli zapytanie nie zostanie wysłane, baza sama z siebie nic nie odeśle. W większości aplikacji to wystarcza, ale są też takie, dla których nie jest to dobre rozwiązanie. RethinkDB odwraca stary model i wysyła nowe dane do klienta. Jest to świetne rozwiązanie dla niektórych nowych, interaktywnych aplikacji, które pomagają w zespołowej pracy wielu osób nad dokumentami czy prezentacjami w tym samym czasie. Zmiany wprowadzone przez jednego użytkownika są zapisywane do bazy RethinkDB, która natychmiast przesyła je do pozostałych użytkowników. Dane są przechowywane w dokumentach JSON, co jest świetnym rozwiązaniem dla aplikacji internetowych.

InfluxDB

Ta baza danych jest zoptymalizowana pod kątem przechowywania danych uporządkowanych w szeregach czasowych, według numerów, które napływają niekończącym się strumieniem. Mogą być to pliki logów ze strony internetowej lub odczyty z czujników – jedne i drugie można analizować. InfluxDB oferuje podstawowy interfejs HTTP(s) API, umożliwiający dodawanie danych. Do tworzenia zapytań służy język składniowo podobny do SQL’a, który zawiera, m.in. niektóre podstawowe operatory statystyczne, np. MEAN (średnia). Dzięki temu można zapytać o średnią wartość określonego parametru w jakiś okresie, a baza danych obliczy tę wartość i zwróci wynik użytkownikowi. To znacznie ułatwia przeprowadzanie analiz na szeregach czasowych.

Clustrix

Clustrix nie jest całkiem nowym produktem – występuje już w wersji 6.0. Jednakże jego twórcy deklarują, że wciąż są częścią rewolucji NewSQL, ponieważ ich baza danych oferuje funkcje automatycznej replikacji i możliwość pracy w klastrze z szybkością zbliżoną do rozwiązań in-memory. Osoby stojące za tym projektem dodały wiele narzędzi zarządzania, aby zapewnić, że klaster będzie mógł zarządzać sobą samodzielnie bez zbędnego angażowania administratora bazy danych. Być może wysoki numer wersji może faktycznie wskazuje na dojrzałość produktu. Użytkownik otrzymuje więc nowe technologie, a jednocześnie pewność, że przez lata testów zostały dobrze sprawdzone.

NuoDB

Jeśli ma się dane rozlokowane po całym świecie w rozproszonej sieci baz danych, NuoDB jest rozwiązaniem, które może je przechowywać, zapewniając kontrolę zbieżności i niezawodność transakcji. Sercem rozwiązania jest rozproszona pamięć podręczna, która przechwytuje zapytania i ewentualnie przesyła dane do trwałych nośników danych. Wszystkie interakcje z pamięcią podręczną mogą się odbywać z wykorzystaniem semantyki ACID.

Protokoły zatwierdzające operacje można zoptymalizować albo pod kątem szybkości działania albo niezawodności. W pakiecie użytkownik otrzymuje szeroki zestaw narzędzi zarządzania, przeznaczonych do monitorowania węzłów tworzących klaster. Wszystkie zapytania wykorzystują składnię przypominającą SQL.

VoltDB

Większość baz danych służy do przechowywania informacji. VoltDB jest zaprojektowana tak, żeby jednocześnie dane również analizować. W dodatku robi to w czasie rzeczywistym, wraz z napływającym strumieniem danych, co skraca czas potrzebny na podejmowanie decyzji. Dane są przesyłane w postaci JSON lub SQL, a następnie przechowywane i analizowane w tym samym procesie, który jest zintegrowany z Hadoopem, co upraszcza złożone obliczenia. Zapewnia również zachowanie wymogów ACID (Atomicity, Consistency, Isolation, Durability).

MemSQL

Pamięć RAM nigdy nie była tańsza i szybsza. Dlatego baza MemSQL przechowuje wszystkie dane w pamięci operacyjnej, dzięki czemu zapytania są realizowane nieprawdopodobnie szybko. Działa to jak inteligentna pamięć podręczna, ale dodatkowo dane są automatycznie replikowane w klastrze. Kiedy dane znajdą się już w pamięci RAM, można je łatwo analizować z wykorzystaniem wbudowanych narzędzi. Najnowsza wersja może pracować z danymi rozproszonymi geograficznie. Dzięki temu można tworzyć aplikacje, które, mając informacje o lokalizacji użytkownika, będą zwracały wyniki analizy zależne właśnie od tej lokalizacji.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200