Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Bonnes pratiques d'utilisation d'Amazon Redshift Spectrum
Cette section fournit une vue d'ensemble des meilleures pratiques relatives à l'utilisation d'Amazon Redshift Spectrum. Nous vous recommandons de suivre les meilleures pratiques suivantes pour obtenir des performances optimales lorsque vous utilisez Redshift Spectrum :
-
Sachez que les types de fichiers ont une influence significative sur les performances des requêtes Redshift Spectrum. Pour améliorer les performances, utilisez des fichiers codés en colonnes tels que ORC ou Parquet, et utilisez le format CSV uniquement pour les tableaux de très petites dimensions.
-
Utilisez le partitionnement basé sur des préfixes pour tirer parti de l'élagage des partitions. Cela implique d'utiliser des filtres attachés aux partitions de votre lac de données.
-
Redshift Spectrum s'adapte automatiquement pour traiter les demandes volumineuses, alors faites tout ce qui est possible dans Redshift Spectrum (par exemple, le pushdown des prédicats).
-
Faites attention à partitionner les fichiers sur des colonnes fréquemment filtrées. Si les données sont partitionnées par une ou plusieurs colonnes filtrées, Redshift Spectrum peut tirer parti de l'élagage des partitions et éviter de scanner les partitions et les fichiers inutiles. Il est courant de les partitionner selon des critères temporels.
-
Vous pouvez vérifier l'efficacité de vos partitions et l'efficacité de votre requête Redshift Spectrum à l'aide de la requête suivante.
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;
La requête précédente montre ce qui suit :
-
total_partitions — Le nombre de partitions reconnues par AWS Glue Data Catalog
-
qualified_partitions — Le nombre de préfixes sur Amazon Simple Storage Service (Amazon S3) auxquels on accède pour la requête Redshift Spectrum
-
-
Vous pouvez également consulter la table
SVL_S3QUERY_SUMMARY
système pour en savoir plus sur l'efficacité de vos partitions et l'efficacité de votre requête Redshift Spectrum. Pour cela, utilisez l'instruction suivante.Select * From svl_s3query_summary Where query=pg_last_query_id();
La requête précédente renvoie encore plus d'informations, notamment
is_partitioned
s3_scanned_rows/bytes
, et dess3_returned_rows/bytes
valeurs en plus des fichiers montrant l'efficacité de l'élagage des partitions.
Pushdown des prédicats dans Redshift Spectrum
L'utilisation du pushdown des prédicats permet d'éviter de consommer des ressources dans le cluster Amazon Redshift. Vous pouvez transférer de nombreuses opérations SQL vers la couche Redshift Spectrum. Nous vous recommandons d'en profiter dans la mesure du possible.
Gardez à l’esprit les points suivants :
-
Vous pouvez évaluer complètement certains types d'opérations SQL au sein de la couche Redshift Spectrum, notamment les suivantes :
-
GROUP BY
clauses -
Conditions de comparaison et de correspondance de modèles (par exemple,)
LIKE
-
Fonctions d'agrégation (par exemple
COUNT
,SUM
,AVG
,MIN
, etMAX
) -
regex_replace
,to_upper
date_trunc
, et autres fonctions
-
-
Vous ne pouvez pas transférer certaines opérations vers la couche Redshift Spectrum, notamment
DISTINCT
et.ORDER BY
Effectuez cette opérationORDER BY
uniquement au niveau supérieur de la requête si possible, car le tri est effectué dans le nœud principal. -
Examinez votre
EXPLAIN
plan de requête pour vérifier si le transfert des prédicats est efficace. Pour rechercher des portions de Redshift Spectrum dans uneEXPLAIN
commande, suivez les étapes suivantes :-
S3 Seq Scan
-
S3 HashAggregate
-
S3 Query Scan
-
Scan Seq PartitionInfo
-
Partition Loop
-
-
Utilisez le plus petit nombre de colonnes dans votre requête. Redshift Spectrum peut éliminer les colonnes à scanner si les données sont au format Parquet ou ORC.
-
Utilisez largement les partitions pour le traitement parallèle et l'élimination des partitions, et maintenez la taille des fichiers à au moins 64 Mo si possible.
-
Réglez le
TABLE PROPERTIES
'numRows'='nnn'
si vous utilisezCREATE EXTERNAL TABLE
ouALTER TABLE
. Amazon Redshift n'analyse pas les tables externes pour générer des statistiques de table que l'optimiseur de requêtes utilise pour générer un plan de requêtes. Si les statistiques ne sont pas définies, Amazon Redshift part du principe que les tables externes sont les plus grandes et que les tables locales sont les plus petites.
Conseils de réglage des requêtes pour Redshift Spectrum
Nous vous recommandons de garder les points suivants à l'esprit lorsque vous ajustez vos requêtes :
-
Le nombre de nœuds Redshift Spectrum que votre cluster Amazon Redshift peut engager pour une requête est lié au nombre de tranches de votre cluster.
-
Le redimensionnement de votre cluster peut bénéficier aux profils de calcul locaux, aux profils de stockage et aux capacités de requête de la requête du lac de données Amazon S3.
-
Le planificateur de requêtes Amazon Redshift pousse les prédicats et les agrégations vers la couche de requêtes Redshift Spectrum lorsque cela est possible.
-
Lorsque de grandes quantités de données sont renvoyées depuis Amazon S3, le traitement est limité par les ressources de votre cluster.
-
Comme Redshift Spectrum évolue automatiquement pour traiter les demandes volumineuses, vos performances globales s'améliorent chaque fois que vous pouvez transférer le traitement vers la couche Redshift Spectrum.