Cosmos-DB-Architektur

Für Azure Storage entwickeln

Shahzad Mian

Content developer, DataCamp

Azure Cosmos DB

Azure_Cosmos_DB.svg.png

Für Azure Storage entwickeln

Das Problem

Cosmos-DB-Problem

Für Azure Storage entwickeln

Was ist Cosmos DB?

 

CosmosDB

  • Multi-Model, global verteilte NoSQL-Datenbank.
  • NoSQL – flexible, ordnerähnliche Speicherung.
  • Unterstützt mehrere APIs und Datentypen.
  • Wie eine flexible Speisekarte – wähle dein API-Geschmack:
    • SQL (Core) für JSON-Dokumente.
    • MongoDB für Mongo-Entwickler:innen.
    • Cassandra für Wide-Column-Daten.
    • Gremlin für Graphbeziehungen.
    • Table API für Key-Value-Speicher.
Für Azure Storage entwickeln

Cosmos DB für Entwickler:innen

  • Für Entwickler:innen gemacht.
  • Automatisches Indexing – kein Schema-Management.
  • Schnelle Abfragen.
  • Fünf Konsistenzlevel: von Strong bis Eventual.
  • Trade-off zwischen Performance und Konsistenz.
    • Strong – alle sehen die Änderung sofort.
    • Eventual – alle ziehen später nach.

 

Starke und eventual Konsistenz

Für Azure Storage entwickeln

Skalierung und Durchsatz (RU/s)

Bereitgestellter Modus

  • Request Units pro Sekunde (RU/s) = Performance-Währung von Cosmos DB.
  • Jeder Lese-, Schreib- oder Query-Aufruf verbraucht RU/s.
  • Wähle feste Bereitstellung oder Autoscale.
Für Azure Storage entwickeln

Skalierung und Durchsatz (RU/s)

Skalierung

  • Request Units pro Sekunde (RU/s) = Performance-Währung von Cosmos DB.
  • Jeder Lese-, Schreib- oder Query-Aufruf verbraucht RU/s.
  • Wähle feste Bereitstellung oder Autoscale.
  • Autoscale passt sich der Nachfrage automatisch an.
Für Azure Storage entwickeln

Elastische Skalierung und Partitionierung

  • Cosmos DB skaliert per Partitionierung.
  • Jeder Container hat einen Partitionsschlüssel.
  • Der Schlüssel gruppiert zusammengehörige Daten.
  • Beispiel: Cipher Coffee nutzt /customerId für Bestellungen.
  • Mit /customerId liegen alle Bestellungen eines Kunden in derselben Partition.
  • Abfragen bleiben schnell, auch wenn Daten wachsen.
  • Hot Partition: Ungleich verteilte Last bremst die Performance.

Elastische Skalierung und Partitionierung

Für Azure Storage entwickeln

Globale Verteilung

  • Repliziere Daten einfach in jede Azure-Region.
  • Nur Checkboxen setzen, kein Setup-Aufwand.
  • Fällt eine Region aus, wird Traffic automatisch umgeleitet.
  • Keine Downtime, kein Datenverlust.
  • Wie ein Ersatzcafé, das sofort öffnet.

Globale Verteilung

Für Azure Storage entwickeln

Monitoring und Kostenoptimierung

  • Performance im Azure-Portal verfolgen.
  • Metriken wie RU/s, Latenz und Request Charge ansehen.
  • Wie ein Auto-Cockpit: Geschwindigkeit und Verbrauch.
  • Cipher-Coffee-Ingenieur:innen analysierten diese Metriken.
  • Kosten sanken durch dynamische Durchsatz-Anpassung.

Monitoring

Für Azure Storage entwickeln

Lass uns üben!

Für Azure Storage entwickeln

Preparing Video For Download...