encyklopedia.space

Azure Cosmos DB

Azure Cosmos DB (dawniej DocumentDB) to globalnie rozproszona, wielomodelowa usługa bazy danych w chmurze oferowana przez firmę Microsoft w ramach platformy Azure. System został zaprojektowany jako w pełni zarządzana baza danych NoSQL, ale obsługuje także interfejsy zgodne z SQL, MongoDB, Cassandra, Gremlin oraz Table API. Dzięki temu deweloperzy mogą wybierać model danych najbardziej odpowiadający ich aplikacjom, nie rezygnując przy tym z jednego, scalonego środowiska.

Historia

Usługa została uruchomiona w listopadzie 2017 roku pod nazwą DocumentDB. W 2018 roku, w ramach strategicznej rozbudowy oferty chmurowej, Microsoft wprowadził nową nazwę – Azure Cosmos DB – podkreślając jej zdolności do globalnej replikacji i obsługę wielu modeli danych.

Kluczowe cechy

  • Globalna dystrybucja – dane mogą być replikowane do dowolnej liczby regionów Azure, co zapewnia niskie opóźnienia i wysoką dostępność.
  • Poziomy spójności – pięć wbudowanych poziomów spójności (Strong, Bounded Staleness, Session, Consistent Prefix, Eventual), które można dostosować do wymagań aplikacji.
  • Wielomodelowość – obsługa modeli dokumentowych, klucz-wartość, grafowego i kolumnowego.
  • Automatyczne partycjonowanie – baza automatycznie dzieli dane na partycje (ang. partitions) w oparciu o klucz partycjonowania, zapewniając skalowalność przy rosnącym obciążeniu.
  • SLAs – gwarancje 99,999% dostępności, 99 % opóźnień w latency oraz 99,999% spójności wybranej konfiguracji.
  • Strategie cenowe – model płatności za zużycie (RU/s – Request Units per second) oraz opcja provisioned throughput i serverless.

Model danych i interfejsy API

Azure Cosmos DB umożliwia pracę z różnymi modelami danych przy użyciu dedykowanych interfejsów API:

API Model danych Typowe zastosowanie
SQL API Dokumenty JSON Aplikacje webowe, analizy danych
MongoDB API Dokumenty BSON/JSON Migracje z istniejących klastrów MongoDB
Cassandra API Model kolumnowy Systemy czasu rzeczywistego, telemetryka
Gremlin API Grafy Rekomendacje, analizy sieci społeczne
Table API Klucz‑wartość Proste przechowywanie metadanych, cache

Poziomy spójności

Jednym z wyróżniających elementów Azure Cosmos DB jest możliwość wyboru spośród pięciu poziomów spójności, co pozwala zbalansować pomiędzy latency a gwarancją najnowszych danych:

  1. Strong – pełna spójność, wszystkie odczyty zwracają najnowsze zapisane dane.
  2. Bounded Staleness – odczyty mogą być opóźnione o określoną liczbę operacji lub czasu.
  3. Session – spójność w ramach sesji użytkownika (domyślny poziom).
  4. Consistent Prefix – odczyty zwracają dane w kolejności zapisu, bez przerw.
  5. Eventual – najniższe opóźnienia, brak gwarancji co do najnowszych danych.

Architektura i skalowalność

System działa w modelu multi‑master, co oznacza, że każdy region może pełnić rolę jednocześnie zarówno odczytu, jak i zapisu. Dane są replikowane przy użyciu globalnej replikacji, a podział na partycje odbywa się automatycznie w oparciu o klucz partycjonowania zdefiniowany przez programistę.

Zastosowania

Azure Cosmos DB znajduje zastosowanie w różnych scenariuszach:

  • Systemy IoT i telemetryczne – konieczność przyjmowania dużej liczby zdarzeń w czasie rzeczywistym.
  • Aplikacje mobilne i webowe – wymóg niskich opóźnień i globalnej dostępności.
  • Analizy grafowe – modele danych oparte na relacjach (np. rekomendacje).
  • Platformy e‑commerce – dynamiczne skalowanie przy szczytowych obciążeniach.

Bezpieczeństwo i zgodność

Usługa spełnia wymagania wielu standardów branżowych, w tym ISO/IEC 27001, HIPAA, RODO i SOC‑2. Zapewnione są mechanizmy szyfrowania danych w spoczynku oraz w tranzycie, a także integracja z Azure Active Directory w celu kontroli dostępu.

Krytyka i ograniczenia

Mimo licznych zalet, usługa ma także pewne wady:

  • Model cenowy oparty na Request Units może być trudny do przewidzenia przy zmiennym obciążeniu.
  • Wymaga starannego doboru klucza partycjonowania – niewłaściwy wybór może prowadzić do tzw. hot partitions.
  • Nie wszystkie funkcje dostępne w natywnych bazach NoSQL (np. pełne wsparcie transakcji wielodokumentowych) są w pełni obsługiwane.

Powiązane pojęcia

Więcej informacji można znaleźć w następujących artykułach:

Źródła

Informacje przedstawione w artykule pochodzą z oficjalnej dokumentacji Microsoft oraz publikacji branżowych dostępnych w języku polskim i angielskim.