Comment fonctionne le redimensionnement Elastic dans Amazon Redshift ?

Dernière mise à jour: 2022-07-07

Je souhaite effectuer un redimensionnement Elastic sur mon cluster Amazon Redshift. Comment fonctionne le redimensionnement Elastic et quels sont les facteurs à prendre en compte pour utiliser le redimensionnement Elastic ?

Brève description

Amazon Redshift vous permet de migrer vers un certain nombre de nœuds lors d'un redimensionnement de cluster. Par défaut, Amazon Redshift vise à conserver le même nombre de tranches de données dans le cluster cible. Le mappage de tranches réduit le temps nécessaire pour redimensionner un cluster. Pendant le processus de mappage de tranches, Amazon Redshift réorganise les tranches de données du cluster vers les nouveaux nœuds de calcul de votre cluster cible. Pour le redimensionnement classique, toutes les lignes sont copiées vers le cluster, en les mappant à une tranche en fonction des paramètres de distribution. Pour le redimensionnement élastique, vous pouvez copier la totalité de la tranche de données vers un nœud où la tranche est mappée.

Si vous prévoyez d'effectuer un redimensionnement élastique sur votre cluster Amazon Redshift, tenez compte des éléments suivants :

  • Le redimensionnement Elastic ne trie pas les tables ou ne réclame pas d'espace disque. Exécutez VACUUM pour trier les tables et récupérer de l'espace disque.
  • Le redimensionnement élastique est uniquement disponible pour les clusters Amazon Redshift qui utilisent la plateforme EC2-VPC.
  • Le redimensionnement élastique nécessite souvent moins de temps qu'un redimensionnement classique. À titre de comparaison, les opérations de redimensionnement classiques allouent un nouveau cluster, tout en copiant les données de votre cluster source. L'opération de redimensionnement classique distribue d'abord les données aux nouveaux nœuds en fonction du style de distribution. Ensuite, il exécute la commande ANALYZE pour mettre à jour les statistiques de la table. Cela signifie qu'une opération de redimensionnement classique prend plus de temps qu'une opération de redimensionnement Elastic sur votre cluster Amazon Redshift.

Solution

Comment fonctionne le redimensionnement Elastic

Dans Amazon Redshift, le redimensionnement Elastic peut fonctionner différemment selon le type de nœud cible. Vérifiez si le type de nœud cible est le même que le type de nœud source.

Pour vérifier le type de nœud, connectez-vous à la console Amazon Redshift. Dans le menu de navigation, sélectionnez Clusters. La page Clusters indique le type de nœud sous chaque nom de cluster. Vous pouvez également utiliser la commande describe-clusters d'AWS Command Line Interface (AWS CLI) pour obtenir plus d'informations sur votre cluster Amazon Redshift :

aws redshift describe-clusters --region <Cluster Region>

Exemple 1 : le type de nœud cible est identique au type de nœud existant

Lorsque vous redimensionnez un cluster dans Amazon Redshift à l'aide d'un redimensionnement élastique (sans modifier le type de nœud), Amazon Redshift redistribue automatiquement les données vers les nouveaux nœuds. Contrairement au redimensionnement classique (qui alloue un nouveau cluster et lui transfère des données), le redimensionnement élastique ne crée pas un nouveau cluster. Un redimensionnement Elastic ne nécessite généralement que quelques minutes. Vous pouvez vous attendre à une légère augmentation du temps d'exécution des requêtes pendant que le redimensionnement Elastic effectue la redistribution des données en arrière-plan.

Remarque : votre cluster Amazon Redshift est temporairement indisponible pendant quelques minutes au cours de la migration des métadonnées. Pour plus d'informations sur le processus de redimensionnement élastique d'Amazon Redshift, consultez la section Redimensionnement élastique.

Exemple 2 : le type de nœud cible est différent du type de nœud existant

Si votre type de nœud a changé, Amazon Redshift crée un nouveau cluster et copie les données vers ce cluster à partir du dernier instantané. Pendant le transfert de données, votre cluster Amazon Redshift fonctionne en mode lecture seule et toutes les écritures sont bloquées. Une fois l'opération de redimensionnement terminée, Amazon Redshift met automatiquement à jour le point de terminaison du nouveau cluster pour qu'il corresponde au point de terminaison de votre cluster existant. Ensuite, toutes les connexions au cluster d'origine se ferment.

Limitations du nombre de nœuds DC2 et DS2

Si vous effectuez un redimensionnement Elastic sur votre cluster Amazon Redshift, prenez note des limitations suivantes pour les types de nœuds DC2 et DS2 :

  • Pour les types de nœuds dc2.large ou ds2.xlarge, utilisez la moitié ou le double du nombre actuel de nœuds. Par exemple, un cluster de 6 nœuds peut être redimensionné soit à 12 nœuds soit à 3 nœuds.
  • Pour les types de nœuds dc2.8xlarge, ds2.8xlarge, ra3.4xlarge ou ra3.16xlarge, utilisez entre la moitié et le double du nombre actuel de nœuds. Par exemple, un cluster avec 6 nœuds peut être redimensionné à 3, 4, 5, 7, 8, 9, 10, 11 ou 12 nœuds.

Bonnes pratiques relatives au redimensionnement Elastic

Tenez compte des bonnes pratiques suivantes lorsque vous effectuez un redimensionnement élastique sur votre cluster Amazon Redshift :

Voici un exemple d'utilisation de la commande describe-node-configuration-options :

aws redshift describe-node-configuration-options --action-type resize-cluster --cluster-identifier <Cluster Name> --region <Cluster Region>

Voici un exemple d'utilisation de la commande resize-cluster :

aws redshift resize-cluster --cluster-identifier  <Cluster Name> --cluster-type multi-node --node-type <Target Node Type> --number-of-nodes <Number of Target Nodes> --no-classic —region <Cluster Region>

Autres considérations

Passez en revue ces considérations supplémentaires lorsque vous effectuez un redimensionnement Elastic sur votre cluster Amazon Redshift :

  • Un instantané de cluster est requis pour un redimensionnement Elastic. Vous pouvez gérer les instantanés à l'aide de la console ou de la CLI et de l'API Amazon Redshift. Remarque : si vous recevez une erreur lors de l'exécution de la commande AWS CLI, assurez-vous d'utiliser la version la plus récente de l'interface de ligne de commande.
  • Une fois que vous avez lancé une opération de redimensionnement Elastic dans Amazon Redshift, vous ne pouvez pas l'annuler. Attendez que l'opération de redimensionnement se termine avant d'effectuer une autre opération de redimensionnement ou un redémarrage du cluster.
  • La nouvelle configuration de nœud doit disposer d'un espace de stockage suffisant pour les données existantes. Même lorsque vous ajoutez des nœuds, votre nouvelle configuration peut ne pas disposer d'un espace de stockage suffisant en raison de la façon dont les données sont redistribuées. Pour plus d'informations sur l’espace de stockage, consultez la section Pourquoi une table d'un cluster Amazon Redshift utilise-t-elle plus ou moins d'espace de stockage sur disque que prévu ?
  • L'exécution d'un redimensionnement élastique sur votre cluster Amazon Redshift peut entraîner une distorsion des données entre les nœuds en raison d'une distribution inégale des tranches de données. Si vous observez une asymétrie des données dans votre cluster Amazon Redshift, effectuez un redimensionnement classique à la place.
  • Effectuez un redimensionnement classique sur votre cluster Amazon Redshift s'il s'agit de la meilleure option pour votre cas d'utilisation. Par exemple, vous ne pouvez effectuer un redimensionnement classique si vous redimensionnez vers un cluster à nœud unique. Un redimensionnement Elastic vous permet d'ajouter ou de supprimer des nœuds du cluster en préservant le nombre de tranches de la configuration d'origine. Toutefois, cela peut introduire des variations de performance. Si vous souhaitez que vos tranches de nœud correspondent au nombre de tranches de votre type de nœud cible, utilisez un redimensionnement classique. Pour plus d'informations, consultez Redimensionnement des clusters dans Amazon Redshift.