Como o Azure Cosmos DB for NoSQL funciona

Concluído

Agora que conhecemos os fundamentos 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 ajudar você a decidir se o Azure Cosmos DB for NoSQL funciona para seu conjunto de dados. Além disso, ele deve ajudar você a decidir quanta, configuração extra, se houver, é necessária.

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

Para começar a usar o Azure Cosmos DB, primeiro você precisará criar 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 de um banco de dados, que é um recurso pai de um contêiner.

Contas

As contas são as unidades fundamentais de alta disponibilidade e de isolamento do locatário para aplicativos de SaaS. No nível da conta, você pode configurar as regiões dos dados no Azure Cosmos DB for NoSQL. As contas também contêm o nome DNS globalmente exclusivo usado para solicitações da 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, modelos do Azure Resource Manager, a CLI do Azure ou o Azure PowerShell.

Bancos 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 for NoSQL.

Contêineres

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

Itens

A API de NoSQL para o Azure Cosmos DB armazena documentos individuais no formato JSON como itens dentro do contêiner. O Azure Cosmos DB for NoSQL tem suporte nativo para arquivos JSON e pode fornecer desempenho rápido e previsível porque as operações de gravação em documentos JSON são atômicas.

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

Particionamento e chaves de partição

Cada contêiner do Azure Cosmos DB for NoSQL é necessário para especificar um caminho de chave de partição usado para distribuir dados para expansão. Nos bastidores, o Azure Cosmos DB for NoSQL usa esse caminho para particionar os dados logicamente 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 igual a /department/name, o valor da chave de partição desse documento será information-technology. Nos bastidores, o Azure Cosmos DB for NoSQL gerencia automaticamente os recursos físicos necessários para dar suporte à sua carga de trabalho de dados.

Selecionar um caminho de chave de partição para um contêiner é essencial para permitir que os aplicativos sejam dimensionados e é uma das decisões de design mais importantes para uma nova carga de trabalho. Examine a documentação sobre como escolher uma chave de partição para ver uma explicação técnica mais profunda e as melhores práticas.