Todos os produtos
Search
Central de documentação

AnalyticDB:Melhores práticas para operações em tabelas externas do OSS

Última atualização: Jun 27, 2026

As tabelas externas do OSS permitem consultar dados no Object Storage Service (OSS) diretamente do AnalyticDB for PostgreSQL, sem importação prévia. O desempenho da consulta depende de como o otimizador interpreta seus dados e da organização dos objetos no OSS. Siga estas práticas para aproveitar ao máximo as varreduras paralelas, os planos de consulta precisos e os layouts de arquivo eficientes.

Se essas otimizações ainda não atenderem aos requisitos de desempenho, considere usar tabelas externas particionadas do OSS. Esse recurso reduz significativamente o escopo de varredura ao eliminar partições irrelevantes durante a execução da consulta.

Visualize planos de execução

Use EXPLAIN para inspecionar o plano de execução de qualquer consulta que envolva tabelas externas do OSS:

EXPLAIN SELECT COUNT(*) FROM oss_lineitem_orc WHERE l_orderkey > 14062498;

Analise o plano para verifique se o otimizador de consultas escolha ordens de junção e métodos de varredura eficientes, especialmente em consultas complexas com múltiplas tabelas.

Coletar estatísticas

O AnalyticDB for PostgreSQL não coleta estatísticas automaticamente para tabelas externas do OSS. Diferentemente das tabelas regulares armazenadas localmente, as tabelas externas residem no OSS. Por isso, o banco de dados não possui um mecanismo automático para amostrá-las. Sem estatísticas atualizadas, o otimizador de consultas trabalha com estimativas e pode escolher um plano ineficiente. Isso inclui selecione uma ordem de junção ou estratégia de broadcast inadequada para consultas que unem várias tabelas.

Execute ANALYZE manualmente sempre que houver alterações significativas nos dados:

  1. Verifique o plano de execução atual:

    EXPLAIN <table_name>;
  2. Colete as estatísticas:

    ANALYZE <table_name>;
  3. Confira o plano de execução atualizado para confirme que o otimizador agora gera um plano mais eficiente:

    EXPLAIN <table_name>;

Dividir objetos grandes

Tabelas externas do OSS suportam varreduras paralelas em vários nós. Cada nó varre um objeto separado. Assim, se seus dados consistirem em poucos arquivos grandes, a maioria dos nós ficará ociosa. Divida arquivos grandes em menores para que cada nó tenha um objeto distinto para varrer em paralelo. Essa prática melhora significativamente o throughput da consulta.

O exemplo a seguir demonstra como dividir um arquivo CSV grande no Linux.

  1. Verifique o número de linhas no arquivo:

    wc -l <csv_file>
  2. Divida o arquivo em arquivos menores, cada um contendo N linhas:

    split -l N <csv_file>

    Substitua N pelo número de linhas desejado por arquivo de saída. O comando split preserva os limites das linhas e garante que nenhuma linha seja dividida entre vários arquivos de saída.

Visualize informações do objeto

Para inspecionar os objetos que compõem uma tabela externa do OSS, execute:

SELECT * FROM get_oss_table_meta('<OSS FOREIGN TABLE>');

Substitua <OSS FOREIGN TABLE> pelo nome da tabela externa do OSS.

Próximos passos