Partilhar via


Multi-inquilino e Base de Dados do Azure para PostgreSQL

Muitas soluções multi-inquilino no Azure utilizam o sistema de gestão de bases de dados relacionais open source Base de Dados do Azure para PostgreSQL. Neste artigo, vamos rever as funcionalidades de Base de Dados do Azure para PostgreSQL que são úteis ao trabalhar com sistemas multi-inquilino. O artigo também liga a documentação de orientação e exemplos sobre como utilizar Base de Dados do Azure para PostgreSQL, numa solução multi-inquilino.

Modos de implementação

Existem dois modos de implementação disponíveis para Base de Dados do Azure para PostgreSQL adequados para utilização com aplicações multi-inquilino:

  • Servidor Flexível – esta é uma boa opção para a maioria das implementações multi-inquilino que não requerem a escalabilidade elevada fornecida pelo Azure Cosmos DB para PostgreSQL.
  • Azure Cosmos DB para PostgreSQL – um serviço de base de dados gerida do Azure concebido para soluções que requerem um elevado nível de dimensionamento, que muitas vezes inclui aplicações multi-inquilino. Este serviço faz parte da família de produtos do Azure Cosmos DB.

Nota

Base de Dados do Azure para PostgreSQL - O Servidor Único está no caminho da reforma e está agendado para a descontinuação até 28 de março de 2025. Não é recomendado para novas cargas de trabalho multi-inquilino.

Funcionalidades de Base de Dados do Azure para PostgreSQL que suportam multi-inquilino

Quando estiver a criar uma aplicação multi-inquilino com Base de Dados do Azure para PostgreSQL, existem várias funcionalidades que pode utilizar para melhorar a solução.

Nota

Algumas funcionalidades só estão disponíveis em modos de implementação específicos. Estas funcionalidades são indicadas na documentação de orientação abaixo.

Segurança ao nível da linha

A segurança ao nível da linha é útil para impor o isolamento ao nível do inquilino, quando utiliza tabelas partilhadas. No PostgreSQL, a segurança ao nível da linha é implementada ao aplicar políticas de segurança de linha a tabelas para restringir o acesso a linhas por inquilino.

Talvez haja um ligeiro impacto no desempenho ao implementar a segurança ao nível da linha numa tabela. Por conseguinte, poderão ter de ser criados índices adicionais em tabelas com segurança ao nível da linha ativada para garantir que o desempenho não é afetado. É recomendado utilizar técnicas de teste de desempenho para validar que a carga de trabalho cumpre os requisitos de desempenho da linha de base quando a segurança ao nível da linha está ativada.

Mais Informações:

Dimensionamento horizontal com fragmentação

O padrão de Fragmentação permite-lhe dimensionar a carga de trabalho em várias bases de dados ou servidores de bases de dados.

As soluções que precisam de um nível de dimensionamento muito elevado podem utilizar o Azure Cosmos DB para PostgreSQL. Este modo de implementação permite a fragmentação horizontal de inquilinos em vários servidores (nós). Ao utilizar tabelas distribuídas em bases de dados multi-inquilino, pode garantir que todos os dados de um inquilino são armazenados no mesmo nó, o que aumenta o desempenho das consultas.

Nota

A partir de outubro de 2022, o Base de Dados do Azure para PostgreSQL Hyperscale (Citus) foi renomeado como Azure Cosmos DB para PostgreSQL e transferido para a família de produtos do Cosmos DB.

Mais Informações:

Conjunto de ligações

O Postgres utiliza um modelo baseado em processos para ligações. Este modelo torna ineficiente manter um grande número de ligações inativas. Algumas arquiteturas multi-inquilino requerem um grande número de ligações ativas, o que afetará negativamente o desempenho do servidor Postgres.

O conjunto de ligações através do PgBouncer está instalado por predefinição no Servidor Flexível Base de Dados do Azure para PostgreSQL.

Mais Informações:

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuintes.

Autor principal:

Outros contribuidores:

  • John Downs | Engenheiro Principal de Clientes, FastTrack para o Azure
  • Arsen Vladimirskiy | Engenheiro Principal de Clientes, FastTrack para o Azure
  • Paul Burpo | Engenheiro Principal de Clientes, FastTrack para ISVs do Azure
  • Assaf Fraenkel | Engenheiro Sénior/Arquiteto de Dados, Azure FastTrack para ISVs e Start-ups

Para ver perfis do LinkedIn não públicos, inicie sessão no LinkedIn.

Passos seguintes

Reveja as abordagens de armazenamento e dados para obter multi-inquilinos.