Criar uma instância do Cosmos DB

O Cosmos DB é um serviço de banco de dados multimodelo, distribuído globalmente baseado em NoSQL. Ele armazena dados como contêineres de documentos sem esquema. O Cosmos DB permite que você distribua dados globalmente, dimensione o desempenho horizontalmente e aplique níveis variados de consistência de acordo com os requisitos da sua organização.

Crie e gerencie bancos de dados do Cosmos DB usando o portal do Azure em um navegador da Web escrevendo seus aplicativos e em ferramentas como o Visual Studio Code.

Nesta unidade, você aprenderá mais sobre como o Cosmos DB organiza os dados. Você verá como usar o Visual Studio Code para criar e manter bancos de dados e contêineres do Cosmos DB.

O que é o Cosmos DB?

O Cosmos DB é um serviço que implementa bancos de dados de documentos. Os dados de um documento precisam estar em conformidade com a sintaxe JSON. Um documento JSON pode conter propriedades, subdocumentos e matrizes de documentos. O exemplo a seguir mostra um documento JSON que armazena as informações do cliente, como parte de um aplicativo de varejo. A propriedade registeredAddress é um exemplo de subdocumento:

{
    customer: 103248,
    ccNumber: "**** **** **** 1234",
    registeredAddress: {
        number: 4444,
        street: "Some Street",
        city: "Some City",
        state: "Some state"
    },
    expiryDate: "03/31/2020"
}

Ao contrário de uma tabela em um banco de dados relacional, os documentos em um Cosmos DB não seguem nenhum esquema definido. Portanto, o mesmo banco de dados pode conter uma variedade de documentos com diferentes formas e tamanhos. Por exemplo, você pode armazenar informações variadas sobre diferentes clientes no mesmo banco de dados. Talvez você possa registrar um histórico de endereços completo como uma matriz para um cliente. Você pode registrar informações adicionais, como a credibilidade dele.

Observação

O Cosmos DB adiciona alguns campos próprios aos seus documentos. Muitos desses campos são usados para fins internos e, na maioria dos casos, você não deve modificá-los diretamente. A exceção é um campo chamado id. O Cosmos DB usa esse campo para identificar o documento no banco de dados e cada documento precisa ter uma ID exclusiva. O Cosmos DB gerará um valor para o campo id automaticamente, mas você poderá especificar seu próprio valor para cada documento se preferir. A especificação de seus próprios valores será útil se você precisar usar seu próprio esquema para acompanhar documentos.

O Cosmos DB fornece APIs que permitem criar, atualizar, excluir e consultar documentos.

O serviço Cosmos DB é organizado como uma hierarquia. Na parte superior, há uma conta do Cosmos DB. A conta do Cosmos DB é a unidade de segurança para um conjunto de bancos de dados. A conta do Cosmos DB especifica a localização dos bancos de dados, junto com as informações de segurança necessárias para acessar esses bancos de dados.

Dentro de uma conta, você cria um ou mais bancos de dados. Você cria um ou mais contêineres dentro de cada banco de dados. Você armazena documentos em contêineres.

Cada contêiner é organizado como uma série de partições. As partições correspondem aproximadamente aos arquivos físicos em disco. Uma partição grande pode ter seu próprio arquivo, mas várias partições pequenas podem ser combinadas em um único arquivo. Cada documento tem uma chave de partição que define a partição à qual ele pertence. Use o particionamento para armazenar documentos relacionados e para ajudar a otimizar a maneira como você acessa os dados.

Por exemplo, em um banco de dados de varejo, se você armazenar documentos do cliente e os documentos que descrevem os pedidos deles em um contêiner, considere a possibilidade de particionar os documentos pela ID do cliente. Caso precise efetuar fetch das informações do cliente e do pedido juntas para um cliente específico, efetue fetch dos dados na mesma partição.

Taxa de transferência do Cosmos DB

O Cosmos DB usa o conceito de RU/s (Unidades de Solicitação por segundo) para gerenciar o desempenho e o custo de bancos de dados. Essa medida abstrai os recursos físicos subjacentes que precisam ser provisionados para dar suporte ao desempenho necessário. Ao criar um banco de dados ou um contêiner, especifique a quantidade de RU/s a ser alocada. Você gerará encargos de acordo.

APIs do Cosmos DB

O Cosmos DB dá suporte a várias APIs programáticas. Essas APIs estão o máximo possível em conformidade com as APIs usadas por outros bancos de dados NoSQL comuns. A intenção é fornecer um caminho de migração fácil para o Cosmos DB desses bancos de dados, sem que os desenvolvedores precisem aprender um paradigma totalmente novo nem fazer alterações significativas nos aplicativos. As APIs compatíveis no momento são:

  • MongoDB
  • Cassandra
  • Gremlin (uma API comum de BD de grafo)
  • Armazenamento de Tabelas do Azure
  • SQL

A API do SQL é uma variante da linguagem SQL usada pela maioria dos RDBMSs. Há restrições e adaptações para lidar com os conjuntos de documentos sem esquema em vez de tabelas.

Usar o Visual Studio Code para gerenciar o Cosmos DB

Caso você esteja usando o Visual Studio Code como o ambiente de desenvolvimento para criar bancos de dados e aplicativos do Cosmos DB, instale a extensão do Azure Cosmos DB.

Instale a extensão do Marketplace de Extensões para Visual Studio Code.

A extensão do Cosmos DB fornece uma interface do usuário gráfica que é integrada ao Visual Studio Code. Ao usar a extensão é possível criar, excluir e gerenciar contas, bancos de dados, contêineres e documentos do Cosmos DB.

Captura de tela da extensão do Cosmos DB no Visual Studio Code conforme o usuário clica com o botão direito do mouse no nó Documentos para obter um menu contextual para criar um documento.