Microsoft AZ-204: Azure Cosmos DB — Przewodnik do nauki

Część Microsoft Azure Developer Associate AZ-204 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Microsoft, albo rozwiąż testy na czas na ExamRoll.io.

Przegląd

Azure Cosmos DB to w pełni zarządzana, globalnie dystrybuowana, wielomodelowa baza danych zaprojektowana dla aplikacji wymagających niskich opóźnień i elastycznej skalowalności. Udostępnia wiele interfejsów API na wspólnym, partycjonowanym silniku przechowywania i replikacji, zapewnia pięć konfigurowalnych poziomów spójności oraz oferuje kompleksowe umowy SLA dotyczące dostępności, opóźnień, przepustowości i spójności. Dane są zorganizowane w konta, bazy danych i kontenery (lub kolekcje/tabele/grafy w zależności od API). Kontenery są partycjonowane horyzontalnie i skalowane za pomocą klucza partycji, a wszystkie operacje są mierzone w jednostkach żądań (Request Units, RU) – znormalizowanej walucie, która abstrahuje użycie procesora, IOPS i pamięci.

API i programowalność

Cosmos DB obsługuje kilka interfejsów API zgodnych na poziomie protokołu, dzięki czemu można używać natywnych zestawów SDK i sterowników bez przepisywania modelu danych:

Wspólne operacje SDK dla różnych API obejmują CRUD, współbieżność optymistyczną z ETagami, operacje upsert, skrypty po stronie serwera (procedury składowane, wyzwalacze) oraz UDF (dla SQL API). Zapytania są parametryzowane w celu zmniejszenia zużycia RU i poprawy bezpieczeństwa. Operacje zbiorcze i strumieniowe API minimalizują narzut po stronie klienta i koszty RU przy pozyskiwaniu danych o wysokiej przepustowości.

Spójność, indeksowanie i semantyka zapytań

Cosmos DB oferuje pięć dobrze zdefiniowanych poziomów spójności na poziomie konta (możliwych do nadpisania dla pojedynczego żądania w wielu zestawach SDK):

Dla SQL API indeksowanie jest domyślnie automatyczne i spójne. Każdy element i właściwość są indeksowane bez zarządzania schematem, więc zapisy natychmiast aktualizują indeks (tryb indeksowania: Consistent). Można doprecyzować politykę indeksowania, aby:

Należy zwracać uwagę na rozmiar elementu i kształt zapytania. SQL API narzuca limit rozmiaru elementu (na przykład 2 MB), a zapytania międzypartycyjne, duże projekcje i złożone predykaty zwiększają zużycie RU. Używaj selektywnych projekcji, odpowiednich filtrów i zapytań świadomych partycjonowania, aby zminimalizować koszt RU.

Partycjonowanie i przepustowość (RU)

Cosmos DB rozdziela partycje logiczne i fizyczne:

Wybierz efektywny klucz partycji o wysokiej kardynalności i równomiernym rozkładzie dostępu w czasie. Dobre klucze są skorelowane z główną ścieżką dostępu (na przykład userId, deviceId, tenantId lub orderId). Unikaj kluczy o niskiej kardynalności lub pogrupowanych czasowo, które powodują nierównomierny rozkład (ang. skew) (na przykład country, status lub day). Gdy żadna pojedyncza właściwość nie jest odpowiednia:

Modele przepustowości:

Techniki optymalizacji RU obejmują odczyty punktowe (point reads) po id+klucz partycji, zapytania sparametryzowane, selektywne projekcje, denormalizację w celu redukcji wzorców przypominających JOIN oraz użycie change feed do tworzenia widoków pochodnych zamiast złożonych zapytań obejmujących wiele kontenerów. Używaj ETags z If-Match do kontroli współbieżności, aby unikać kosztownych pod względem RU ponownych prób. Monitoruj metryki RU i ograniczanie przepustowości (throttling, HTTP 429) oraz implementuj w SDK polityki ponawiania prób z losowym opóźnieniem (jitter).

Globalna dystrybucja i zestawienie zmian (Change Feed)

Gotowa do użycia, wieloregionowa dystrybucja Cosmos DB pozwala na dodawanie i usuwanie regionów w dowolnym momencie. Wszystkie regiony są dostępne do odczytu; włączenie zapisów wieloregionowych (multi-region writes) umożliwia jednoczesne zapisy we wszystkich lokalizacjach z opóźnieniem odczytu poniżej 10 ms dla 99. percentyla w pobliskich regionach. Zestawy SDK klienta powinny być skonfigurowane z preferowanymi regionami, aby kierować ruch lokalnie i zapewniać płynne przełączanie awaryjne (failover). W .NET preferowane regiony podaje się za pomocą właściwości ApplicationPreferredRegions w CosmosClientOptions (lub jej odpowiednika w innych SDK). Zapisy wieloregionowe wymagają zdefiniowania polityki rozwiązywania konfliktów:

Zestawienie zmian (change feed) dostarcza uporządkowany, dostępny tylko do dopisywania (append-only) dziennik zmian dla każdego klucza partycji logicznej. Jest idealne do:

Praktyczny scenariusz problemowy

Spotify musi dostarczyć globalnie dostępną usługę personalizacji, która w czasie rzeczywistym przyjmuje interakcje użytkowników, aktualizuje rekomendacje dla poszczególnych użytkowników i obsługuje odczyty o niskim opóźnieniu z najbliższego regionu. Zapisy mogą pochodzić od klientów mobilnych na całym świecie, a aktualizacje rekomendacji muszą być rozsyłane (fan-out) do systemów podrzędnych.

  1. Wybór Cosmos DB SQL (Core) API z zapisami wieloregionowymi
  1. Zdefiniowanie klucza partycji o wysokiej kardynalności i kluczy hierarchicznych
  1. Konfiguracja automatycznego skalowania przepustowości (autoscale throughput) na głównych kontenerach
  1. Ustawienie spójności na poziomie Session na poziomie konta
  1. Implementacja przetwarzania zestawienia zmian (change feed) za pomocą Azure Functions i Change Feed Processor
  1. Utworzenie pochodnego kontenera rekomendacji z dostosowaną polityką indeksowania
  1. Włączenie globalnej dystrybucji z preferowanymi regionami w SDK
  1. Konfiguracja rozwiązywania konfliktów i obserwowalności (observability)

Taka architektura zapewnia globalnie niskie opóźnienia odczytu i zapisu, odporne przetwarzanie zdarzeń za pośrednictwem zestawienia zmian (change feed), efektywne kosztowo automatyczne skalowanie oraz solidną semantykę spójności odpowiednią dla obciążeń personalizacyjnych.


Azure Storage i Blob Storage · Wszystkie domeny · Rozwiązania kontenerowe Azure

Przećwicz te pytania → · Testy na czas na ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Zdaj egzamin →

Przeglądaj Microsoft →

Related guides

Dostęp all-in-one

Jedna subskrypcja. Każdy egzamin.

Każdy plan odblokowuje nieograniczone wyszukiwanie odpowiedzi, testy praktyczne, wyjaśnienia AI i pełną bibliotekę zasobów — w ponad 20 językach.

Miesięczny
24.87
Just €0.83/day
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

Najlepsza wartość
12 miesięcy
179.87
Just €0.49/daySave 40%
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

✓ Plan darmowy w zestawie · ✓ Anuluj w dowolnym momencie · ✓ Wszystkie plany odblokowują pełny produkt