Utilisation d'un cluster Amazon OpenSearch Service en tant que cible pour AWS Database Migration Service - AWS Service de Migration de Base de Données

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'un cluster Amazon OpenSearch Service en tant que cible pour AWS Database Migration Service

Vous pouvez utiliser AWS DMS pour migrer des données vers Amazon OpenSearch Service (OpenSearch Service). OpenSearch Service est un service géré qui facilite le déploiement, l'utilisation et la mise à l'échelle d'un cluster OpenSearch Service.

Dans OpenSearch Service, vous utilisez des index et des documents. Un index est un ensemble de documents et un document est un objet JSON contenant des valeurs scalaires, des tableaux et d'autres objets. OpenSearch fournit un langage de requête basé sur JSON afin que vous puissiez interroger les données d'un index et récupérer les documents correspondants.

Lorsque AWS DMS crée des index pour un point de terminaison cible pour OpenSearch Service, il crée un index pour chaque table du point de terminaison source. Le coût de la création d'un index OpenSearch Service dépend de plusieurs facteurs. Il s'agit du nombre d'index créés, du volume total de données dans ces index et de la petite quantité de métadonnées qu'OpenSearch stocke pour chaque document.

Configurez votre cluster OpenSearch Service avec des ressources de calcul et de stockage appropriées selon la portée de votre migration. Nous vous recommandons de prendre en compte les facteurs suivants, selon la tâche de réplication que vous souhaitez utiliser :

  • Pour un chargement de données complet, tenez compte du volume total de données à migrer ainsi que de la vitesse du transfert.

  • Pour la réplication de modifications en cours, tenez compte de la fréquence des mises à jour et de vos exigences en termes de latence.

En outre, configurez les paramètres d'index sur votre cluster OpenSearch, en prêtant une attention particulière au nombre de documents.

Paramètres de tâche de chargement complet multithread

Pour augmenter la vitesse du transfert, AWS DMS prend en charge un chargement complet multithread vers un cluster cible OpenSearch Service. AWS DMS prend en charge ce multithreading avec les paramètres de tâche suivants :

  • MaxFullLoadSubTasks : utilisez cette option pour indiquer le nombre maximal de tables sources à charger en parallèle. DMS charge chaque table dans son index cible OpenSearch Service correspondant à l'aide d'une sous-tâche dédiée. La valeur par défaut est 8 ; la valeur maximale 49.

  • ParallelLoadThreads : utilisez cette option pour spécifier le nombre de threads utilisés par AWS DMS pour charger chaque table dans son index cible OpenSearch Service. La valeur maximale pour une cible OpenSearch Service est 32. Vous pouvez demander une augmentation de cette limite maximale.

    Note

    Si vous ne modifiez pas la valeur par défaut de ParallelLoadThreads (0), AWS DMS transfère un seul enregistrement à la fois. Cette approche entraîne une charge inutile sur votre cluster OpenSearch Service. Veillez à définir cette option sur 1 ou plus.

  • ParallelLoadBufferSize : utilisez cette option pour spécifier le nombre maximal d'enregistrements à stocker dans la mémoire tampon utilisée par les threads de chargement parallèles pour charger les données dans la cible OpenSearch Service. La valeur par défaut est 50. La valeur maximale est 1 000. Utilisez ce paramètre avec ParallelLoadThreads. ParallelLoadBufferSize est valide uniquement dans le cas de plusieurs threads.

Pour plus d'informations sur la façon dont DMS charge un cluster OpenSearch Service à l'aide du multithreading, consultez le billet de blog AWS Mise à l'échelle d'Amazon OpenSearch Service pour les migrations AWS Database Migration Service (langue française non garantie).

Paramètres de tâche de chargement CDC multithread

Vous pouvez utiliser les paramètres de tâche afin d'améliorer les performances de la capture des données de modification (CDC) pour un cluster cible OpenSearch Service et modifier le comportement de l'appel d'API PutRecords. Pour ce faire, vous pouvez spécifier le nombre de threads simultanés, les files d'attente par thread et le nombre d'enregistrements à stocker dans un tampon à l'aide de la tâche ParallelApply*. Par exemple, supposons que vous souhaitiez effectuer un chargement CDC et appliquer 32 threads en parallèle. Vous souhaitez également accéder à 64 files d'attente par thread, avec 50 enregistrements stockés par tampon.

Note

La prise en charge de l'utilisation des paramètres de tâche ParallelApply* pendant la CDC vers des points de terminaison cibles Amazon OpenSearch Service est disponible dans AWS DMS versions 3.4.0 et ultérieures.

Pour accroître les performances de la fonctionnalité CDC, AWS DMS prend en charge les paramètres de tâche suivants :

  • ParallelApplyThreads : spécifie le nombre de threads simultanés utilisés par AWS DMS pendant un chargement CDC pour transférer des enregistrements de données vers un point de terminaison cible OpenSearch Service. La valeur par défaut est zéro (0) et la valeur maximale est 32.

  • ParallelApplyBufferSize : spécifie le nombre maximal d'enregistrements à stocker dans chaque file d'attente de mémoire tampon pour que les threads simultanés soient transférés vers un point de terminaison cible OpenSearch Service lors d'un chargement CDC. La valeur par défaut est 100 et la valeur maximale est 1 000. Utilisez cette option lorsque ParallelApplyThreads spécifie plusieurs threads.

  • ParallelApplyQueuesPerThread : spécifie le nombre de files d'attente auxquelles chaque thread accède pour extraire les enregistrements de données des files d'attente et générer un chargement par lots pour un point de terminaison OpenSearch Service pendant la CDC.

Lorsque vous utilisez les paramètres de tâche ParallelApply*, la valeur par défaut partition-key-type est la valeur primary-key de la table, pas schema-name.table-name.

Migration d'une table de base de données relationnelle vers un index OpenSearch Service

AWS DMS prend en charge la migration de données vers les types de données scalaires d'OpenSearch Service. Lors d'une migration depuis une base de données relationnelle telle qu'Oracle ou MySQL vers OpenSearch Service, vous pouvez restructurer la manière dont vous stockez les données.

AWS DMS prend en charge les types de données scalaires OpenSearch Service suivants :

  • Booléen

  • Date

  • Float

  • Int

  • Chaîne

AWS DMS convertit les données de type Date en type String. Vous pouvez spécifier des mappages personnalisés pour interpréter ces dates.

AWS DMS ne prend pas en charge la migration de types de données LOB.

Conditions préalables à l'utilisation d'Amazon OpenSearch Service en tant que cible pour AWS Database Migration Service

Avant de commencer à utiliser une base de données OpenSearch Service en tant que cible pour AWS DMS, veillez à créer un rôle AWS Identity and Access Management (IAM). Ce rôle doit permettre à AWS DMS d'accéder aux index OpenSearch Service au point de terminaison cible. L'ensemble d'autorisations d'accès minimum est indiqué dans la stratégie IAM suivante.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Le rôle que vous utilisez pour la migration vers OpenSearch Service doit bénéficier des autorisations suivantes.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpDelete", "es:ESHttpGet", "es:ESHttpHead", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": "arn:aws:es:region:account-id:domain/domain-name/*" } ] }

Dans l'exemple précédent, remplacez region par l'identifiant de région AWS, account-id par votre ID de compte AWS et domain-name par le nom de votre domaine Amazon OpenSearch Service. Voici un exemple : arn:aws:es:us-west-2:123456789012:domain/my-es-domain.

Paramètres de point de terminaison lors de l'utilisation d'OpenSearch Service en tant que cible pour AWS DMS

Vous pouvez utiliser des paramètres de point de terminaison pour configurer la base de données cible OpenSearch Service 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 console AWS DMS ou à l'aide de la commande create-endpoint dans AWS CLI, avec la syntaxe JSON --elasticsearch-settings '{"EndpointSetting": "value", ...}'.

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

Nom d'attribut Valeurs valides Valeur par défaut et description

FullLoadErrorPercentage

Un nombre entier positif supérieur à 0, mais ne dépassant pas 100.

10 - Pour une tâche de chargement complet, cet attribut détermine le seuil d'erreurs autorisées avant que la tâche échoue. Par exemple, supposons qu'il y a 1 500 lignes au point de terminaison source et que ce paramètre est défini sur 10. Dans ce cas, la tâche échoue si AWS DMS rencontre plus de 150 erreurs (10 % du nombre de lignes) lors de l'écriture sur le point de terminaison cible.

ErrorRetryDuration

Un nombre entier positif supérieur à 0.

300 - Si une erreur se produit au point de terminaison cible, AWS DMS effectue de nouvelles tentatives pendant ce nombre de secondes. Sinon, la tâche échoue.

Limitations liées à l'utilisation d'Amazon OpenSearch Service en tant que cible pour AWS Database Migration Service

Les limitations suivantes s'appliquent à l'utilisation d'Amazon OpenSearch Service en tant que cible :

  • OpenSearch Service utilise le mappage dynamique (auto guess) pour déterminer les types de données à utiliser pour les données migrées.

  • OpenSearch Service stocke chaque document avec un ID unique. Voici un exemple d'ID.

    "_id": "D359F8B537F1888BC71FE20B3D79EAE6674BE7ACA9B645B0279C7015F6FF19FD"

    Chaque ID de document compte 64 octets. Tenez-en compte dans les exigences de stockage. Par exemple, si vous migrez 100 000 lignes à partir d'une source AWS DMS, l'index OpenSearch Service généré nécessite le stockage de 6 400 000 octets supplémentaires.

  • Avec OpenSearch Service, vous ne pouvez pas mettre à jour les attributs de clé primaire. Cette restriction est importante lors de l'utilisation de la réplication continue avec la capture des données modifiées (CDC), car elle peut entraîner des données non souhaitées dans la cible. Dans le mode CDC, les clés primaires sont mappées vers des valeurs SHA256, dont la longueur est de 32 octets. Ces valeurs sont converties en chaînes de 64 octets lisibles par l'homme et sont utilisées comme ID de document OpenSearch Service.

  • Si AWS DMS détecte des éléments qui ne peuvent pas être migrés, il consigne les messages d'erreur dans Amazon CloudWatch Logs. Ce comportement diffère de celui des autres points de terminaison cibles de AWS DMS, qui enregistrent les erreurs dans une table d'exceptions.

  • AWS DMS ne prend pas en charge la connexion à un cluster Amazon ES sur lequel le contrôle d'accès détaillé est activé avec un utilisateur principal et un mot de passe.

  • AWS DMS ne prend pas en charge OpenSearch Service sans serveur.

  • OpenSearch Service ne prend pas en charge l'écriture de données dans des index préexistants.

Types de données cibles pour Amazon OpenSearch Service

Lorsque AWS DMS migre des données à partir de bases de données hétérogènes, le service mappe les types de données de la base de données source vers des types de données intermédiaires, appelés types de données AWS DMS. Le service mappe ensuite les types de données intermédiaires vers les types de données cibles. Le tableau suivant illustre chaque type de données AWS DMS et le type de données auquel il est mappé dans OpenSearch Service.

Type de données AWS DMS Type de données OpenSearch Service

Booléen

boolean

Date

chaîne

Heure

date

Horodatage

date

INT4

entier

Real4

float

UINT4

entier

Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types de données pour AWS Database Migration Service.