Je veux migrer un système de gestion de base de données relationnelles (SGBDR) vers Amazon Redshift à l’aide d’AWS Database Migration Service (AWS DMS). Quelles sont les recommandations que je peux suivre lors de la migration d’une base de données SGBDR vers Amazon Redshift ?
Solution
Utilisez les bonnes pratiques décrites dans cet article pour vous aider à migrer les bases de données SGBDR vers Amazon Redshift à l’aide d’AWS DMS.
- Utilisez le chargement parallèle avec vos règles de définition de table lorsque vous migrez des données vers un point de terminaison Amazon Redshift. Pour plus d’informations sur l’utilisation du chargement parallèle et comment il peut être utilisé pour accélérer la migration, consultez la section Utilisation du chargement parallèle pour des tables, des vues et des collections spécifiques.
- Les versions 3.4.5 et ultérieures d’AWS DMS prennent en charge l’utilisation des paramètres de tâche ParallelLoad lors du chargement complet sur les points de terminaison cibles Amazon Redshift. Pour plus d’informations, consultez Paramètres de tâche de chargement complet multithread pour Amazon Redshift.
- Si vous migrez une grande quantité de données vers Amazon Redshift, augmentez les valeurs d’attribut de point de terminaison pour MaxFileSize et FileTransferUploadStreams. Cela peut contribuer à améliorer les performances du chargement complet. Augmentez ensuite la valeur CommitRate pour améliorer les performances.
- Comme AWS DMS ne prend pas en charge le mode LOB complet lorsque vous utilisez Amazon Redshift comme cible pour vos bases de données, assurez-vous de donner une valeur appropriée à LobMaxSize.
- Assurez-vous que vos tables Amazon Redshift disposent d’une clé primaire. Si votre table cible ne possède pas de clé primaire, les insertions sont effectuées en mode BatchApply. Mais comme les mises à jour et les suppressions sont appliquées une par une, cela affecte les performances. Assurez-vous donc qu’AWS DMS migre les données CDC par lots vers la cible Amazon Redshift afin d’éviter tout problème de performance.
- Ajustez les paramètres d’application par lots en fonction de la charge de travail afin de réduire le nombre de validations sur la cible. Les paramètres d’application par lots incluent BatchApplyTimeoutMin, BatchApplyTimeoutMax et BatchApplyMemoryLimit.
- Utilisez BatchSplitSize pour définir le nombre maximal de modifications appliquées par lot. La valeur par défaut est 0, ce qui signifie qu’aucune limite n’est appliquée.
- Créez des tables Amazon Redshift cibles avec les clés de distribution et de tri appropriées. Lorsqu’AWS DMS crée des tables pour des cibles Amazon Redshift, il crée des tables avec une clé de distribution par défaut et aucune clé de tri. Amazon Redshift stocke les données triées conformément à la clé de tri sur le disque. L’optimiseur de requêtes d’Amazon Redshift utilise l’ordre de tri pour déterminer les plans de requête optimaux. Ainsi, lorsque vous exécutez une requête, l’optimiseur de requête redistribue les lignes vers les nœuds de calcul selon les besoins pour effectuer des jointures et des agrégations. Pour plus d’informations, consultez Choisir la meilleure clé de tri et Utilisation des styles de distribution des données.
- Si votre charge de travail transactionnelle est importante, utilisez des paramètres similaires à ceux-ci. Ces exemples de paramètres signifient qu’un tampon de 8 000 Mo est rempli en 1 800 secondes, en utilisant 32 processus parallèles et avec une taille de fichier maximale de 250 Mo. Paramètres du point de terminaison Amazon Redshift :
MaxFileSize=250000;
Paramètres des tâches :
BatchApplyEnabled=true;
BatchSplitSize =8000;
BatchApplyTimeoutMax =1800;
BatchApplyTimeoutMin =1800;
ParallelApplyThreads=32;
ParallelApplyBufferSize=100;
-
Assurez-vous qu’il n’y a aucun verrou ni aucune session bloquante dans Amazon Redshift. Pour plus d’informations sur la libération de verrous, consultez la section Comment puis-je détecter et désactiver les verrous dans Amazon Redshift ?
-
Utilisez l’outil Amazon Redshift Workload Management (WLM) pour gérer votre charge de travail. Amazon Redshift WLM peut être utilisé pour définir plusieurs files d’attente de requêtes et pour acheminer les requêtes vers les files d’attente appropriées lors de l’exécution. Pour plus d’informations, consultez Gestion de la charge de travail.
Informations connexes
Utilisation d’une base de données Amazon Redshift comme cible pour AWS Database Migration Service
Comment puis-je utiliser Amazon Redshift comme point de terminaison cible pour ma tâche AWS DMS ?