

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
<a name="best-practices-redshift-spectrum"></a>

Esta seção fornece uma visão geral das práticas recomendadas para usar o [Amazon Redshift Spectrum](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html). 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\$1partitions** — O número de partições reconhecidas pelo AWS Glue Data Catalog
  + **qualified\$1partitions**: 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
<a name="predicate-pushdown"></a>

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
<a name="query-tuning-spectrum"></a>

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.