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 désigner l'un des 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 la table. Par exemple, si le style de distribution AUTO est spécifié, Amazon Redshift affecte initialement le style de distribution ALL à une petite table. Lorsque la table s’agrandit, Amazon Redshift peut modifier le style de distribution sur KEY et choisir la clé primaire (ou une colonne de la clé primaire composite) comme clé de distribution. Si la table s’agrandit et qu’aucune des colonnes ne peut être la clé de distribution, Amazon Redshift change le style de distribution sur EVEN. La modification de style de distribution se produit en arrière-plan et son impact sur les requêtes des utilisateurs est minimal.

Pour afficher les actions qu’Amazon Redshift a effectuées automatiquement pour modifier une clé de distribution de table, consultez SVL_AUTO_WORKER_ACTION. Pour afficher les recommandations actuelles concernant la modification de la clé de distribution d’une table, consultez SVV_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. Elle est également appropriée lorsqu’il n’y a pas de choix clair entre une distribution KEY et une distribution ALL.

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 jonction, le nœud principal colocalise les lignes sur les tranches en fonction des valeurs des colonnes de jonction. De cette façon, les valeurs correspondantes des colonnes communes sont physiquement stockées 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 petites tables de dimension 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 requiert ni ne prend en charge le concept de partitionnement des données au sein des objets de la base de données. Vous n’avez pas besoin de créer des tablespaces 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 plus d'informations, consultez Exécution d’une copie complète