Cosmos DB

Origem: Wikipédia, a enciclopédia livre.
Azure Cosmos DB
Logótipo
Cosmos DB
Desenvolvedor Microsoft
Lançamento 2017; há 7 anos
Idioma(s) inglês
Gênero(s) Banco de dados multimodelo
Página oficial azure.microsoft.com/en-us/services/cosmos-db/

O Azure Cosmos DB é um serviço de base de dados multimodelo globalmente distribuído oferecido pela Microsoft. Ele foi projetado para fornecer alta disponibilidade, escalabilidade e acesso de baixa latência aos dados para aplicativos modernos. Ao contrário dos bancos de dados relacionais tradicionais, o Cosmos DB é um banco de dados NoSQL, o que significa que pode lidar com tipos de dados não estruturados e semiestruturados.[1]


Modelos de dados[editar | editar código-fonte]

Internamente, o Cosmos DB armazena “itens” em “contêineres”, com esses dois conceitos sendo apresentados de forma diferente dependendo da API usada (esses seriam “documentos” em “coleções” ao usar a API compatível com MongoDB, por exemplo). Os contêineres são agrupados em “bancos de dados”, que são análogos a namespaces acima dos contêineres. Os contêineres são independentes de esquema, o que significa que nenhum esquema é imposto ao adicionar itens.

Por padrão, cada campo em cada item é automaticamente indexado, geralmente fornecendo bom desempenho sem ajustar os padrões de consulta específicos. Esses padrões podem ser modificados definindo uma política de indexação que pode especificar, para cada campo, o tipo e a precisão do índice desejados. O Cosmos DB oferece dois tipos de índices:

intervalo, suportando consultas de intervalo e ORDER BY, espacial, suportando consultas espaciais a partir de pontos, polígonos e linhas codificadas em fragmentos GeoJSON padrão.

Os contêineres também podem impor restrições de chave exclusiva para garantir a integridade dos dados.

Cada contêiner do Cosmos DB expõe uma lista de alterações, ao qual os clientes podem se inscrever para serem notificados sobre novos itens sendo adicionados ou atualizados no contêiner. A partir de 7 de junho de 2021, as exclusões de itens não são atualmente expostas pela lista de alterações. As alterações são persistidas pelo Cosmos DB, o que torna possível solicitar alterações a partir de qualquer ponto no tempo desde a criação do contêiner.

Um “Tempo de Vida” (ou TTL) pode ser especificado no nível do contêiner para permitir que o Cosmos DB exclua automaticamente os itens após uma certa quantidade de tempo expressa em segundos. Essa contagem regressiva começa após a última atualização do item. Se necessário, o TTL também pode ser sobrecarregado no nível do item.

APIs multimodelos Modelos de dados[editar | editar código-fonte]

  • uma API SQL proprietária
  • Cinco APIs de compatibilidade diferentes, expondo terminais que são parcialmente compatíveis com os protocolos wire de MongoDB, Gremlin, Cassandra, Armazenamento de tabelas do Azure e etcd.
  • Essas APIs de compatibilidade possibilitam que qualquer aplicativo compatível se conecte e use o Cosmos DB por meio de drivers ou SDKs padrão, além de se beneficiar dos principais recursos do Cosmos DB, como particionamento e distribuição global.
API Mapeamento interno Estado da compatibilidade e observações
Contentores Artigos
MongoDB Coleções Documentos Compatível com wire protocol versão 6 e server Versão 3.6 do MongoDB.[2]
Gremlin Gráficos Nós e arestas Compatível com a versão 3.2 da especificação Gremlin.
Cassandra Quadro Linha Compatível com a versão 4 do Protocolo de ligação Cassandra Query Language (CQL).
Armazenamento De Tabelas Do Azure Quadro Artigo
etcd Chave Valor Compatível com a versão 3 do etcd.[3]

Distribuição Global[editar | editar código-fonte]

Os bancos de dados Cosmos DB podem ser configurados para estarem disponíveis em qualquer uma das regiões do Microsoft Azure (54 regiões em dezembro de 2018), permitindo que os desenvolvedores de aplicativos coloquem seus dados mais perto de onde seus usuários estão.[4] Os dados de cada contêiner são replicados de forma transparente em todas as regiões configuradas. A adição ou remoção de regiões é realizada sem qualquer tempo de inatividade ou impacto no desempenho. Ao aproveitar a API multi-homing do Cosmos DB, os aplicativos não precisam ser atualizados ou reimplantados quando as regiões são adicionadas ou removidas, pois o Cosmos DB encaminhará automaticamente suas solicitações para as regiões disponíveis e mais próximas de sua localização, diminuindo assim o nível de latência.


Recepção[editar | editar código-fonte]

A Gartner Research posiciona a Microsoft como líder nos Sistemas de Gerenciamento de Banco de Dados Operacionais do Quadrante Mágico em 2016 e destaca os recursos exclusivos do Cosmos DB em sua redação.[5]

Casos de Utilização reais[editar | editar código-fonte]

A Microsoft utiliza o Cosmos DB em muitas das suas próprias aplicações, que se estendem, mas não se limitam ao Microsoft Office, Skype, Active Directory, Xbox, e MSN.

Ao criar uma aplicação / sistema mais resiliente a nível global, o Cosmos DB combina-se com outros serviços do Azure, como o Azure App Services e o Azure Traffic Manager.[6]

Referências

  1. Kumar, Chandan (7 de março de 2023). «Azure Cosmos DB and NoSQL databases». skillzcafe. Consultado em 11 de abril de 2023 
  2. «Azure Cosmos DB API now supports MongoDB version 3.6». azure.microsoft.com (em inglês). Consultado em 11 de fevereiro de 2020 
  3. «Introduction to the Azure Cosmos DB etcd API». docs.microsoft.com (em inglês). Consultado em 10 de junho de 2020 
  4. «How to distribute data globally with Azure Cosmos DB». docs.microsoft.com. Consultado em 22 de agosto de 2017 
  5. «Magic Quadrant for Operational Database Management Systems». www.gartner.com. Consultado em 11 de dezembro de 2016 
  6. Pietschmann, Chris. «Building Globally Resilient Apps with Azure App Service and Cosmos DB». Build5Nines.com. Opsgility. Consultado em 30 de janeiro de 2018