

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.

# Utilisation d'une base de données Amazon Redshift comme cible pour AWS Database Migration Service
<a name="CHAP_Target.Redshift"></a>

Vous pouvez migrer les données vers les bases de données Amazon Redshift à l'aide de. AWS Database Migration Service Amazon Redshift est un service d’entrepôt des données entièrement géré dans le cloud. Avec une base de données Amazon Redshift en tant que cible, vous pouvez migrer les données provenant de tous les autres bases de données sources prises en charge.

Vous pouvez utiliser Amazon Redshift Serverless comme cible pour. AWS DMS Pour plus d'informations, consultez [Utilisation AWS DMS avec Amazon Redshift Serverless comme cibleAmazon Redshift sans serveur](#CHAP_Target.Redshift.RSServerless), ci-après.

 Le cluster Amazon Redshift doit se trouver dans le même AWS compte et dans la même AWS région que l'instance de réplication. 

Lors d'une migration de base de données vers Amazon Redshift, déplacez AWS DMS d'abord les données vers un compartiment Amazon S3. Lorsque les fichiers se trouvent dans un compartiment Amazon S3, AWS DMS ils sont transférés vers les tables appropriées de l'entrepôt de données Amazon Redshift. AWS DMS crée le compartiment S3 dans la même AWS région que la base de données Amazon Redshift. L'instance de AWS DMS réplication doit être située dans cette même AWS région. 

Si vous utilisez l'API AWS CLI ou DMS pour migrer des données vers Amazon Redshift, configurez Gestion des identités et des accès AWS un rôle (IAM) pour autoriser l'accès à S3. Pour plus d'informations sur la création de ce rôle IAM, consultez [Création des rôles IAM à utiliser avec AWS DMS](security-iam.md#CHAP_Security.APIRole).

Le point de terminaison Amazon Redshift automatise complètement les éléments suivants :
+ la génération de schéma et le mappage de type de données ;
+ le chargement complet des tables de base de données source ;
+ le chargement incrémentiel des modifications apportées aux tables source ;
+ l'application des modifications de schéma en langage de définition de données (DDL) apportées aux tables de la source ;
+ la synchronisation entre le chargement complet et les traitements de capture des données modifiées (CDC).

AWS Database Migration Service prend en charge à la fois le chargement complet et les opérations de traitement des modifications. AWS DMS lit les données de la base de données source et crée une série de fichiers de valeurs séparées par des virgules (.csv). Pour les opérations de chargement complet, AWS DMS crée des fichiers pour chaque table. AWS DMS copie ensuite les fichiers de table pour chaque table dans un dossier distinct dans Amazon S3. Lorsque les fichiers sont chargés sur Amazon S3, AWS DMS envoie une commande de copie et les données contenues dans les fichiers sont copiées dans Amazon Redshift. Pour les opérations de traitement des modifications, AWS DMS copie les modifications nettes dans les fichiers .csv. AWS DMS télécharge ensuite les fichiers net change sur Amazon S3 et copie les données sur Amazon Redshift.

Pour plus d'informations sur l'utilisation d'Amazon Redshift comme cible pour AWS DMS, consultez les sections suivantes : 

**Topics**
+ [Conditions préalables à l'utilisation d'une base de données Amazon Redshift comme cible pour AWS Database Migration Service](#CHAP_Target.Redshift.Prerequisites)
+ [Privilèges requis pour utiliser Redshift en tant que cible](#CHAP_Target.Redshift.Privileges)
+ [Limitations relatives à l'utilisation d'Amazon Redshift comme cible pour AWS Database Migration Service](#CHAP_Target.Redshift.Limitations)
+ [Configuration d'une base de données Amazon Redshift en tant que cible pour AWS Database Migration Service](#CHAP_Target.Redshift.Configuration)
+ [Utilisation d'un routage VPC amélioré avec Amazon Redshift comme cible pour AWS Database Migration Service](#CHAP_Target.Redshift.EnhancedVPC)
+ [Création et utilisation de AWS KMS clés pour chiffrer les données cibles d'Amazon Redshift](#CHAP_Target.Redshift.KMSKeys)
+ [Paramètres du point de terminaison lors de l'utilisation d'Amazon Redshift comme cible pour AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib)
+ [Utilisation d’une clé de chiffrement des données et d’un compartiment Amazon S3 comme stockage intermédiaire](#CHAP_Target.Redshift.EndpointSettings)
+ [Paramètres de tâche multithread pour Amazon Redshift](#CHAP_Target.Redshift.ParallelApply)
+ [Types de données cibles pour Amazon Redshift](#CHAP_Target.Redshift.DataTypes)
+ [Utilisation AWS DMS avec Amazon Redshift Serverless comme cible](#CHAP_Target.Redshift.RSServerless)

## Conditions préalables à l'utilisation d'une base de données Amazon Redshift comme cible pour AWS Database Migration Service
<a name="CHAP_Target.Redshift.Prerequisites"></a>

La liste suivante décrit les conditions requises pour l’utilisation d’Amazon Redshift en tant que cible pour la migration des données :
+ Utilisez la console AWS de gestion pour lancer un cluster Amazon Redshift. Notez les informations de base concernant votre AWS compte et votre cluster Amazon Redshift, telles que votre mot de passe, votre nom d'utilisateur et le nom de la base de données. Vous avez besoin de ces valeurs lors de la création du point de terminaison cible Amazon Redshift. 
+ Le cluster Amazon Redshift doit se trouver dans le même AWS compte et dans la même AWS région que l'instance de réplication.
+ L'instance de AWS DMS réplication a besoin d'une connectivité réseau avec le point de terminaison Amazon Redshift (nom d'hôte et port) utilisé par votre cluster.
+ AWS DMS utilise un compartiment Amazon S3 pour transférer des données vers la base de données Amazon Redshift. Pour que AWS DMS crée le compartiment, la console doit utiliser un rôle IAM `dms-access-for-endpoint`. Si vous utilisez l'API AWS CLI ou DMS pour créer une migration de base de données avec Amazon Redshift comme base de données cible, vous devez créer ce rôle IAM. Pour plus d'informations sur la création de ce rôle, consultez la page [Création des rôles IAM à utiliser avec AWS DMS](security-iam.md#CHAP_Security.APIRole). 
+ AWS DMS convertit BLOBs CLOBs, et NCLOBs en un VARCHAR sur l'instance Amazon Redshift cible. Amazon Redshift ne prend pas en charge les types de données VARCHAR supérieurs à 64 Ko. Vous ne pouvez donc pas stocker de données traditionnelles sur Amazon LOBs Redshift. 
+ Définissez le paramètre de tâche de métadonnées cible [BatchApplyEnabled](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md)sur `true` for AWS DMS pour gérer les modifications apportées aux tables cibles Amazon Redshift pendant le CDC. Une clé primaire sur la table source et la table cible est requise. Sans clé primaire, les modifications sont appliquées instruction par instruction. Ce qui peut nuire aux performances des tâches pendant la CDC en provoquant une latence cible et en affectant la file d'attente de validation du cluster. 
+ Lorsque la sécurité au niveau des lignes est activée sur les tables de Redshift, vous devez accorder les autorisations appropriées à tous les utilisateurs de votre DMS.

## Privilèges requis pour utiliser Redshift en tant que cible
<a name="CHAP_Target.Redshift.Privileges"></a>

Utilisez la commande GRANT pour définir les privilèges d’accès pour un utilisateur ou un groupe d’utilisateurs. Les privilèges incluent les options d'accès telles que pouvoir lire les données des tables et des vues, écrire des données et créer des tables. Pour plus d’informations sur l’utilisation de GRANT avec Amazon Redshift, consultez [GRANT](https://docs.aws.amazon.com//redshift/latest/dg/r_GRANT.html) dans le *Guide du développeur de base de données Amazon Redshift*. 

La syntaxe suivante s’applique à accorder des privilèges spécifiques pour une table, une base de données, un schéma, une fonction, une procédure ou des privilèges de niveau langue sur les tables et les vues Amazon Redshift.

```
GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] }
    ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] }
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
    ON DATABASE db_name [, ...]
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON SCHEMA schema_name [, ...]
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON { FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] | ALL FUNCTIONS IN SCHEMA schema_name [, ...] }
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON { PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] | ALL PROCEDURES IN SCHEMA schema_name [, ...] }
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT USAGE 
    ON LANGUAGE language_name [, ...]
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]
```

La syntaxe suivante s'applique aux privilèges de niveau colonne sur les tables et les vues Amazon Redshift. 

```
GRANT { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }
     ON { [ TABLE ] table_name [, ...] }
     TO { username | GROUP group_name | PUBLIC } [, ...]
```

Voici la syntaxe du privilège ASSUMEROLE accordé aux utilisateurs et aux groupes ayant un rôle spécifié.

```
GRANT ASSUMEROLE
    ON { 'iam_role' [, ...] | ALL }
    TO { username | GROUP group_name | PUBLIC } [, ...]
    FOR { ALL | COPY | UNLOAD } [, ...]
```

## Limitations relatives à l'utilisation d'Amazon Redshift comme cible pour AWS Database Migration Service
<a name="CHAP_Target.Redshift.Limitations"></a>

Les limitations suivantes s’appliquent lors de l’utilisation d’une base de données Amazon Redshift en tant que cible :
+ N’activez pas la gestion des versions pour le compartiment S3 que vous utilisez comme stockage intermédiaire pour votre cible Amazon Redshift. Si vous avez besoin de la gestion des versions S3, utilisez des politiques de cycle de vie pour supprimer les anciennes versions de manière active. Dans le cas contraire, la connexion de test du point de terminaison risque d’échouer en raison du délai d’attente d’appel `list-object` S3. Pour créer une politique de cycle de vie pour un compartiment S3, consultez [Gestion du cycle de vie de votre stockage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). Pour supprimer une version d’un objet S3, consultez [Suppression des versions d’objet d’un compartiment activé pour la gestion des versions](https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjectVersions.html).
+ La commande DDL suivante n'est pas prise en charge :

  ```
  ALTER TABLE table name MODIFY COLUMN column name data type;
  ```
+  AWS DMS Impossible de migrer ou de répliquer les modifications apportées à un schéma dont le nom commence par un trait de soulignement (\$1). Si vous avez des schémas dont le nom commence par un trait de soulignement, utilisez les transformations de mappage pour renommer le schéma sur la cible. 
+  Amazon Redshift ne prend pas en charge une VARCHARs taille supérieure à 64 Ko. LOBs provenant de bases de données traditionnelles ne peuvent pas être stockées dans Amazon Redshift.
+  L'application d'une instruction DELETE à une table avec une clé primaire à plusieurs colonnes n'est pas prise en charge lorsque l'un des noms de colonne de clé primaire utilise un mot réservé. Pour obtenir la liste des mots réservés Amazon Redshift, consultez [cette page](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html).
+ Vous pouvez rencontrer des problèmes de performances si votre système source exécute des opérations UPDATE sur la clé primaire d’une table source. Ces problèmes de performances se produisent lors de l’application de modifications à la cible. Cela est dû au fait que les opérations UPDATE (et DELETE) dépendent de la valeur de la clé primaire pour identifier la ligne cible. Si vous mettez à jour la clé primaire d’une table source, votre journal des tâches contiendra des messages tels que les suivants :

  ```
  Update on table 1 changes PK to a PK that was previously updated in the same bulk update.
  ```
+ DMS ne prend pas en charge les noms DNS personnalisés lors de la configuration d'un point de terminaison pour un cluster Redshift, et vous devez utiliser le nom DNS fourni par Amazon. Étant donné que le cluster Amazon Redshift doit se trouver dans le même AWS compte et dans la même région que l'instance de réplication, la validation échoue si vous utilisez un point de terminaison DNS personnalisé.
+ Le délai d’expiration des sessions inactives par défaut d’Amazon Redshift est de 4 heures. Lorsqu’il n’y a aucune activité dans le cadre de la tâche de réplication DMS, Redshift déconnecte la session au bout de 4 heures. Des erreurs peuvent survenir si DMS ne parvient pas à se connecter et doit éventuellement redémarrer. Pour contourner le problème, définissez une limite SESSION TIMEOUT supérieure à 4 heures pour l’utilisateur de réplication DMS. Vous pouvez également consulter la description de [ALTER USER](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html) dans le *Guide du développeur de base de données Amazon Redshift*.
+ Lors de AWS DMS la réplication des données de la table source sans clé principale ou unique, la latence du CDC peut être élevée, ce qui se traduit par un niveau de performance inacceptable.
+ La troncature des partitions n'est pas prise en charge lors de la réplication CDC d'une source Oracle vers une cible Redshift.
+ Des enregistrements dupliqués peuvent apparaître dans les tables cibles car Amazon Redshift n'applique pas les clés primaires et AWS DMS peut rejouer le CDC lorsqu'une tâche est reprise. Pour éviter les doublons, utilisez le `ApplyErrorInsertPolicy=INSERT_RECORD` paramètre. Pour de plus amples informations, veuillez consulter [Paramètres de traitement des erreurs pour une tâche](CHAP_Tasks.CustomizingTasks.TaskSettings.ErrorHandling.md). Vous pouvez également mettre en œuvre des procédures de détection des doublons et de nettoyage après la migration au niveau de l'application.

## Configuration d'une base de données Amazon Redshift en tant que cible pour AWS Database Migration Service
<a name="CHAP_Target.Redshift.Configuration"></a>

AWS Database Migration Service doit être configuré pour fonctionner avec l'instance Amazon Redshift. Le tableau suivant décrit les propriétés de configuration disponibles pour le point de terminaison Amazon Redshift.


| Propriété | Description | 
| --- | --- | 
| serveur | Nom du cluster Amazon Redshift que vous utilisez. | 
| port | Numéro de port d’Amazon Redshift. La valeur par défaut est 5439. | 
| nom d’utilisateur | Nom d’utilisateur Amazon Redshift d’un utilisateur enregistré. | 
| mot de passe | Mot de passe de l'utilisateur nommé dans la propriété de nom d'utilisateur. | 
| database | Nom de l’entrepôt des données (service) Amazon Redshift que vous utilisez. | 

Si vous souhaitez ajouter des attributs de chaîne de connexion supplémentaires au point de terminaison Amazon Redshift, vous pouvez spécifier les attributs `maxFileSize` et `fileTransferUploadStreams`. Pour plus d'informations sur ces attributs, consultez la page [Paramètres du point de terminaison lors de l'utilisation d'Amazon Redshift comme cible pour AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib).

## Utilisation d'un routage VPC amélioré avec Amazon Redshift comme cible pour AWS Database Migration Service
<a name="CHAP_Target.Redshift.EnhancedVPC"></a>

Si vous utilisez le routage VPC amélioré avec votre cible Amazon Redshift, l’ensemble du trafic COPY entre votre cluster Amazon Redshift et vos référentiels de données passe par votre VPC. Étant donné que le routage VPC amélioré affecte la manière dont Amazon Redshift accède aux autres ressources, les commandes COPY risquent d’échouer si vous n’avez pas configuré correctement votre VPC.

AWS DMS peut être affecté par ce comportement car il utilise la commande COPY pour déplacer des données dans S3 vers un cluster Amazon Redshift.

Voici les étapes à suivre AWS DMS pour charger des données dans une cible Amazon Redshift :

1. AWS DMS copie les données de la source vers des fichiers .csv sur le serveur de réplication.

1. AWS DMS utilise le AWS SDK pour copier les fichiers .csv dans un compartiment S3 de votre compte.

1. AWS DMS utilise ensuite la commande COPY dans Amazon Redshift pour copier les données des fichiers .csv dans S3 vers une table appropriée dans Amazon Redshift.

Si le routage VPC amélioré n'est pas activé, Amazon Redshift achemine le trafic via Internet, y compris le trafic vers d'autres services du réseau. AWS Si la fonction n'est pas activée, vous n'avez pas à configurer le chemin d'accès réseau. Si la fonction est activée, vous devez créer spécifiquement un chemin d'accès réseau entre le VPC de votre cluster et vos ressources de données. Pour plus d’informations sur la configuration requise, consultez [Routage VPC amélioré](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) dans la documentation d’Amazon Redshift. 

## Création et utilisation de AWS KMS clés pour chiffrer les données cibles d'Amazon Redshift
<a name="CHAP_Target.Redshift.KMSKeys"></a>

Vous pouvez chiffrer vos données cibles transmises à Amazon S3 avant de les copier sur Amazon Redshift. Pour ce faire, vous pouvez créer et utiliser des AWS KMS clés personnalisées. Vous pouvez utiliser la clé que vous avez créée pour chiffrer vos données cibles à l’aide de l’un des mécanismes suivants lorsque vous créez le point de terminaison cible Amazon Redshift :
+ Utilisez l'option suivante lorsque vous exécutez la commande `create-endpoint` à l'aide de l' AWS CLI.

  ```
  --redshift-settings '{"EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "your-kms-key-ARN"}'
  ```

  Ici, `your-kms-key-ARN` est l'Amazon Resource Name (ARN) pour votre clé KMS. Pour de plus amples informations, veuillez consulter [Utilisation d’une clé de chiffrement des données et d’un compartiment Amazon S3 comme stockage intermédiaire](#CHAP_Target.Redshift.EndpointSettings).
+ Définissez l'attribut de connexion supplémentaire `encryptionMode` à la valeur `SSE_KMS` et l'attribut de connexion supplémentaire `serverSideEncryptionKmsKeyId` à l'ARN de votre clé KMS. Pour de plus amples informations, veuillez consulter [Paramètres du point de terminaison lors de l'utilisation d'Amazon Redshift comme cible pour AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib).

Pour chiffrer les données cibles Amazon Redshift à l'aide d'une clé KMS, vous avez besoin Gestion des identités et des accès AWS d'un rôle (IAM) autorisé à accéder aux données Amazon Redshift. Ce rôle IAM est ensuite accessible dans une stratégie (stratégie de clé) attachée à la clé de chiffrement que vous créez. Pour ce faire, créez les éléments suivants dans votre console IAM :
+ Un rôle IAM avec une politique AWS gérée.
+ Une clé KMS avec une stratégie de clé qui fait référence à ce rôle.

Les procédures suivantes décrivent la marche à suivre.

**Pour créer un rôle IAM avec la politique gérée requise AWS**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation, choisissez **Rôles**. La page **Rôles** s'ouvre.

1. Choisissez **Créer un rôle**. La page **Créer un rôle** s'ouvre.

1. Choisissez **Service AWS ** en tant qu’entité de confiance, puis **DMS** en tant que service utilisant le rôle.

1. Choisissez **Suivant : Autorisations**. La page **Attach permissions policies (Attacher des stratégies d'autorisation)** s'affiche.

1. Recherchez et sélectionnez la stratégie `AmazonDMSRedshiftS3Role`.

1. Choisissez **Suivant : Balises**. La page **Ajouter des balises** s’affiche. Ici, vous pouvez ajouter toutes les balises souhaitées.

1. Choisissez **Next: Review (Suivant : Vérification)** et vérifiez vos résultats.

1. Si les paramètres correspondent à vos besoins, saisissez un nom pour le rôle (par exemple, `DMS-Redshift-endpoint-access-role`) et une description supplémentaire si vous le souhaitez, puis choisissez **Créer un rôle**. La page **Rôles** s'ouvre avec un message indiquant que votre rôle a été créé.

Vous avez désormais créé le nouveau rôle pour accéder aux ressources Amazon Redshift en vue du chiffrement avec un nom spécifié, par exemple `DMS-Redshift-endpoint-access-role`.

**Pour créer une clé de AWS KMS chiffrement avec une politique de clé qui fait référence à votre rôle IAM**
**Note**  
Pour plus d'informations sur le AWS DMS fonctionnement des clés de AWS KMS chiffrement, consultez[Configuration d'une clé de chiffrement et spécification AWS KMS des autorisations](CHAP_Security.md#CHAP_Security.EncryptionKey).

1. Connectez-vous à la console AWS Key Management Service (AWS KMS) AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/kms.](https://console.aws.amazon.com/kms)

1. Pour modifier le Région AWS, utilisez le sélecteur de région dans le coin supérieur droit de la page.

1. Dans le panneau de navigation, choisissez **Clés gérées par le client**.

1. Choisissez **Create key**. La page **Configurer la clé** s'ouvre.

1. Pour **Type de clé**, choisissez **Symétrique**.
**Note**  
Lorsque vous créez cette clé, vous ne pouvez créer qu'une clé symétrique, car tous les AWS services, tels qu'Amazon Redshift, ne fonctionnent qu'avec des clés de chiffrement symétriques.

1. Choisissez **Options avancées**. Pour **Origine des éléments de clé**, assurez-vous que **KMS** est choisi, puis choisissez **Suivant**. La page **Ajouter des étiquettes** s'ouvre.

1. Dans **Créer un alias et une description**, entrez un alias pour la clé (par exemple, `DMS-Redshift-endpoint-encryption-key`) et toute description supplémentaire.

1. Pour **Balises**, ajoutez les balises que vous souhaitez pour vous aider à identifier la clé et suivre son utilisation, puis choisissez **Suivant**. La page **Définir des autorisations d'administration de clé** s'ouvre et affiche une liste d'utilisateurs et de rôles parmi lesquels vous pouvez choisir.

1. Ajoutez les utilisateurs et les rôles que vous souhaitez voir gérer la clé. Assurez-vous que ces utilisateurs et ces rôles ont les autorisations requises pour gérer la clé. 

1. Pour **Suppression de clé**, choisissez si les administrateurs de clé peuvent supprimer celle-ci, puis choisissez **Suivant**. La page **Définir des autorisations d'utilisation de clé** s'ouvre et affiche une liste supplémentaire d'utilisateurs et de rôles parmi lesquels vous pouvez choisir.

1. Pour **Ce compte**, choisissez les utilisateurs disponibles pour lesquels vous souhaitez effectuer des opérations de chiffrement sur des cibles Amazon Redshift. Choisissez également le rôle que vous avez créé précédemment dans **Rôles** pour activer l’accès au chiffrement des objets cibles Amazon Redshift, par exemple `DMS-Redshift-endpoint-access-role`.

1. Si vous souhaitez ajouter d'autres comptes ne figurant pas dans la liste pour avoir ce même accès, dans **Autres AWS comptes**, choisissez **Ajouter un autre AWS compte**, puis cliquez sur **Suivant**. La page **Réviser et modifier la stratégie de clé** s'ouvre, affichant le JSON de la stratégie de clé que vous pouvez réviser et modifier en saisissant les informations dans le JSON existant. Ici, vous pouvez voir où la stratégie clé fait référence au rôle et aux utilisateurs (par exemple, `Admin` et `User1`) que vous avez choisis à l'étape précédente. Vous pouvez également voir les actions clés autorisées pour les différents mandataires (utilisateurs et rôles), comme illustré dans l'exemple suivant.

------
#### [ JSON ]

****  

   ```
   {
       "Id": "key-consolepolicy-3",
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Enable IAM User Permissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:root"
                   ]
               },
               "Action": "kms:*",
               "Resource": "*"
           },
           {
               "Sid": "Allow access for Key Administrators",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:role/Admin"
                   ]
               },
               "Action": [
                   "kms:Create*",
                   "kms:Describe*",
                   "kms:Enable*",
                   "kms:List*",
                   "kms:Put*",
                   "kms:Update*",
                   "kms:Revoke*",
                   "kms:Disable*",
                   "kms:Get*",
                   "kms:Delete*",
                   "kms:TagResource",
                   "kms:UntagResource",
                   "kms:ScheduleKeyDeletion",
                   "kms:CancelKeyDeletion"
               ],
               "Resource": "*"
           },
           {
               "Sid": "Allow use of the key",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:role/DMS-Redshift-endpoint-access-role",
                       "arn:aws:iam::111122223333:role/Admin",
                       "arn:aws:iam::111122223333:role/User1"
                   ]
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:DescribeKey"
               ],
               "Resource": "*"
           },
           {
               "Sid": "Allow attachment of persistent resources",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:role/DMS-Redshift-endpoint-access-role",
                       "arn:aws:iam::111122223333:role/Admin",
                       "arn:aws:iam::111122223333:role/User1"
                   ]
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:ListGrants",
                   "kms:RevokeGrant"
               ],
               "Resource": "*",
               "Condition": {
                   "Bool": {
                       "kms:GrantIsForAWSResource": true
                   }
               }
           }
       ]
   }
   ```

------

1. Choisissez **Finish** (Terminer). La page **Clés de chiffrement** s'ouvre avec un message indiquant que votre AWS KMS key compte a été créé.

Vous venez de créer une nouvelle clé KMS avec un alias spécifié (par exemple, `DMS-Redshift-endpoint-encryption-key`). Cette clé permet AWS DMS de chiffrer les données cibles Amazon Redshift.

## Paramètres du point de terminaison lors de l'utilisation d'Amazon Redshift comme cible pour AWS DMS
<a name="CHAP_Target.Redshift.ConnectionAttrib"></a>

Vous pouvez utiliser des paramètres de point de terminaison pour configurer la base de données cible Amazon Redshift comme si vous utilisiez des attributs de connexion supplémentaires. Vous spécifiez les paramètres lorsque vous créez le point de terminaison cible à l'aide de la AWS DMS console ou à l'aide de la `create-endpoint` commande dans le [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), avec la syntaxe `--redshift-settings '{"EndpointSetting": "value", ...}'` JSON.

Les paramètres de point de terminaison que vous pouvez utiliser avec Amazon Redshift en tant que cible sont indiqués dans le tableau suivant.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/dms/latest/userguide/CHAP_Target.Redshift.html)

## Utilisation d’une clé de chiffrement des données et d’un compartiment Amazon S3 comme stockage intermédiaire
<a name="CHAP_Target.Redshift.EndpointSettings"></a>

Vous pouvez utiliser les paramètres de point de terminaison cible Amazon Redshift pour configurer les éléments suivants :
+ Une clé de chiffrement de AWS KMS données personnalisée. Vous pouvez ensuite utiliser cette clé pour chiffrer vos données transmises à Amazon S3 avant qu’elles ne soient copiées sur Amazon Redshift.
+ Un compartiment S3 personnalisé en tant que stockage intermédiaire pour les données migrées vers Amazon Redshift.
+ Mappez un booléen en tant que booléen provenant d’une source PostgreSQL. Par défaut, un type BOOLEAN est migré au format varchar(1). Vous pouvez indiquer à `MapBooleanAsBoolean` d’autoriser votre cible Redshift à migrer le type booléen en tant que booléen, comme illustré dans l’exemple suivant.

  ```
  --redshift-settings '{"MapBooleanAsBoolean": true}'
  ```

  Notez que vous devez définir ce paramètre à la fois sur les points de terminaison sources et cibles pour qu’il prenne effet.

### Paramètres de clé KMS pour le chiffrement des données
<a name="CHAP_Target.Redshift.EndpointSettings.KMSkeys"></a>

Les exemples suivants illustrent la configuration d'une clé KMS personnalisée pour chiffrer vos données transmises à S3. Pour commencer, vous pouvez effectuer l'appel `create-endpoint` suivant à l’aide de l' AWS CLI.

```
aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target 
--engine-name redshift --username your-username --password your-password 
--server-name your-server-name --port 5439 --database-name your-db-name 
--redshift-settings '{"EncryptionMode": "SSE_KMS", 
"ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/24c3c5a1-f34a-4519-a85b-2debbef226d1"}'
```

Ici, l'objet JSON spécifié par l'option `--redshift-settings` définit deux paramètres. Le premier est le paramètre `EncryptionMode` avec la valeur `SSE_KMS`. L'autre est le paramètre `ServerSideEncryptionKmsKeyId` avec la valeur `arn:aws:kms:us-east-1:111122223333:key/24c3c5a1-f34a-4519-a85b-2debbef226d1`. Cette valeur est un Amazon Resource Name (ARN) pour votre clé KMS personnalisée.

Par défaut, le chiffrement de données S3 a lieu à l’aide du chiffrement côté serveur S3. Pour la cible Amazon Redshift de l’exemple précédent, cela équivaut à spécifier ses paramètres de point de terminaison, comme dans l’exemple suivant.

```
aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target 
--engine-name redshift --username your-username --password your-password 
--server-name your-server-name --port 5439 --database-name your-db-name 
--redshift-settings '{"EncryptionMode": "SSE_S3"}'
```

Pour plus d’informations sur l’utilisation du chiffrement côté serveur S3, consultez [Protection des données à l’aide du chiffrement côté serveur](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) dans le *Guide de l’utilisateur Amazon Simple Storage Service*.

**Note**  
Vous pouvez également utiliser la commande CLI `modify-endpoint` pour modifier la valeur du paramètre `EncryptionMode` d’un point de terminaison existant de `SSE_KMS` à `SSE_S3`. Vous ne pouvez pas modifier la valeur `EncryptionMode` de `SSE_S3` à `SSE_KMS`.

### Paramètres du compartiment Amazon S3
<a name="CHAP_Target.Redshift.EndpointSettings.S3Buckets"></a>

Lorsque vous migrez des données vers un point de terminaison cible Amazon Redshift, utilisez AWS DMS un compartiment Amazon S3 par défaut comme stockage de tâches intermédiaire avant de copier les données migrées vers Amazon Redshift. Par exemple, les exemples indiqués pour la création d’un point de terminaison cible Amazon Redshift avec une clé de chiffrement des données AWS KMS utilisent ce compartiment S3 par défaut (voir [Paramètres de clé KMS pour le chiffrement des données](#CHAP_Target.Redshift.EndpointSettings.KMSkeys)). 

Vous pouvez plutôt spécifier un compartiment S3 personnalisé pour ce stockage intermédiaire en incluant les paramètres suivants dans la valeur de votre `--redshift-settings` option sur la AWS CLI `create-endpoint` commande :
+ `BucketName` : chaîne que vous spécifiez comme le nom de stockage du compartiment S3. Si votre rôle d’accès au service est basé sur la politique `AmazonDMSRedshiftS3Role`, cette valeur doit avoir le préfixe `dms-`, par exemple, `dms-my-bucket-name`.
+ `BucketFolder` : (Facultatif) chaîne que vous pouvez spécifier comme nom du dossier de stockage dans le compartiment S3 spécifié.
+ `ServiceAccessRoleArn` : ARN d’un rôle IAM qui autorise un accès administratif au compartiment S3. Généralement, vous créez ce rôle en fonction de la stratégie `AmazonDMSRedshiftS3Role`. Pour obtenir un exemple, consultez la procédure permettant de créer un rôle IAM avec la stratégie gérée par AWS requise dans [Création et utilisation de AWS KMS clés pour chiffrer les données cibles d'Amazon Redshift](#CHAP_Target.Redshift.KMSKeys).
**Note**  
Si vous spécifiez l'ARN d'un autre rôle IAM à l'aide de l'option `--service-access-role-arn` de la commande `create-endpoint`, cette option de rôle IAM est prioritaire.

L’exemple suivant montre comment utiliser ces paramètres pour spécifier un compartiment Amazon S3 personnalisé dans l’appel `create-endpoint` suivant à l’aide d’ AWS CLI. 

```
aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target 
--engine-name redshift --username your-username --password your-password 
--server-name your-server-name --port 5439 --database-name your-db-name 
--redshift-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", 
"BucketName": "your-bucket-name", "BucketFolder": "your-bucket-folder-name"}'
```

## Paramètres de tâche multithread pour Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply"></a>

Vous pouvez améliorer les performances des tâches de chargement complet et de capture des données de modification (CDC) pour un point de terminaison cible Amazon Redshift en utilisant des paramètres de tâche multithread. Ils vous permettent de spécifier le nombre de threads simultanés et le nombre d’enregistrements à stocker dans un tampon.

### Paramètres de tâche de chargement complet multithread pour Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply.FullLoad"></a>

Pour améliorer les performances de chargement complet, vous pouvez utiliser les paramètres de tâche `ParallelLoad*` suivants :
+ `ParallelLoadThreads` : spécifie le nombre de threads simultanés utilisés par DMS pendant un chargement complet pour transférer des enregistrements de données vers un point de terminaison cible Amazon Redshift. La valeur par défaut est zéro (0) et la valeur maximale est 32. Pour de plus amples informations, veuillez consulter [Paramètres de tâche de chargement complet](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md).

  Définissez l’attribut `enableParallelBatchInMemoryCSVFiles` sur `false` lorsque vous utilisez le paramètre de tâche `ParallelLoadThreads`. L’attribut améliore les performances des tâches de chargement complet multithread de grande taille en permettant à DMS d’écrire sur le disque plutôt que dans la mémoire. La valeur par défaut est `true`.
+ `ParallelLoadBufferSize` : spécifie le nombre maximal de demandes d’enregistrement de données lors de l’utilisation de threads de chargement parallèle avec la cible Redshift. La valeur par défaut est 100 et la valeur maximale est 1 000. Nous vous recommandons d'utiliser cette option lorsque ParallelLoadThreads > 1 (supérieur à un).

**Note**  
Support pour l'utilisation des paramètres des `ParallelLoad*` tâches pendant le chargement complet sur les points de terminaison cibles Amazon Redshift est disponible dans AWS DMS les versions 3.4.5 et supérieures.  
Le paramètre de point de terminaison Redshift `ReplaceInvalidChars` n’est pas pris en charge pour être utilisé lors de la capture des données de modification (CDC) ou lors d’une tâche de migration FULL LOAD compatible avec le chargement parallèle. Il est pris en charge pour la migration FULL LOAD lorsque le chargement parallèle n’est pas activé. Pour plus d'informations, voir le [RedshiftSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_RedshiftSettings.html)Guide de *référence de l'AWS Database Migration Service API*

### Paramètres de tâche de CDC multithread pour Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply.CDC"></a>

Pour améliorer les performances de la CDC, vous pouvez utiliser les paramètres de tâche `ParallelApply*` suivants :
+ `ParallelApplyThreads`— Spécifie le nombre de threads simultanés AWS DMS utilisés lors d'un chargement CDC pour transférer des enregistrements de données vers un point de terminaison cible Amazon Redshift. La valeur par défaut est zéro (0) et la valeur maximale est 32. La valeur minimale recommandée est le nombre de tranches présentes dans votre cluster.
+ `ParallelApplyBufferSize` : spécifie le nombre maximal de demandes d’enregistrement de données lors de l’utilisation de threads d’application parallèle avec la cible Redshift. La valeur par défaut est 100 et la valeur maximale est 1 000. Nous recommandons d'utiliser cette option lorsque ParallelApplyThreads > 1 (supérieur à un). 

  Pour tirer le meilleur parti de Redshift en tant que cible, nous recommandons que la valeur de `ParallelApplyBufferSize` soit au moins deux fois supérieure à la valeur de `ParallelApplyThreads`.

**Note**  
Support pour l'utilisation des paramètres des `ParallelApply*` tâches pendant les points de terminaison cibles CDC vers Amazon Redshift est disponible dans AWS DMS les versions 3.4.3 et supérieures.

Le niveau de parallélisme appliqué dépend de la corrélation entre la *taille de lot* totale et la *taille de fichier maximale* utilisées pour transférer les données. Lorsque vous utilisez des paramètres de tâche de CDC multithread avec une cible Redshift, vous tirez le meilleur parti lorsque la taille de lot est supérieure à la taille de fichier maximale. Par exemple, vous pouvez utiliser la combinaison suivante de paramètres de point de terminaison et de tâche pour optimiser les performances. 

```
// Redshift endpoint setting
                
        MaxFileSize=250000;

// Task settings

        BatchApplyEnabled=true;
        BatchSplitSize =8000;
        BatchApplyTimeoutMax =1800;
        BatchApplyTimeoutMin =1800;
        ParallelApplyThreads=32;
        ParallelApplyBufferSize=100;
```

En utilisant les paramètres de l’exemple précédent, un client ayant une charge de travail transactionnelle importante tire le meilleur parti de sa mémoire tampon par lots, qui contient 8 000 enregistrements, est remplie en 1 800 secondes et utilise 32 threads parallèles avec une taille de fichier maximale de 250 Mo.

Pour de plus amples informations, veuillez consulter [Paramètres de réglage du traitement des modifications](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md).

**Note**  
Les requêtes DMS exécutées pendant la réplication continue vers un cluster Redshift peuvent partager la même file d’attente WLM (gestion de la charge de travail) avec les autres requêtes d’application en cours d’exécution. Pensez donc à configurer correctement les propriétés WLM afin d’influencer les performances lors de la réplication continue vers une cible Redshift. Par exemple, si d’autres requêtes ETL parallèles sont en cours d’exécution, DMS s’exécute plus lentement et les gains de performances sont perdus.

## Types de données cibles pour Amazon Redshift
<a name="CHAP_Target.Redshift.DataTypes"></a>

Le point de terminaison Amazon Redshift pour AWS DMS prend en charge la plupart des types de données Amazon Redshift. Le tableau suivant indique les types de données cibles Amazon Redshift pris en charge lors de l'utilisation AWS DMS et le mappage par défaut à partir AWS DMS des types de données.

Pour plus d'informations sur AWS DMS les types de données, consultez[Types de données pour AWS Database Migration Service](CHAP_Reference.DataTypes.md).


| AWS DMS types de données | Types de données Amazon Redshift | 
| --- | --- | 
| BOOLEAN | BOOL | 
| BYTES | VARCHAR (Length) | 
| DATE | DATE | 
| TIME | VARCHAR(20) | 
| DATETIME |  Si l’échelle est => 0 et =< 6, selon le type de colonne cible Redshift, alors : TIMESTAMP (s) TIMESTAMPTZ (s) : si l’horodatage source contient un décalage de zone (comme dans SQL Server ou Oracle), il est converti en UTC lors de l’insertion/de la mise à jour. S’il ne contient pas de décalage, l’heure est déjà prise en compte en UTC. Si l'échelle est => 7 et =< 9, alors :  VARCHAR (37) | 
| INT1 | INT2 | 
| INT2 | INT2 | 
| INT4 | INT4 | 
| INT8 | INT8 | 
| NUMERIC | Si l'échelle est => 0 et =< 37, alors :  NUMERIC (p,s)  Si l'échelle est => 38 et =< 127, alors :  VARCHAR (Length) | 
| REAL4 | FLOAT4 | 
| REAL8 | FLOAT8 | 
| CHAÎNE | Si la longueur est comprise entre 1 et 65 535, utilisez VARCHAR (longueur en octets)  Si la longueur est comprise entre 65 536 et 2 147 483 647, utilisez VARCHAR (65535) | 
| UINT1 | INT2 | 
| UINT2 | INT2 | 
| UINT4 | INT4 | 
| UINT8 | NUMERIC (20,0) | 
| WSTRING |  Si la longueur est comprise entre 1 et 65 535, utilisez NVARCHAR (longueur en octets)  Si la longueur est comprise entre 65 536 et 2 147 483 647, utilisez NVARCHAR (65535) | 
| BLOB | VARCHAR (taille de LOB maximale \$12)  La taille de LOB maximale ne peut pas dépasser 31 Ko. Amazon Redshift ne prend pas en charge une VARCHARs taille supérieure à 64 Ko. | 
| NCLOB | NVARCHAR (taille de LOB maximale)  La taille de LOB maximale ne peut pas dépasser 63 Ko. Amazon Redshift ne prend pas en charge une VARCHARs taille supérieure à 64 Ko. | 
| CLOB | VARCHAR (taille de LOB maximale)  La taille de LOB maximale ne peut pas dépasser 63 Ko. Amazon Redshift ne prend pas en charge une VARCHARs taille supérieure à 64 Ko. | 

## Utilisation AWS DMS avec Amazon Redshift Serverless comme cible
<a name="CHAP_Target.Redshift.RSServerless"></a>

AWS DMS prend en charge l'utilisation d'Amazon Redshift Serverless comme point de terminaison cible. Pour en savoir plus sur l’utilisation d’Amazon Redshift sans serveur, consultez [Amazon Redshift sans serveur](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-serverless.html) dans le [Guide de gestion Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/welcome.html).

Cette rubrique décrit comment utiliser un point de terminaison Amazon Redshift Serverless avec. AWS DMS

**Note**  
Lorsque vous créez un point de terminaison Amazon Redshift sans serveur, pour le **DatabaseName**champ de configuration de votre [RedshiftSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_RedshiftSettings.html)point de terminaison, utilisez soit le nom de l'entrepôt de données Amazon Redshift, soit le nom du point de terminaison du groupe de travail. Pour le **ServerName**champ, utilisez la valeur du point de terminaison affichée sur la page du **groupe de travail** pour le cluster sans serveur (par exemple,`default-workgroup.093291321484.us-east-1.redshift-serverless.amazonaws.com`). Pour en savoir plus sur la création d’un point de terminaison, consultez [Création de points de terminaison source et cible](CHAP_Endpoints.Creating.md). Pour en savoir plus sur le point de terminaison de groupe de travail, consultez [Connexion à Amazon Redshift sans serveur](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-connecting.html).

### Politique d’approbation avec Amazon Redshift sans serveur en tant que cible
<a name="CHAP_Target.Redshift.RSServerless.policy"></a>

Lorsque vous utilisez Amazon Redshift sans serveur en tant que point de terminaison cible, vous devez ajouter la section surlignée suivante à votre politique d’approbation. Cette politique d’approbation est liée au rôle `dms-access-for-endpoint`.

Pour plus d'informations sur l'utilisation d'une politique de confiance avec AWS DMS, consultez[Création des rôles IAM à utiliser avec AWS DMS](security-iam.md#CHAP_Security.APIRole).

### Limitations lors de l’utilisation d’Amazon Redshift sans serveur en tant que cible
<a name="CHAP_Target.Redshift.RSServerless.Limitations"></a>

L’utilisation de Redshift sans serveur en tant que cible présente les limitations suivantes :
+ AWS DMS prend uniquement en charge Amazon Redshift Serverless en tant que point de terminaison dans les régions qui prennent en charge Amazon Redshift Serverless. Pour en savoir plus sur les régions qui prennent en charge Amazon Redshift sans serveur, consultez **API Redshift sans serveur** dans la rubrique [Points de terminaison et quotas Amazon Redshift](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) de la [Référence générale AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html).
+ Lorsque vous utilisez le routage VPC amélioré, assurez-vous de créer un point de terminaison Amazon S3 dans le même VPC que votre cluster Redshift sans serveur ou Redshift provisionné. Pour de plus amples informations, veuillez consulter [Utilisation d'un routage VPC amélioré avec Amazon Redshift comme cible pour AWS Database Migration Service](#CHAP_Target.Redshift.EnhancedVPC).
+ AWS DMS ne prend pas en charge le débit amélioré pour Amazon Redshift Serverless en tant que cible. Pour de plus amples informations, veuillez consulter [Débit amélioré pour les migrations à chargement complet d'Oracle vers Amazon Redshift et Amazon S3](CHAP_Serverless.Components.md#CHAP_Serverless.Throughput).
+ AWS DMS ne prend pas en charge les connexions à Amazon Redshift Redshift Serverless lorsque le mode SSL est défini sur. `verify-full` Pour les connexions nécessitant une vérification SSL vers des cibles Amazon Redshift Serverless, utilisez d'autres modes SSL tels que ou. `require` `verify-ca`