Jak działa usługa Azure Cosmos DB for NoSQL

Ukończone

Teraz, gdy znamy podstawy usługi Azure Cosmos DB, zobaczmy, jakie zasoby i informacje są wymagane do rozpoczęcia pracy z kontem. Te informacje powinny pomóc w podjęciu decyzji, czy usługa Azure Cosmos DB for NoSQL działa dla zestawu danych. Ponadto powinno to pomóc w podjęciu decyzji, ile, jeśli istnieje, dodatkowa konfiguracja jest niezbędna.

Jakie są składniki usługi Azure Cosmos DB for NoSQL?

Aby rozpocząć korzystanie z usługi Azure Cosmos DB, należy najpierw utworzyć różne zasoby na platformie Azure, takie jak konta, bazy danych, kontenery i elementy.

Diagram przedstawiający sposób, w jaki konto usługi Azure Cosmos DB for NoSQL jest zasobem nadrzędnym do bazy danych, która jest samym zasobem nadrzędnym dla kontenera.

Klienci

Konta to podstawowe jednostki wysokiej dostępności i izolacji dzierżawy dla aplikacji SaaS. Na poziomie konta możesz skonfigurować region[s] dla danych w usłudze Azure Cosmos DB for NoSQL. Konta zawierają również globalnie unikatową nazwę DNS używaną dla żądań interfejsu API. Można również ustawić domyślny poziom spójności dla żądań na poziomie konta. Konta można zarządzać lub tworzyć przy użyciu witryny Azure Portal, szablonów usługi Azure Resource Manager, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.

Bazy danych

Każde konto może zawierać co najmniej jedną bazę danych. Baza danych jest jednostką logiczną zarządzania kontenerami w usłudze Azure Cosmos DB for NoSQL.

Kontenery

Kontenery są podstawową jednostką skalowalności w usłudze Azure Cosmos DB for NoSQL. W usłudze Azure Cosmos DB aprowizujesz przepływność na poziomie kontenera. Opcjonalnie można również skonfigurować zasady indeksowania lub domyślną wartość czasu wygaśnięcia na poziomie kontenera. Usługa Azure Cosmos DB for NoSQL automatycznie i w sposób przezroczysty partycjonuje dane w kontenerze.

Elementy

Interfejs API NoSQL dla usługi Azure Cosmos DB przechowuje poszczególne dokumenty w formacie JSON jako elementy w kontenerze. Usługa Azure Cosmos DB for NoSQL natywnie obsługuje pliki JSON i może zapewnić szybką i przewidywalną wydajność, ponieważ operacje zapisu w dokumentach JSON są niepodzielne.

Diagram przedstawiający różne elementy przechowywane w kontenerze.

Partycjonowanie i klucze partycji

Każdy kontener Usługi Azure Cosmos DB for NoSQL jest wymagany do określenia ścieżki klucza partycji używanej do dystrybucji danych na potrzeby skalowania w poziomie. W tle usługa Azure Cosmos DB for NoSQL używa tej ścieżki do logicznego partycjonowania danych przy użyciu wartości klucza partycji. Rozważmy na przykład następujący dokument JSON:

{
  "id": "35b5bf7d-5f0e-4209-b7cb-8c5c70c3bb59",
  "deviceDisplayName": "shared-printer",
  "acquiredYear": 2019,
  "department": {
    "name": "information-technology",
    "metadata": {
      "location": "floor-5-unit-27"
    }
  },
  "queuedDocuments": [
    {
      "sender": "user-293749329",
      "sentTime": "2019-07-26T05:12:37",
      "pages": 5,
      "spoolRef": "3f4b759c-3230-4269-a88e-de7620ad91c0"
    },
    {
      "device": {
        "type": "mobile"
      },
      "sentTime": "2019-11-12T13:08:42",
      "spoolRefs": [
        "6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
        "79e78fe2-93aa-4688-89db-a7278b034aa6"
      ]
    }
  ]
}

Jeśli kontener określa ścieżkę klucza partycji , wartość klucza partycji tego dokumentu to information-technology. /department/name W tle usługa Azure Cosmos DB for NoSQL automatycznie zarządza zasobami fizycznymi niezbędnymi do obsługi obciążenia danych.

Wybranie ścieżki klucza partycji dla kontenera ma kluczowe znaczenie dla umożliwienia skalowania aplikacji i jest jednym z najważniejszych decyzji projektowych dotyczących nowego obciążenia. Zapoznaj się z dokumentacją dotyczącą wybierania klucza partycji, aby uzyskać dokładniejsze wyjaśnienie techniczne i najlepsze rozwiązania.