Arquitetura básica do Azure Cosmos DB

15/01/2025

O diagrama ilustra a arquitetura básica do Azure Cosmos DB, detalhando a relação entre conta, banco de dados, container e os diferentes tipos de estruturas e funcionalidades que podem ser gerenciadas dentro do serviço.


Elementos do Diagrama e Suas Funções:

  1. Conta:

    • Representa a entidade principal no Azure Cosmos DB.
    • É a camada superior na hierarquia do serviço.
    • Responsável por gerenciar a replicação global e as configurações gerais, como regiões e consistência.
  2. Banco de Dados (DB):

    • Um banco de dados é criado dentro de uma conta.
    • Ele organiza e contém um ou mais containers.
  3. Container:

    • É a unidade principal de armazenamento no Azure Cosmos DB.
    • Contém itens, procedimentos armazenados, funções e conflitos.
    • O container pode ser configurado para:
      • Collections (coleções para modelos de documento, como JSON).
      • Tables (para modelo chave-valor).
      • Graphs (para modelo de grafos, como Gremlin).
  4. Itens:

    • São os objetos individuais armazenados no container.
    • Por exemplo, um documento JSON em uma coleção ou um registro em uma tabela.
  5. Stored Procedures (Procedimentos Armazenados):

    • Permitem execução de lógica personalizada diretamente no container.
    • Utilizam JavaScript para operações no servidor.
  6. Functions (Funções):

    • Similar a stored procedures, mas focadas em lógica reutilizável em consultas.
  7. Conflicts (Conflitos):

    • Armazenam registros de conflitos que podem ocorrer durante a replicação de dados em regiões globais.
    • Podem ser resolvidos automaticamente ou de forma personalizada.

Estruturas de Dados Suportadas no Container:

  1. Collection (Coleções):

    • Usadas para armazenar documentos JSON.
    • Ideal para bancos de dados NoSQL baseados em documentos, como MongoDB.
  2. Table (Tabelas):

    • Estrutura chave-valor para armazenar pares de dados.
    • Similar ao Azure Table Storage.
  3. Graph (Grafos):

    • Usado para armazenamento e consultas de grafos, como no Gremlin API.

Resumo Prático:

  • A conta define a replicação global e as configurações de consistência.
  • O banco de dados organiza os containers, que são unidades de armazenamento flexíveis.
  • Dentro dos containers, é possível gerenciar itens (dados), lógica (procedimentos e funções) e resolver conflitos.
  • Dependendo do caso de uso, os containers podem ser configurados para armazenar documentos, tabelas ou grafos.

Essa estrutura permite que o Azure Cosmos DB seja extremamente flexível e escalável, suportando diferentes tipos de aplicações em um único serviço.