A execução de relatórios complexos ou consultas analíticas em uma instância do ApsaraDB RDS for PostgreSQL pode consumir recursos significativos e afetar o desempenho e a estabilidade das operações principais. Para solucionar esse problema, o ApsaraDB RDS for PostgreSQL oferece a instância analítica baseada em DuckDB. Especializada em cargas de trabalho analíticas, essa instância utiliza um nó dedicado para separação de leitura e escrita, isolando o processamento analítico (AP) do processamento transacional online (TP). Essa abordagem aumenta significativamente a eficiência de consultas complexas sem impactar o desempenho da instância primária.
Recursos
A instância analítica baseada em DuckDB é um tipo especial de instância somente leitura projetada para consultas analíticas. Ela oferece os seguintes recursos:
Separação de leitura/escrita e isolamento de carga de trabalho: Opera como um nó dedicado para isolar consultas analíticas intensivas em recursos das cargas transacionais na instância primária. Isso garante que o desempenho e a estabilidade das operações principais permaneçam inalterados.
Conversão colunar em tempo real sem ETL: Sincroniza dados da instância primária quase em tempo real por meio de replicação física e assinatura lógica, convertendo-os automaticamente para o formato de armazenamento colunar. Também permite configurar políticas de sincronização por banco de dados.
Armazenamento híbrido em linhas e colunas: Mantém uma cópia no formato de linha (original) e outra no formato colunar (analítico). A aceleração colunar vem ativada por padrão e direciona consultas analíticas complexas para o mecanismo colunar. Se esse mecanismo não conseguir processar uma consulta, o sistema reverte automaticamente para o mecanismo de armazenamento em linhas, garantindo compatibilidade. A instância também oferece suporte à compactação de armazenamento em linhas.
Pré-requisitos
A instância primária do ApsaraDB RDS for PostgreSQL deve atender aos seguintes requisitos:
Status da instância: Em execução.
Versão principal do mecanismo: ApsaraDB RDS for PostgreSQL 16.0 ou posterior.
Edição: High-availability Edition.
Método de faturamento: Assinatura ou pagamento conforme o uso.
Versão secundária do mecanismo: 20260130 ou posterior.
-
Os seguintes parâmetros de instância devem estar configurados:
O parâmetro
wal_leveldefinido comological;shared_preload_librariesincluindords_duckdb;hot_standby_feedbackdefinido comoon; emax_replication_slots,max_worker_processesemax_wal_senderscom valor igual ou superior a1024. A instância não pode ser de recuperação de desastres.
Faturamento
O faturamento da instância analítica baseada em DuckDB segue o mesmo modelo da instância somente leitura padrão. O custo varia conforme a edição, o tipo de instância, o tipo de armazenamento e a capacidade de armazenamento. O preço final aparece na página de compra.
Observações de uso
Após criar uma instância analítica baseada em DuckDB, não modifique os parâmetros relacionados na instância primária.
Ao criar várias instâncias analíticas baseadas em DuckDB para a mesma instância primária, a configuração de armazenamento colunar (como os bancos de dados com conversão automática de linha para coluna ativada) aplica-se a todas as instâncias analíticas.
Se a instância primária já utilizar a extensão rds_duckdb para aceleração colunar, desative esse recurso na instância primária após criar a instância analítica baseada em DuckDB para garantir o isolamento completo da carga de trabalho.
Para garantir a compatibilidade das consultas, a instância analítica baseada em DuckDB mantém uma cópia dos dados no formato de armazenamento em linhas. Compacte esses dados para reduzir custos de armazenamento.
Criar uma instância analítica DuckDB
Faça login no console do ApsaraDB RDS. Na barra de navegação superior, selecione uma região e clique em ID da instância desejada.
-
Na página Basic Information, na seção Instance Distribution, clique em Add à direita de DuckDB-based analytical instance.

-
O sistema executa uma verificação prévia automaticamente. Após a aprovação, clique em Confirm and Activate.
Se a verificação falhar, clique em One-click Fix e selecione um horário para a correção. O sistema configura automaticamente as dependências necessárias. Após a conclusão, clique novamente em Add à direita de DuckDB-based analytical instance para retornar à página de verificação. Em seguida, clique em Confirm and Activate.
ImportanteSe a versão principal do mecanismo da instância não atender aos requisitos, atualize manualmente a versão principal do mecanismo.
-
Defina os parâmetros da instância analítica baseada em DuckDB.
Parâmetro
Descrição
Billing Method
-
Subscription: Adequado para uso de longo prazo (pagamento único).
-
Pay-as-you-go: Ideal para uso de curto prazo (faturamento por hora). Crie primeiro uma instância analítica baseada em DuckDB com pagamento conforme o uso e converta-a para Subscription após confirmar que ela atende aos seus requisitos.
Edition
-
Basic Edition: Instância analítica baseada em DuckDB de nó único, econômica e adequada para aprendizado ou testes. A recuperação de falhas e as reinicializações são lentas.
-
High-availability Edition (Padrão): Inclui um nó primário e um secundário para fornecer alta disponibilidade à instância analítica baseada em DuckDB. Esta edição é adequada para ambientes de produção e recomendada para a maioria dos cenários.
NotaAo selecionar a Edition, especifique também a zona do nó primário, o tipo de implantação (multizona ou zona única) e a zona do nó secundário.
Product Type
Somente a Standard Edition é suportada.
Para mais informações, consulte Tipos de produto.
Zone
Uma zona é uma área física independente dentro de uma região. Zonas diferentes na mesma região são funcionalmente idênticas. Uma implantação multizona fornece recuperação de desastres no nível da zona, diferentemente da implantação de zona única.
Instance Type
Somente tipos de instância Dedicated são suportados. As especificações disponíveis correspondem às dos tipos de instância somente leitura do ApsaraDB RDS for PostgreSQL.
Storage Capacity
A capacidade de armazenamento inclui espaço para dados, arquivos de sistema, arquivos de log write-ahead (WAL) e arquivos de transação. O incremento mínimo para ajustes na capacidade de armazenamento é de 5 GB.
NotaA capacidade de armazenamento da instância analítica baseada em DuckDB deve ser pelo menos igual à da instância primária. Para obter informações sobre a capacidade de armazenamento de cada tipo de instância, consulte tipos de instância somente leitura do ApsaraDB RDS for PostgreSQL.
-
-
Clique em Next: Instance Configurations e defina os seguintes parâmetros.
Parâmetro
Descrição
Network Type
Assume por padrão o mesmo tipo de rede, VPC e vSwitch of Primary Node da instância primária.
Release Protection
Se o billing method for pagamento conforme o uso, ative a Release Protection para evitar que a instância seja liberada acidentalmente. Para mais informações, consulte Ativar ou desativar proteção contra liberação.
Resource Group
Por padrão, corresponde ao grupo de recursos da instância primária e não pode ser alterado.
Time Zone
Por padrão, corresponde ao fuso horário da instância primária.
SLR Authorization
Nenhuma configuração necessária. A autorização foi concedida durante a aquisição da instância primária.
Instance name
Defina um nome para facilitar a identificação da instância.
Clique em Tags.
Confirme as Next: Confirm Order, selecione a Parameter Configurations e a Quantity se tiver escolhido um plano Subscription e clique em Subscription Duration para concluir o pagamento.
Configurar armazenamento colunar
Para acelerar consultas analíticas, a instância analítica baseada em DuckDB usa armazenamento colunar, o que exige a conversão prévia dos dados do formato de armazenamento em linhas da instância primária.
Dependendo dos requisitos do negócio e da disponibilidade de recursos, converta uma única tabela sob demanda ou converta automaticamente um banco de dados inteiro.
Pré-requisitos
Antes de começar, certifique-se de que a instância primária do ApsaraDB RDS for PostgreSQL atenda aos seguintes requisitos:
Uma instância analítica baseada em DuckDB criada e com status Running.
Uma conta privilegiada criada.
O banco de dados de destino contém pelo menos uma tabela.
Observações de uso
A geração de dados de armazenamento colunar consome espaço adicional, geralmente de 20% a 50% do volume original de dados. Certifique-se de que a instância analítica baseada em DuckDB tenha armazenamento disponível suficiente.
Em grandes bancos de dados, a conversão completa pode levar muito tempo. A duração depende de fatores como as especificações da instância, incluindo largura de banda do disco e memória.
Método 1: Converter tabelas sob demanda
Este método converte tabelas específicas para armazenamento colunar. É adequado para otimizar consultas SQL lentas (convertendo as tabelas envolvidas) ou para economizar espaço quando os recursos da instância analítica são limitados. Se uma consulta envolver tabelas não convertidas, o sistema reverterá automaticamente para o mecanismo de armazenamento em linhas para manter a compatibilidade.
Procedimento
Conecte-se à instância primária do ApsaraDB RDS for PostgreSQL e execute as seguintes instruções SQL no banco de dados de destino:
-- Create the rds_duckdb extension if it does not already exist.
CREATE EXTENSION IF NOT EXISTS rds_duckdb;
-- Convert the specified table to columnar storage format.
SELECT rds_duckdb.create_duckdb_table('your_table_name');
Método 2: Converter um banco de dados inteiro
Este método utiliza o console para converter automaticamente todas as tabelas atuais de um banco de dados especificado para o formato de armazenamento colunar. É recomendado para cenários que exigem análise abrangente de um banco de dados completo.
Este processo não converte automaticamente tabelas adicionadas posteriormente. Reconfigure novas tabelas pelo console.
Faça login no console do ApsaraDB RDS. No painel de navegação à esquerda, clique em Confirm Order. Na barra de navegação superior, selecione uma região.
Na lista de instâncias, localize a instância primária (indicada pelo ícone
) e expanda a lista suspensa.-
Clique em ID da instância analítica baseada em DuckDB.

No painel de navegação à esquerda, clique em Instances.
-
Na página Database Management, marque as caixas de seleção dos bancos de dados que deseja converter automaticamente para armazenamento colunar e clique em Database Management.
Na caixa de diálogo exibida, clique em Batch Configure Columnar Storage.