Compartilhar via


Determinando o tipo de aplicativo no Azure Cosmos DB for PostgreSQL

APLICA-SE AO: Azure Cosmos DB for PostgreSQL (da plataforma da extensão de dados Citus para PostgreSQL)

A execução de consultas eficientes em um cluster exige 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 for PostgreSQL. A primeira etapa ao criar uma modelagem de dados é identificar quais deles é mais semelhante ao seu aplicativo.

Visão rápida

Aplicativos multilocatários Aplicativos em tempo real
Às vezes, dezenas ou centenas de tabelas em um esquema Um número pequeno de tabelas
Consultas relacionadas a um locatário (empresa/repositório) por vez Consultas de análise relativamente simples com agregações
Cargas de trabalho OLTP para atender clientes Web Grande volume de ingestão de dados, principalmente os imutáveis
Cargas de trabalho OLAP que atendem consultas analíticas por locatário Muitas vezes centralizam uma grande tabela de eventos

Exemplos e características

Aplicativos multilocatários

Normalmente, são aplicativos SaaS que atendem a 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: apenas fragmento por tenant_id.

O Azure Cosmos DB for PostgreSQL permite que você escale horizontalmente seu banco de dados para milhões de locatários sem precisar refazer a arquitetura do 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 locatário em vez de reunir informações de vários locatários. Isso inclui cargas de trabalho OLTP para atender a clientes Web e cargas de trabalho OLAP que atendem a 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.

A colocação em escala de um aplicativo multilocatário com o Azure Cosmos DB for PostgreSQL também requer alterações mínimas no código do aplicativo. Temos suporte para estruturas populares como Ruby on Rails e Django.

Análise em tempo real

Aplicativos que precisam de um grande paralelismo, coordenando centenas de núcleos para resultados rápidos em consultas numéricas, estatísticas ou de contagem. Fragmentando e paralelizando consultas SQL em vários nós, o Azure Cosmos DB for PostgreSQL possibilita a execução de 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 normalmente são 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 de subsegundos.
  • Características: algumas tabelas, geralmente centralizadas em torno de uma grande tabela de eventos de dispositivo, site ou usuário e que exigem um alto volume de ingestão de dados quase imutáveis. Consultas de análise relativamente simples (mas intensivas do ponto de vista computacional) que envolvem várias agregações e GROUP BYs.

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

Próximas etapas