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, incluindo
is_partitioned
,, es3_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 BY
cláusulas -
Condições de comparação e correspondência de padrões (por exemplo,)
LIKE
-
Funções agregadas (por exemplo,
COUNT
,SUM
,AVG
MIN
, eMAX
) -
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 e.
DISTINCT
ORDER BY
ExecuteORDER 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 umEXPLAIN
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ê usarCREATE 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.