Como funciona o Azure Cosmos DB para NoSQL

Concluído

Agora que sabemos as noções básicas do Azure Cosmos DB, vamos ver quais recursos e informações são necessários para começar a trabalhar com uma conta. Essas informações devem ajudá-lo a decidir se o Azure Cosmos DB para NoSQL funciona para seu conjunto de dados. Além disso, deve ajudá-lo a decidir quanto, se houver, configuração extra é necessária.

Quais são os componentes do Azure Cosmos DB para NoSQL?

Para começar a usar o Azure Cosmos DB, primeiro crie vários recursos no Azure, como contas, bancos de dados, contêineres e itens.

Diagrama mostrando como uma conta do Azure Cosmos DB para NoSQL é o recurso pai para um banco de dados, que é um recurso pai para um contêiner.

Contas

As contas são as unidades fundamentais de alta disponibilidade e isolamento de locatário para aplicativos SaaS. No nível da conta, você pode configurar a(s) região(ões) para seus dados no Azure Cosmos DB para NoSQL. As contas também contêm o nome DNS globalmente exclusivo usado para solicitações de API. Você também pode definir o nível de consistência padrão para solicitações no nível da conta. Você pode gerenciar ou criar contas usando o portal do Azure, os modelos do Azure Resource Manager, a CLI do Azure ou o Azure PowerShell.

Bases de Dados

Cada conta pode conter um ou mais bancos de dados. Um banco de dados é uma unidade lógica de gerenciamento para contêineres no Azure Cosmos DB para NoSQL.

Contentores

Os contêineres são a unidade fundamental de escalabilidade no Azure Cosmos DB para NoSQL. Com o Azure Cosmos DB, você provisiona a taxa de transferência no nível do contêiner. Opcionalmente, você também pode configurar uma política de indexação ou um valor padrão de tempo de vida útil no nível do contêiner. O Azure Cosmos DB para NoSQL particionará os dados em um contêiner de forma automática e transparente.

Items

A API NoSQL para Azure Cosmos DB armazena documentos individuais no formato JSON como itens dentro do contêiner. O Azure Cosmos DB para NoSQL suporta nativamente ficheiros JSON e pode fornecer um desempenho rápido e previsível porque as operações de escrita em documentos JSON são atómicas.

Diagrama mostrando vários itens armazenados em um contêiner.

Particionamento & Chaves de partição

Cada contêiner do Azure Cosmos DB para NoSQL é necessário para especificar um caminho de chave de partição que é usado para distribuir dados para expansão. Nos bastidores, o Azure Cosmos DB para NoSQL usa esse caminho para particionar logicamente dados usando valores de chave de partição. Por exemplo, considere o seguinte documento 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"
      ]
    }
  ]
}

Se o contêiner especificar um caminho de chave de partição de /department/name, o valor da chave de partição deste documento será information-technology. Nos bastidores, o Azure Cosmos DB para NoSQL gerencia automaticamente os recursos físicos necessários para dar suporte à sua carga de trabalho de dados.

A seleção de um caminho de chave de partição para um contêiner é fundamental para permitir que os aplicativos sejam dimensionados e é uma das decisões de design mais importantes para uma nova carga de trabalho. Analise a documentação de escolha de uma chave de partição para obter uma explicação técnica mais profunda e as práticas recomendadas.