Comment fonctionne le redimensionnement Elastic dans Amazon Redshift ?

Dernière mise à jour : 01/04/2021

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 à maintenir le même nombre de tranches dans le cluster cible. Avec le mappage de tranches, le temps nécessaire pour redimensionner un cluster est réduit. Au cours du processus de mappage de tranches, Amazon Redshift remanie les tranches de cluster vers les nouveaux nœuds de calcul de votre cluster cible.

Si vous prévoyez d'effectuer un redimensionnement Elastic 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 Elastic est uniquement disponible pour les clusters Amazon Redshift qui utilisent la plate-forme EC2-VPC.
  • Les opérations de redimensionnement Elastic nécessitent souvent moins de temps que les opérations de redimensionnement classiques. Les opérations de redimensionnement Elastic ne trient pas les tables ou ne réclament pas d'espace disque. À 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 ensuite les données aux nouveaux nœuds en fonction du style de distribution et exécute la commande ANALYZE pour mettre à jour ces informations. Par conséquent, un redimensionnement classique sur votre cluster Amazon Redshift peut prendre plus de temps qu'un redimensionnement Elastic.

Ré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 de l'interface de ligne de commande AWS (CLI AWS) 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 Elastic (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 Elastic ne crée pas de nouveau cluster. Les opérations de redimensionnement Elastic s'effectuent généralement en 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.

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 Elastic sur votre cluster Amazon Redshift :
  • Prenez un instantané avant de démarrer le processus de redimensionnement Elastic, en particulier si vous redimensionnez un nouveau cluster.
  • Utilisez la commande describe-node-configuration-options de la CLI AWS pour obtenir les configurations de nœuds possibles pour une opération de redimensionnement.
    Remarque : Si vous recevez des erreurs lors de l'exécution de la commande de la CLI AWS, vérifiez que vous utilisez la version la plus récente de l'interface.
  • Exécutez la commande VACUUM sur le cluster avant le redimensionnement. Le redimensionnement Elastic ne supprime pas automatiquement les lignes marquées pour suppression.
  • Utilisez la commande resize-cluster pour redimensionner votre cluster.

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

aws redshift describe-node-configuration-options --action-type resize-cluster --cluster <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 d'une commande CLI AWS, assurez-vous d'utiliser la version la plus récente de la CLI.
  • 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 Pourquoi une table d'un cluster Amazon Redshift utilise-t-elle plus ou moins d'espace de stockage sur disque que prévu ?
  • Lorsque vous effectuez un redimensionnement Elastic sur votre cluster Amazon Redshift, il peut entraîner une asymétrie des données entre les nœuds à cause d'une distribution inégale des tranches. 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 que si vous redimensionnez vers un cluster à nœud unique. Vous pouvez également effectuer un redimensionnement classique si vous souhaitez que vos tranches de nœud correspondent au nombre de tranches de votre type de nœud cible.