Azure Cosmos DB

Eintrag zuletzt aktualisiert am: 25.05.2021

Azure Cosmos DB ist eine global verteilte, hochverfügbare NoSQL-Datenbank mit multiplen Datenzugriffsmodellen in Microsofts Cloud-Dienst Azure. Microsoft hat Cosmos DB im Mai 2017 gestartet.

Cosmos DB ist ein Multi-Modell-Datenbankdienst, der die Programmierschnittstellen von MongoDB, Gremlin und Cassandra sowie das API von Azure Table Storage und eine limitierte Form von SQL (z.B. ohne Joins, ohne Aggregatfunktionen, Beschränkung auf JSON-Datentypen) anbietet.

Auch BLOBs können gespeichert werden, dabei wird im Hintergrund der Azure BLOB Storage verwendet. Innerhalb von Cosmos DB kann mit JavaScript programmiert werden (für Stored Procedures, Trigger und User-Defined functions (UDF)).

https://azure.microsoft.com/de-de/services/cosmos-db

Eigenschaften

  • Multi-Modell
  • Global verteilt
  • Hochverfügbar
  • Automatisches oder manuelles Failover
  • Multi-Master
  • Fünf Konsistenzlevel: trong, bounded staleness, session, consistent prefix, eventual
  • Reservierbare Kapazitäten

Aussage Microsoft zu den Einsatzgebieten

"Any web, mobile, gaming, and IoT application that needs to handle massive amounts of data, reads, and writes at a global scale with near-real response times for a variety of data will benefit from Cosmos DB's guaranteed high availability, high throughput, low latency, and tunable consistency." [https://docs.microsoft.com/en-us/azure/cosmos-db/introduction]

Verfügbare APIs

Azure Cosmos DB Core (SQL) API
Cosmos DB Provider für Entity Framework Core
Azure Cosmos DB API for MongoDB
Azure Cosmos DB Cassandra API
Azure Cosmos DB Gremlin API
Azure Cosmos DB Table API (gleiches API wie bei Azure Table Storage)

In einer Preview-Version wurde 2019 bis 2020 auch ein etcd-API [https://azure.microsoft.com/de-de/updates/azure-cosmos-db-api-for-etcd-in-preview/] angeboten, das Microsoft aber zurückgezogen hat [https://docs.microsoft.com/en-us/answers/questions/154061/about-etcd-support-in-azure-cosmos-db.html].