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_SUMMARYpara 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/byteses3_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,MINeMAX) -
regex_replace,to_upper,date_trunce outras funções
-
-
Você não pode enviar algumas operações para a camada do Redshift Spectrum, incluindo
DISTINCTeORDER BY. ExecuteORDER BYsomente no nível superior da consulta, se possível, pois a classificação é feita no nó principal. -
Examine seu plano de consulta
EXPLAINpara verificar se o predicados pushdown é eficaz. Para encontrar partes do Redshift Spectrum em um comandoEXPLAIN, 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ê usarCREATE EXTERNAL TABLEouALTER 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.