O AlloyDB para PostgreSQL é um serviço de base de dados totalmente gerido e compatível com o PostgreSQL concebido para as suas cargas de trabalho mais exigentes, incluindo o processamento transacional e analítico híbrido. O AlloyDB combina um motor de base de dados criado pela Google com uma arquitetura de vários nós baseada na nuvem para oferecer desempenho, fiabilidade e disponibilidade de nível empresarial.
Como funciona o AlloyDB
Uma aplicação liga-se a instâncias do AlloyDB através de protocolos e técnicas padrão do PostgreSQL. A aplicação usa, em seguida, a sintaxe de consulta do PostgreSQL para trabalhar com a base de dados.
Por baixo da superfície, o AlloyDB usa uma hierarquia baseada na nuvem de componentes e funcionalidades concebidos para maximizar a disponibilidade dos seus dados e otimizar o desempenho e o débito das consultas. Google CloudAs ferramentas administrativas permitem-lhe monitorizar o estado de funcionamento da implementação do AlloyDB, ajustando a respetiva escala e tamanho para se adaptarem melhor às exigências variáveis da sua carga de trabalho.
Diferença arquitetónica do AlloyDB em relação ao PostgreSQL padrão
As implementações tradicionais do PostgreSQL associam o motor da base de dados que processa as consultas ao armazenamento onde os seus dados residem, muitas vezes no mesmo servidor. O AlloyDB usa uma arquitetura desagregada. As camadas de computação e armazenamento são separadas e oferecem escalabilidade individual.
A escalabilidade de uma configuração típica do PostgreSQL envolve a escalabilidade vertical através da atualização para um servidor maior ou a escalabilidade horizontal para leituras através da utilização de réplicas de leitura que também duplicam dados.
O design desagregado do AlloyDB, criado no sistema de ficheiros distribuído da Google, oferece várias vantagens:
- Escalabilidade independente: pode aumentar ou diminuir a escala dos recursos de computação, especificamente nós e instâncias, com base nas exigências de consultas sem aprovisionar nem desaprovisionar armazenamento. Também pode expandir os nós só de leitura para escalabilidade de leitura, sem afetar a disponibilidade. À medida que os seus dados aumentam, o armazenamento é dimensionado sem afetar o cálculo.
- Desempenho melhorado: com um motor de armazenamento nativo da nuvem otimizado, o AlloyDB oferece um desempenho rápido de consultas transacionais e analíticas, o que resulta de camadas de armazenamento em cache inteligentes e gestão avançada de E/S.
- Gestão simplificada: a separação de responsabilidades permite a gestão automática de muitas operações da base de dados, incluindo a replicação, as cópias de segurança e a aplicação de patches, que são tarefas manuais no PostgreSQL autogerido.
- Disponibilidade e durabilidade elevadas: o armazenamento de dados redundante na camada duradoura abrange várias zonas de disponibilidade, oferecendo ativação pós-falha e recuperação automáticas sem perda de dados, independentemente do estado de funcionamento da instância.
Esta diferença arquitetónica fundamental manifesta-se na hierarquia de recursos do AlloyDB através da utilização de clusters como os contentores de bases de dados lógicos abrangentes, com nós que fornecem a capacidade computacional e instâncias que servem como pontos de ligação de aplicações, enquanto os dados persistem numa camada de armazenamento separada e desagregada.
O diagrama seguinte ilustra um cluster de exemplo dimensionado para processar cargas de trabalho exigentes, com a inclusão de várias instâncias de pool de leitura com balanceamento de carga:
Clusters
Uma única implementação do AlloyDB numa determinada Google Cloud região organiza todos os respetivos recursos num cluster. Isto inclui todas as suas bases de dados, registos e outros metadados. O AlloyDB implementa todos os recursos de um cluster numa única nuvem virtual privada (VPC) e usa um sistema de ficheiros baseado na nuvem concebido pela Google e otimizado para o AlloyDB.
Nós e instâncias
Um cluster contém vários nós, que são instâncias de máquinas virtuais dedicadas à execução do motor de base de dados compatível com PostgreSQL que as aplicações usam para consultar os dados do seu cluster. O AlloyDB organiza os nós em instâncias, cada uma com um endereço IP estático e privado na sua VPC. Na prática, as suas aplicações ligam-se a instâncias nestes endereços IP através de protocolos PostgreSQL. Em seguida, as instâncias transmitem consultas SQL aos respetivos nós.
O AlloyDB tem dois tipos de instâncias:
Instância principal: cada cluster tem uma instância principal, que fornece um ponto de acesso de leitura ou gravação aos seus dados. Uma instância principal pode ser de alta disponibilidade (HA) ou básica.
Instância principal de HA: uma instância principal de HA tem dois nós: um nó ativo e um nó em espera. O AlloyDB monitoriza a disponibilidade do nó ativo e promove automaticamente o nó de reserva para o nó ativo quando necessário.
Instância básica: os ambientes de não produção que não requerem alta disponibilidade podem usar opcionalmente instâncias básicas. Uma instância básica tem apenas um nó, sem nó de reserva. Para mais informações, consulte o artigo Reduza os custos com instâncias básicas.
Instância do conjunto de leitura: o cluster pode ter, opcionalmente, uma ou mais instâncias do conjunto de leitura, cada uma contendo um ou mais nós só de leitura, até um máximo de 20 em todo o cluster. O AlloyDB equilibra automaticamente a carga de todos os pedidos enviados para uma instância de conjunto de leitura, encaminhando-os para os nós da instância.
Para exemplos de utilização mais simples, um cluster pode ter apenas a instância principal, sem pools de leitura, e as aplicações usam a instância principal para todas as consultas. Para trabalhos mais exigentes, pode adicionar instâncias do conjunto de leitura ao cluster. Em seguida, configure as suas aplicações de relatórios ou analíticas para lhes enviar pedidos de leitura. Esta técnica reduz a carga na sua instância principal e melhora a escalabilidade ao distribuir a carga por vários nós.
Pode adicionar, remover ou ajustar a quantidade de nós de uma instância de pool de leitura em qualquer altura, à medida que as necessidades da sua aplicação mudam. Também pode redimensionar a memória e o número de vCPUs dos nós constituintes de uma instância sempre que necessário, com um tempo de inatividade mínimo. A escalabilidade das suas instâncias não representa um risco de perda de dados, porque o AlloyDB armazena os seus dados na camada de armazenamento flexível do cluster e não nas instâncias.
Funcionalidades principais
O AlloyDB distingue-se de uma instalação do PostgreSQL padrão de várias formas, além das vantagens de escalabilidade vertical e horizontal inerentes à arquitetura de vários nós descrita anteriormente. As secções seguintes analisam mais detalhadamente as principais funcionalidades do AlloyDB.
Funcionalidades de base de dados automáticas e adaptáveis
O motor de base de dados totalmente compatível com o PostgreSQL que alimenta todos os nós do AlloyDB tem várias funcionalidades que analisam continuamente a estrutura e a frequência das consultas que as suas instâncias processam, usando estas informações para sugerir melhorias ao esquema ou aplicar automaticamente otimizações:
Um consultor de índices ajuda a encontrar oportunidades para otimizar o esquema da base de dados através de novos índices com base nos seus padrões de utilização.
Um motor de colunas pode acelerar o desempenho das consultas analíticas armazenando dados na memória através de um formato de colunas. Isto permite que o AlloyDB use técnicas de processamento avançadas para analisar de forma eficiente uma grande quantidade de dados de tabelas quando necessário.
Uma variação adaptativa da funcionalidade de vácuo automático de dados desatualizados do PostgreSQL ajusta automaticamente os parâmetros relacionados com o vácuo para se adequarem melhor à forma da sua carga de trabalho.
Os sistemas automáticos de gestão de memória e armazenamento tiram partido do ambiente baseado na nuvem criado pela Google no qual o AlloyDB é executado, alocando e libertando continuamente memória e armazenamento conforme necessário para manter o cluster em execução com um desempenho e uma eficiência de recursos ideais.
Alta disponibilidade
Por predefinição, um cluster do AlloyDB oferece disponibilidade (HA) através dos nós redundantes da respetiva instância principal, localizados em duas zonas diferentes, com comutação por falha automática.
Os clusters que operam em ambientes de não produção que não requerem HA podem, em alternativa, usar instâncias principais básicas de zona única.
A adição de instâncias do conjunto de leitura que contenham, pelo menos, dois nós cria mais pontos de acesso de alta disponibilidade, multizonais e com equilíbrio de carga aos seus dados. Todas as instâncias do conjunto de leitura são executadas independentemente da instância principal.
Para mais informações sobre considerações específicas da região, consulte o artigo Geografia e regiões.
Cópia de segurança de dados e recuperação de desastres
O AlloyDB inclui um sistema de cópia de segurança e recuperação contínuo que lhe permite criar um novo cluster com base em qualquer ponto no tempo dentro de um período de retenção ajustável. Isto permite-lhe recuperar rapidamente de acidentes de perda de dados.
Além disso, o AlloyDB pode criar e armazenar cópias de segurança completas dos dados do seu cluster, a pedido ou de forma regular. Em qualquer altura, pode restaurar a partir de uma cópia de segurança para um novo cluster do AlloyDB que contenha todos os dados do cluster original no momento da criação da cópia de segurança.
Para mais informações, consulte o artigo Acerca das cópias de segurança.
Como método adicional de recuperação de desastres, pode conseguir a replicação entre regiões criando clusters secundários em regiões separadas. Google CloudO AlloyDB transmite dados de forma assíncrona a partir de um cluster principal designado para cada um dos respetivos clusters secundários. Sempre que necessário, pode promover um cluster secundário para um cluster do AlloyDB com todas as funcionalidades com instâncias principais e de pool de leitura.
Para mais informações, consulte o artigo Acerca da replicação entre regiões.
Segurança e controlo de acesso
Pode configurar um cluster para exigir uma ligação com o proxy Auth do AlloyDB seguro, que usa a Google Cloud gestão de identidade e de acesso (IAM) para o controlo de acesso. Para mais informações, consulte o artigo Autorização.
O AlloyDB usa o sistema de funções de utilizador padrão do PostgreSQL para autenticação, introduzindo algumas funções adicionais específicas do AlloyDB. Para mais informações, consulte o artigo Faça a gestão das funções de utilizador do AlloyDB.
Encriptação
O AlloyDB protege todos os dados em repouso através dos métodos de encriptação da Google por predefinição. Em alternativa, se precisar de encriptar os seus dados com uma chave que fornece, pode especificar uma chave de encriptação gerida pelo cliente (CMEK) quando criar um cluster. Em seguida, o AlloyDB usa a chave CMEK para encriptar todos os dados escritos nesse cluster.
A CMEK também se aplica às cópias de segurança. Pode especificar uma chave CMEK quando criar uma cópia de segurança a pedido, configurar um agendamento de cópias de segurança ou restaurar a partir de uma cópia de segurança.
Para mais informações, consulte o artigo Acerca das CMEK.
Manutenção não disruptiva
As operações de manutenção do AlloyDB são concebidas para minimizar as interrupções na sua base de dados. As instâncias principal e secundária têm um tempo de inatividade inferior a um segundo, enquanto os conjuntos de leitura permanecem continuamente disponíveis sem tempo de inatividade. Isto é conseguido através da preparação de servidores de substituição e da sua troca rápida pelos servidores ativos quando estiverem prontos. Durante este processo, as ligações ativas à base de dados são momentaneamente interrompidas. Pode continuar a usar a sua base de dados normalmente durante este processo.
Embora este processo de substituição garanta um tempo de inatividade mínimo, a operação geral pode demorar vários minutos, conforme indicado na consola Google Cloud e na CLI Google Cloud.
Estas operações de manutenção incluem tarefas de manutenção periódicas executadas pela Google e tarefas que realiza manualmente, como a configuração de flags e a alteração do tamanho das instâncias. Se quiser aplicar imediatamente qualquer atualização, mesmo que isso signifique um tempo de inatividade mais longo, use a flag da base de dados FORCE_APPLY
.
AlloyDB AI
O AlloyDB AI integra um conjunto de funcionalidades de IA e ML diretamente na sua base de dados do AlloyDB. Historicamente, a criação de aplicações de IA exigia pipelines de dados complexos e processos ETL para mover dados de bases de dados operacionais para plataformas de IA/AA especializadas. Este método originou desafios como o aumento da latência da transferência de dados, custos operacionais mais elevados devido à gestão de diferentes sistemas e armazenamento duplicado. Ao integrar capacidades de IA diretamente na base de dados, o AlloyDB AI elimina a necessidade de uma movimentação extensa de dados externos.
Para facilitar o desenvolvimento de aplicações de IA, o AlloyDB AI oferece as seguintes extensões:
vector
(uma versão dopgvector
personalizada para a IA do AlloyDB): armazena e indexa incorporações de vetores para a pesquisa semântica. Suporta a execução de consultas híbridas e pesquisas de semelhanças. Para começar a usar a pesquisa vetorial, consulte o artigo Faça uma pesquisa vetorial.alloydb_scann
: oferece uma pesquisa de vizinhos mais próximos aproximada de elevado desempenho através da implementação de um índice de vizinhos mais próximos altamente eficiente com tecnologia do algoritmo ScaNN. Para mais informações, consulte o artigo Crie um índice ScaNN.google_ml_integration
: fornece acesso ao motor de consultas de IA, que permite a invocação de modelos de ML a partir do AlloyDB para tarefas como a geração de incorporações, a classificação semântica, as junções e os filtros baseados em IA, bem como a geração e o resumo de texto. A gestão de pontos finais de modelos permite o registo e a invocação de modelos de IA, incluindo modelos externos da OpenAI ou da Anthropic. Para mais informações, consulte os artigos Registe um ponto final do modelo e Avalie consultas semânticas com operadores de IA.alloydb_ai_nl
: permite a interação com a sua base de dados através da linguagem natural. Permite aos programadores de aplicações gerar consultas SQL precisas e seguras em resposta a perguntas em linguagem natural dos utilizadores finais, o que permite aos utilizadores que não usam SQL aceder aos dados. Para mais informações, consulte o artigo Vista geral da linguagem natural.
Para ver uma lista de exemplos de utilização das capacidades de IA do AlloyDB, consulte o artigo Crie aplicações de IA generativa.
Apoio técnico de extensões
O AlloyDB inclui suporte para várias extensões populares do PostgreSQL. Para ver a lista completa, consulte o artigo Extensões de base de dados suportadas.
Uma alternativa alojada por si: AlloyDB Omni
Em alternativa à execução do AlloyDB no Google Cloud, a Google oferece o AlloyDB Omni. Esta edição simplificada e transferível do AlloyDB permite-lhe executar o respetivo motor de base de dados potente no seu próprio ambiente de computação baseado em Linux, onde quer que esteja.
Para mais informações, consulte o artigo Acerca do AlloyDB Omni.