View a markdown version of this page

Práticas recomendadas para usar o Amazon Redshift Spectrum - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Práticas recomendadas para usar o Amazon Redshift Spectrum

Esta seção fornece uma visão geral das práticas recomendadas para usar o Amazon Redshift Spectrum. Recomendamos que você siga estas práticas recomendadas para obter uma performance ideal quando usar o Redshift Spectrum:

  • Considere que os tipos de arquivo têm uma influência significativa na performance da consulta do Redshift Spectrum. Para melhorar a performance, use arquivos codificados em colunas, como ORC ou Parquet, e use o formato CSV somente para tabelas de dimensões muito pequenas.

  • Use o particionamento baseado em prefixo para aproveitar a remoção de partições. Isso significa usar filtros que estão chaveados nas partições do seu data lake.

  • O Redshift Spectrum escala automaticamente para processar grandes solicitações, então faça o máximo possível no Redshift Spectrum (por exemplo, envio de predicados).

  • Preste atenção aos arquivos de partição em colunas frequentemente filtradas. Se os dados forem particionados por uma ou mais colunas filtradas, o Redshift Spectrum pode aproveitar a remoção de partições e ignorar a verificação de partições e arquivos desnecessários. Uma prática comum é dividir os dados com base no tempo.

  • Você pode verificar a eficácia de suas partições e a eficiência de sua consulta do Redshift Spectrum usando a consulta a seguir.

    Select query, segment, max(assigned_partitions) as total_partitions, max(qualified_partitions) as qualified_partitions From svl_s3partition Where query=pg_last_query_id() Group by 1,2;

    A consulta anterior mostra o seguinte:

    • total_partitions — O número de partições reconhecidas pelo AWS Glue Data Catalog

    • qualified_partitions: o número de prefixos no Amazon Simple Storage Service (Amazon S3) acessados para a consulta do Redshift Spectrum

  • Você também pode verificar a tabela do sistema SVL_S3QUERY_SUMMARY para saber mais sobre a eficácia de suas partições e a eficiência de sua consulta do Redshift Spectrum. Para fazer isso, use a instrução a seguir.

    Select * From svl_s3query_summary Where query=pg_last_query_id();

    A consulta anterior retorna ainda mais informações, incluindo os valores is_partitioned, s3_scanned_rows/bytes e s3_returned_rows/bytes, além de arquivos que mostram a eficiência da remoção de partições.

Predicado pushdown no Redshift Spectrum

Usar o predicado pushdown evita o consumo de recursos no cluster do Amazon Redshift. Você pode enviar várias operações do SQL para a camada do Redshift Spectrum. Recomendamos aproveitar isso sempre que possível.

Lembre-se do seguinte:

  • Você pode avaliar alguns tipos de operações SQL completamente dentro da camada do Redshift Spectrum, incluindo as seguintes:

    • Cláusulas GROUP BY

    • Condições de comparação e correspondência de padrões (por exemplo, LIKE)

    • Funções agregadas (por exemplo, COUNT, SUM, AVG, MIN e MAX)

    • regex_replace, to_upper, date_trunc e outras funções

  • Você não pode enviar algumas operações para a camada do Redshift Spectrum, incluindo DISTINCT e ORDER BY. Execute ORDER BY somente no nível superior da consulta, se possível, pois a classificação é feita no nó principal.

  • Examine seu plano de consulta EXPLAIN para verificar se o predicados pushdown é eficaz. Para encontrar partes do Redshift Spectrum em um comando EXPLAIN, siga estas etapas:

    • S3 Seq Scan

    • S3 HashAggregate

    • S3 Query Scan

    • Seq Scan PartitionInfo

    • Partition Loop

  • Use o menor número de colunas em sua consulta. O Redshift Spectrum pode eliminar colunas para verificar se os dados estão no formato Parquet ou ORC.

  • Faça uso extensivo de partições para processamento paralelo e eliminação de partições, e mantenha os tamanhos dos arquivos em pelo menos 64 MB, se possível.

  • Defina TABLE PROPERTIES 'numRows'='nnn' se você usar CREATE EXTERNAL TABLE ou ALTER TABLE. O Amazon Redshift não analisa as tabelas externas para gerar as estatísticas das tabelas que o otimizador de consultas utiliza para gerar um plano de consulta. Se as estatísticas não estiverem definidas, o Amazon Redshift supõe que as tabelas externas são as maiores e as tabelas locais, as menores.

Dicas de ajuste de consulta do Redshift Spectrum

Recomendamos que você tenha em mente o seguinte ao ajustar suas consultas:

  • O número de nós do Redshift Spectrum que seu cluster do Amazon Redshift pode engajar para uma consulta está vinculado ao número de fatias em seu cluster.

  • Aumentar o tamanho do seu cluster pode beneficiar os perfis de computação local, os perfis de armazenamento e os recursos de consulta ao data lake no Amazon S3 do seu cluster.

  • O planejador de consultas do Amazon Redshift envia predicados e agregações para a camada de consulta do Redshift Spectrum sempre que possível.

  • Quando grandes quantidades de dados são retornadas do Amazon S3, o processamento é limitado pelos recursos do seu cluster.

  • Como o Redshift Spectrum escala automaticamente para processar solicitações grandes, a performance geral é aprimorada sempre que você pode enviar processamento para a camada do Redshift Spectrum.