Determinar o tipo de aplicação para o Azure Cosmos DB para PostgreSQL

APLICA-SE A: Azure Cosmos DB para PostgreSQL (com tecnologia da extensão da base de dados Citus para PostgreSQL)

A execução de consultas eficientes num cluster requer que as tabelas sejam distribuídas corretamente pelos servidores. A distribuição recomendada varia consolidou-se com o tipo de aplicação e os respetivos padrões de consulta.

Existem, em geral, dois tipos de aplicações que funcionam bem no Azure Cosmos DB para PostgreSQL. O primeiro passo na modelação de dados é identificar qual deles se assemelha mais à sua aplicação.

De relance

Aplicações Multi-Inquilino 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

Aplicação Multi-Inquilino

Normalmente, são aplicações SaaS que servem outras empresas, contas ou organizações. A maioria das aplicações SaaS são inerentemente relacionais. Têm uma dimensão natural para distribuir dados entre nós: apenas partições horizontais por tenant_id.

O Azure Cosmos DB para PostgreSQL permite-lhe aumentar horizontalmente a base de dados para milhões de inquilinos sem ter de voltar a arquitetar a sua aplicação. Pode manter a semântica relacional de que precisa, como associações, restrições de chave externa, transações, ACID e consistência.

  • Exemplos: Sites que alojam lojas para outras empresas, como uma solução de marketing digital ou uma ferramenta de automatização de vendas.
  • Características: consultas relacionadas com um único inquilino em vez de associar informações entre inquilinos. Isto inclui cargas de trabalho OLTP para servir clientes Web e cargas de trabalho OLAP que servem consultas analíticas por inquilino. Ter dezenas ou centenas de tabelas no esquema da base de dados também é um indicador para o modelo de dados multi-inquilino.

O dimensionamento de uma aplicação multi-inquilino com o Azure Cosmos DB para PostgreSQL também requer alterações mínimas ao código da aplicação. Temos apoio para arquiteturas populares como Ruby on Rails e Django.

Análise em Tempo Real

As aplicações precisam de paralelismo maciço, coordenando centenas de núcleos para obter 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 permite efetuar consultas em tempo real em milhares de milhões de registos em menos de um segundo.

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

  • Exemplos: dashboards de análise destinados ao cliente que requerem tempos de resposta de segundo inferior.
  • Características: poucas tabelas, muitas vezes centradas numa grande tabela de eventos de dispositivos, sites ou utilizadores e que requerem um elevado volume de ingestão de dados maioritariamente imutáveis. Consultas de análise relativamente simples (mas computacionalmente intensivas) que envolvem várias agregações e BYs DE GRUPO.

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

Passos seguintes