Partilhar via


Determinando o tipo de aplicativo para o Azure Cosmos DB para PostgreSQL

APLICA-SE A: Azure Cosmos DB para PostgreSQL (alimentado pela extensão de banco de dados Citus para PostgreSQL)

A execução de consultas eficientes em um cluster requer que as tabelas sejam distribuídas corretamente entre os servidores. A distribuição recomendada varia de acordo com o tipo de aplicativo e seus padrões de consulta.

Existem basicamente dois tipos de aplicativos que funcionam bem no Azure Cosmos DB para PostgreSQL. A primeira etapa na modelagem de dados é identificar qual deles mais se assemelha ao seu aplicativo.

Em resumo

Aplicativos multilocatários Aplicações em Tempo Real
Por vezes, dezenas ou centenas de tabelas no esquema Pequeno número de tabelas
Consultas relacionadas com um inquilino (empresa/loja) de cada vez Consultas de análise relativamente simples com agregações
Cargas de trabalho OLTP para servir clientes Web Alto volume de ingestão de dados maioritariamente imutáveis
Cargas de trabalho OLAP que apresentam consultas analíticas por inquilino Normalmente, centralizadas numa grande tabela de eventos

Exemplos e Características

Aplicativo multilocatário

Normalmente, são aplicativos SaaS que atendem outras empresas, contas ou organizações. A maioria dos aplicativos SaaS são inerentemente relacionais. Eles têm uma dimensão natural para distribuir dados entre nós: basta fragmentar por tenant_id.

O Azure Cosmos DB para PostgreSQL permite que você dimensione seu banco de dados para milhões de locatários sem precisar rearquitetar seu aplicativo. Você pode manter a semântica relacional necessária, como junções, restrições de chave estrangeira, transações, ACID e consistência.

  • Exemplos: sites que hospedam vitrines para outras empresas, como uma solução de marketing digital ou uma ferramenta de automação de vendas.
  • Características: consultas relacionadas a um único locatário em vez de unir informações entre locatários. Isso inclui cargas de trabalho OLTP para atender clientes da Web e cargas de trabalho OLAP que atendem consultas analíticas por locatário. Ter dezenas ou centenas de tabelas em seu esquema de banco de dados também é um indicador para o modelo de dados multilocatário.

O dimensionamento de um aplicativo multilocatário com o Azure Cosmos DB para PostgreSQL também requer alterações mínimas no código do aplicativo. Temos suporte para frameworks populares como Ruby on Rails e Django.

Análise em tempo real

Aplicativos que precisam de paralelismo maciço, coordenando centenas de núcleos para resultados rápidos para consultas numéricas, estatísticas ou de contagem. Ao fragmentar e paralelizar consultas SQL em vários nós, o Azure Cosmos DB para PostgreSQL torna possível executar consultas em tempo real em bilhões de registros em menos de um segundo.

As tabelas em modelos de dados de análise em tempo real são normalmente distribuídas por colunas como user_id, host_id ou device_id.

  • Exemplos: painéis de análise voltados para o cliente que exigem tempos de resposta inferiores a um segundo.
  • Características: Poucas tabelas, muitas vezes centradas em torno de uma grande tabela de eventos de dispositivo, site ou usuário e exigindo alto volume de ingestão de dados principalmente imutáveis. Consultas analíticas relativamente simples (mas computacionalmente intensivas) envolvendo várias agregações e GROUP BYs.

Se a sua situação se assemelhar a qualquer um dos casos acima, a próxima etapa é decidir como fragmentar seus dados no cluster. A escolha de colunas de distribuição do administrador do banco de dados precisa corresponder aos padrões de acesso de consultas típicas para garantir o desempenho.

Próximos passos

  • Escolha uma coluna de distribuição para tabelas em seu aplicativo para distribuir dados de forma eficiente