Styles de distribution - Amazon Redshift

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.

Styles de distribution

Lorsque vous créez une table, vous pouvez indiquer l'un des quatre styles de distribution suivants : AUTO, EVEN, KEY ou ALL.

Si vous ne spécifiez pas de style de distribution, Amazon Redshift utilise la distribution AUTO.

Distribution AUTO

Avec la distribution AUTO, Amazon Redshift attribue un style de distribution optimal en fonction de la taille des données de table. Par exemple, Amazon Redshift attribue initialement la distribution ALL à une petite table, puis attribue la distribution EVEN lorsque la table grandit. Lorsqu'une table passe de la distribution ALL à la distribution EVEN, l'utilisation du stockage peut légèrement changer. Le changement de distribution se produit en arrière-plan, en quelques secondes.

Lorsque vous définissez DISTSTYLE sur AUTO, Amazon Redshift peut modifier la distribution de vos données de table pour avoir un style de distribution basé sur les clés. Pour afficher les actions effectuées automatiquement par Amazon Redshift pour modifier une clé de distribution de table, consultezSVL_AUTO_WORKER_ACTION. Pour consulter les recommandations actuelles concernant la modification d'une clé de distribution de table, consultezSVV_ALTER_TABLE_RECOMMENDATIONS.

Pour afficher le style de distribution appliqué à une table, interrogez la vue du catalogue système PG_CLASS_INFO. Pour plus d'informations, consultez Affichage des styles de distribution. Si vous ne spécifiez pas de style de distribution avec l'instruction CREATE TABLE, Amazon Redshift applique la distribution AUTO.

Distribution EVEN

Le nœud principal distribue les lignes entre les tranches selon le principe du tourniquet (round robin), quelles que soient les valeurs d'une colonne donnée. La distribution EVEN est appropriée lorsqu'une table ne participe pas aux jointures. C'est également approprié lorsqu'il n'y a pas de choix clair entre la distribution KEY et la distribution ALL n'est pas distribuée.

Distribution KEY

Les lignes sont distribuées en fonction des valeurs dans une colonne. Le nœud principal place des valeurs correspondantes sur la même tranche de nœud. Si vous distribuez une paire de tables sur les clés de jointure, le nœud principal colocalise les lignes sur les tranches en fonction des valeurs dans les colonnes de jointure. De cette façon, les valeurs correspondantes des colonnes communes sont stockées physiquement ensemble.

Distribution ALL

Une copie de la table complète est distribuée à chaque nœud. Là où la distribution EVEN ou la distribution KEY place uniquement une partie des lignes de la table sur chaque nœud, la distribution ALL vérifie que chaque ligne est colocalisée pour chaque jointure à laquelle la table participe.

La distribution ALL multiplie le stockage requis par le nombre de nœuds du cluster. Il faut donc beaucoup plus de temps pour charger, mettre à jour ou insérer des données dans plusieurs tables. La distribution ALL convient uniquement aux tables relativement lentes ; c'est-à-dire les tables qui ne sont pas mises à jour fréquemment ou de façon extensive. Le coût de la redistribution de petites tables au cours d'une requête étant faible, il n'y a pas d'avantage significatif à définir des tables de petites dimensions comme DISTSTYLE ALL.

Note

Une fois que vous avez spécifié un style de distribution pour une colonne, Amazon Redshift gère la distribution des données au niveau du cluster. Amazon Redshift ne nécessite ni ne prend en charge le concept de partitionnement des données au sein des objets de base de données. Vous n'avez pas besoin de créer des espaces de table ou de définir des schémas de partitionnement pour les tables.

Dans certains scénarios, vous pouvez modifier le style de distribution d'une table une fois qu'elle a été créée. Pour plus d'informations, consultez ALTER TABLE. Pour les scénarios dans lesquels vous ne pouvez pas modifier le style de distribution d’une table après sa création, vous pouvez recréer la table et la remplir avec une copie complète. Pour de plus amples informations, veuillez consulterExécution d'une copie complète