Melhores práticas 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á.

Melhores práticas para usar o Amazon Redshift Spectrum

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

  • Considere que os tipos de arquivo têm uma influência significativa no desempenho da consulta do Redshift Spectrum. Para melhorar o desempenho, 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 são inseridos nas partições do seu data lake.

  • O Redshift Spectrum é escalável 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) que são acessados para a consulta do Redshift Spectrum

  • Você também pode verificar a tabela do SVL_S3QUERY_SUMMARY sistema 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, incluindois_partitioned,, e s3_returned_rows/bytes valoress3_scanned_rows/bytes, além de arquivos que mostram a eficiência da remoção de partições.

Redução de predicados no Redshift Spectrum

Usar o predicate pushdown evita o consumo de recursos no cluster do Amazon Redshift. Você pode transferir várias operações 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:

    • GROUP BYcláusulas

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

    • Funções agregadas (por exemplo,COUNT,SUM, AVGMIN, eMAX)

    • regex_replace, to_upperdate_trunc, e outras funções

  • Você não pode enviar algumas operações para a camada do Redshift Spectrum, incluindo e. DISTINCT 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 EXPLAIN plano de consulta para verificar se a redução de predicados é eficaz. Para encontrar partes do Redshift Spectrum em um EXPLAIN comando, 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 digitalização se os dados estiverem 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 ouALTER TABLE. O Amazon Redshift não analisa tabelas externas para gerar estatísticas de tabela que o otimizador de consultas usa para gerar um plano de consulta. Se as estatísticas não estiverem definidas, o Amazon Redshift presume que as tabelas externas são as tabelas maiores e as locais são as tabelas menores.

Dicas de ajuste de consulta para o 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.

  • O redimensionamento do cluster pode beneficiar os perfis computacionais locais, os perfis de armazenamento e os recursos de consulta da consulta de data lake do Amazon S3.

  • 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 é escalável automaticamente para processar grandes solicitações, seu desempenho geral melhora sempre que você pode enviar o processamento para a camada do Redshift Spectrum.