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.
RDS for MySQL
Procédez comme suit pour configurer un pipeline d' OpenSearch ingestion avec Amazon RDS for RDS for MySQL.
Rubriques
Prérequis pour RDS pour MySQL
Avant de créer votre pipeline OpenSearch d'ingestion, effectuez les étapes suivantes :
-
Créez un groupe de paramètres de base de données personnalisé dans Amazon RDS pour configurer la journalisation binaire et définissez les paramètres suivants.
binlog_format=ROW binlog_row_image=full binlog_row_metadata=FULLAssurez-vous également que le
binlog_row_value_optionsparamètre n'est pas défini surPARTIAL_JSON.Pour plus d'informations, consultez Configuration de RDS pour la journalisation binaire MySQL.
-
Sélectionnez ou créez une instance de base de données RDS pour MySQL et associez le groupe de paramètres créé à l'étape précédente à l'instance de base de données.
-
Vérifiez que les sauvegardes automatiques sont activées sur la base de données. Pour plus d'informations, consultez la section Activation des sauvegardes automatisées.
-
Configurez la conservation des journaux binaires en laissant suffisamment de temps pour que la réplication se produise, par exemple 24 heures. Pour plus d'informations, consultez la section Définition et affichage de la configuration des journaux binaires dans le guide de l'utilisateur Amazon RDS.
-
Configurez l'authentification par nom d'utilisateur et mot de passe sur votre instance Amazon RDS à l'aide de la gestion des mots de passe avec Amazon RDS et AWS Secrets Manager. Vous pouvez également créer une username/password combinaison en créant un secret Secrets Manager.
-
Si vous utilisez la fonctionnalité de capture initiale complète, créez un rôle AWS KMS key et un rôle IAM pour exporter des données d'Amazon RDS vers Amazon S3.
Le rôle IAM doit respecter la politique d'autorisation suivante :
Le rôle doit également entretenir les relations de confiance suivantes :
-
Sélectionnez ou créez un domaine OpenSearch de service ou une collection OpenSearch Serverless. Pour plus d'informations, consultez les sections Création OpenSearch de domaines de service et Création de collections.
-
Associez une politique basée sur les ressources à votre domaine ou une politique d'accès aux données à votre collection. Ces politiques d'accès permettent à OpenSearch Ingestion d'écrire des données depuis votre instance de base de données Amazon RDS vers votre domaine ou votre collection.
Étape 1 : configurer le rôle du pipeline
Après avoir configuré les prérequis pour votre pipeline Amazon RDS, configurez le rôle de pipeline à utiliser dans votre configuration de pipeline. Ajoutez également les autorisations suivantes pour la source Amazon RDS au rôle :
Étape 2 : Création du pipeline
Configurez un pipeline d' OpenSearch ingestion similaire au suivant. L'exemple de pipeline spécifie une instance Amazon RDS comme source.
version: "2" rds-mysql-pipeline: source: rds: db_identifier: "instance-id" engine: mysql database: "database-name" tables: include: - "table1" - "table2" s3_bucket: "bucket-name" s3_region: "bucket-region" s3_prefix: "prefix-name" export: kms_key_id: "kms-key-id" iam_role_arn: "export-role-arn" stream: true aws: sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" region: "us-east-1" authentication: username: ${{aws_secrets:secret:username}} password: ${{aws_secrets:secret:password}} sink: - opensearch: hosts: ["https://search-mydomain.us-east-1.es.amazonaws.com"] index: "${getMetadata(\"table_name\")}" index_type: custom document_id: "${getMetadata(\"primary_key\")}" action: "${getMetadata(\"opensearch_action\")}" document_version: "${getMetadata(\"document_version\")}" document_version_type: "external" aws: sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" region: "us-east-1" extension: aws: secrets: secret: secret_id: "rds-secret-id" region: "us-east-1" sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" refresh_interval: PT1H
Vous pouvez utiliser un plan Amazon RDS préconfiguré pour créer ce pipeline. Pour de plus amples informations, veuillez consulter Travailler avec des plans.
Pour utiliser Amazon Aurora comme source, vous devez configurer l'accès VPC pour le pipeline. Le VPC que vous choisissez doit être le même que celui utilisé par votre source Amazon Aurora. Choisissez ensuite un ou plusieurs sous-réseaux et un ou plusieurs groupes de sécurité VPC. Notez que le pipeline nécessite un accès réseau à une base de données Aurora MySQL. Vous devez donc également vérifier que votre cluster Aurora est configuré avec un groupe de sécurité VPC qui autorise le trafic entrant depuis le groupe de sécurité VPC du pipeline vers le port de base de données. Pour plus d'informations, consultez la section Contrôle de l'accès à l'aide de groupes de sécurité.
Si vous utilisez le Console de gestion AWS pour créer votre pipeline, vous devez également associer votre pipeline à votre VPC afin d'utiliser Amazon Aurora comme source. Pour ce faire, accédez à la section Configuration réseau, choisissez Attach to VPC et choisissez votre CIDR parmi l'une des options par défaut proposées, ou sélectionnez la vôtre. Le bloc CIDR doit utiliser une longueur de préfixe /24. Vous pouvez utiliser n'importe quel CIDR /24 à partir d'un espace d'adressage privé tel que défini dans la RFC 1918 Best Current Practice.
Pour fournir un CIDR personnalisé, sélectionnez Autre dans le menu déroulant. Pour éviter une collision d'adresses IP entre OpenSearch Ingestion et Amazon RDS, assurez-vous que le CIDR VPC Amazon RDS est différent du CIDR pour l'ingestion. OpenSearch
Pour plus d'informations, consultez Configuration de l'accès au VPC pour un pipeline.
Cohérence des données
Le pipeline garantit la cohérence des données en interrogeant ou en recevant en permanence des modifications en provenance de l'instance Amazon RDS et en mettant à jour les documents correspondants dans l' OpenSearchindex.
OpenSearch L'ingestion prend en charge la reconnaissance de bout en bout pour garantir la durabilité des données. Lorsqu'un pipeline lit des instantanés ou des flux, il crée dynamiquement des partitions pour un traitement parallèle. Le pipeline marque une partition comme étant terminée lorsqu'il reçoit un accusé de réception après avoir ingéré tous les enregistrements du OpenSearch domaine ou de la collection. Si vous souhaitez intégrer une collection de recherche OpenSearch sans serveur, vous pouvez générer un identifiant de document dans le pipeline. Si vous souhaitez intégrer une collection de séries chronologiques OpenSearch sans serveur, notez que le pipeline ne génère pas d'identifiant de document, vous devez donc l'omettre document_id: "${getMetadata(\"primary_key\")}" dans la configuration de votre récepteur de pipeline.
Un pipeline d' OpenSearch ingestion associe également les actions d'événements entrants aux actions d'indexation groupées correspondantes afin de faciliter l'ingestion de documents. Cela permet de garantir la cohérence des données, de sorte que chaque modification de données dans Amazon RDS soit réconciliée avec les modifications de documents correspondantes dans. OpenSearch
Types de données de mappage
OpenSearch Le pipeline d'ingestion associe les types de données MySQL à des représentations adaptées aux domaines de OpenSearch service ou aux collections à consommer. Si aucun modèle de mappage n'est défini dans OpenSearch, détermine OpenSearch automatiquement les types de champs avec un mappage dynamique
Le tableau ci-dessous répertorie les types de données MySQL et les types de OpenSearch champs correspondants. La colonne Type de OpenSearch champ par défaut indique le type de champ correspondant OpenSearch si aucun mappage explicite n'est défini. Dans ce cas, détermine OpenSearch automatiquement les types de champs à l'aide d'un mappage dynamique. La colonne Type de OpenSearch champ recommandé est le type de champ correspondant qu'il est recommandé de spécifier explicitement dans un modèle de mappage. Ces types de champs sont plus proches des types de données de MySQL et peuvent généralement permettre de meilleures fonctionnalités de recherche disponibles dans OpenSearch.
| Type de données MySQL | Type de OpenSearch champ par défaut | Type OpenSearch de champ recommandé |
|---|---|---|
| BIGINT | long | long |
| BIGINT UNSIGNED | long | long non signé |
| BIT | long | octet, nombre court, entier ou long selon le nombre de bits |
| DECIMAL | text | double ou mot-clé |
| DOUBLE | float | double |
| FLOAT | float | float |
| INT | long | entier |
| INT UNSIGNED | long | long |
| MEDIUMINT | long | entier |
| MEDIUMINT UNSIGNED | long | entier |
| NUMERIC | text | double ou mot-clé |
| SMALLINT | long | short |
| SMALLINT UNSIGNED | long | entier |
| TINYINT | long | octet |
| TINYINT UNSIGNED | long | short |
| BINAIRE | text | binary |
| BLOB | text | binary |
| CHAR | text | text |
| ENUM | text | mot clé |
| LONGBLOB | text | binary |
| LONGTEXT | text | text |
| MEDIUMBLOB | text | binary |
| MEDIUMTEXT | text | text |
| SET | text | mot clé |
| TEXT | text | text |
| TINYBLOB | text | binary |
| TINYTEXT | text | text |
| VARBINARY | text | binary |
| VARCHAR | text | text |
| DATE | long (en millisecondes d'époque) | date |
| DATETIME | long (en millisecondes d'époque) | date |
| TIME | long (en millisecondes d'époque) | date |
| TIMESTAMP | long (en millisecondes d'époque) | date |
| YEAR | long (en millisecondes d'époque) | date |
| GEOMETRY | texte (au format WKT) | geo_shape |
| GEOMETRYCOLLECTION | texte (au format WKT) | geo_shape |
| LINESTRING | texte (au format WKT) | geo_shape |
| MULTILINESTRING | texte (au format WKT) | geo_shape |
| MULTIPOINT | texte (au format WKT) | geo_shape |
| MULTIPOLYGON | texte (au format WKT) | geo_shape |
| POINT | texte (au format WKT) | geo_point ou geo_shape |
| POLYGON | texte (au format WKT) | geo_shape |
| JSON | text | objet |
Nous vous recommandons de configurer la file d'attente de lettres mortes (DLQ) dans votre OpenSearch pipeline d'ingestion. Si vous avez configuré la file d'attente, le OpenSearch Service envoie tous les documents ayant échoué et qui ne peuvent pas être ingérés en raison d'échecs de mappage dynamique vers la file d'attente.
Si les mappages automatiques échouent, vous pouvez utiliser template_type et template_content dans la configuration de votre pipeline pour définir des règles de mappage explicites. Vous pouvez également créer des modèles de mappage directement dans votre domaine de recherche ou votre collection avant de démarrer le pipeline.
Limitations
Tenez compte des limites suivantes lorsque vous configurez un pipeline d' OpenSearch ingestion pour RDS for MySQL :
-
L'intégration ne prend en charge qu'une seule base de données MySQL par pipeline.
-
L'intégration ne prend actuellement pas en charge l'ingestion de données entre régions ; votre instance et votre OpenSearch domaine Amazon RDS doivent se trouver dans le même Région AWS espace.
-
L'intégration ne prend actuellement pas en charge l'ingestion de données entre comptes ; votre instance Amazon RDS et votre pipeline d' OpenSearch ingestion doivent être identiques Compte AWS.
-
Assurez-vous que l'authentification est activée sur l'instance Amazon RDS à l'aide de Secrets Manager, qui est le seul mécanisme d'authentification pris en charge.
-
La configuration de pipeline existante ne peut pas être mise à jour pour ingérer des données provenant d'une autre base de données ou and/or d'une autre table. Pour mettre à jour le nom de la and/or table de base de données d'un pipeline, vous devez créer un nouveau pipeline.
-
Les instructions DDL (Data Definition Language) ne sont généralement pas prises en charge. La cohérence des données ne sera pas maintenue si :
-
Les clés primaires sont modifiées (add/delete/rename).
-
Les tables le sont dropped/truncated.
-
Les noms des colonnes ou les types de données sont modifiés.
-
-
Si aucune clé primaire n'est définie pour les tables MySQL à synchroniser, la cohérence des données n'est pas garantie. Vous devrez définir correctement l'
document_idoption personnalisée dans la configuration du OpenSearch récepteur pour pouvoir effectuer la synchronisation avec updates/deletes OpenSearch. -
Les références à des clés étrangères comportant des actions de suppression en cascade ne sont pas prises en charge et peuvent entraîner une incohérence des données entre RDS pour MySQL et. OpenSearch
-
Les clusters de bases de données de zone de multidisponibilité Amazon RDS ne sont pas pris en charge.
-
Versions prises en charge : MySQL version 8.0 et supérieure.
CloudWatch Alarmes recommandées
Les CloudWatch mesures suivantes sont recommandées pour surveiller les performances de votre pipeline d'ingestion. Ces mesures peuvent vous aider à identifier la quantité de données traitées à partir des exportations, le nombre d'événements traités à partir des flux, les erreurs lors du traitement des exportations et des événements de flux, ainsi que le nombre de documents écrits vers la destination. Vous pouvez configurer CloudWatch des alarmes pour exécuter une action lorsque l'une de ces mesures dépasse une valeur spécifiée pendant une durée spécifiée.
| Métrique | Description |
|---|---|
pipeline-name.rds. Informations d'identification modifiées |
Cette métrique indique la fréquence de rotation des AWS secrets. |
pipeline-name.rds.executor RefreshErrors |
Cette métrique indique l'échec de l'actualisation AWS des secrets. |
pipeline-name.rds.export RecordsTotal |
Cette métrique indique le nombre d'enregistrements exportés depuis Amazon Aurora. |
pipeline-name.rds.export RecordsProcessed |
Cette métrique indique le nombre d'enregistrements traités par le pipeline OpenSearch d'ingestion. |
pipeline-name.rds.export RecordProcessingErrors |
Cette métrique indique le nombre d'erreurs de traitement dans un pipeline d' OpenSearch ingestion lors de la lecture des données d'un cluster Amazon Aurora. |
pipeline-name.rds.export RecordsSuccessTotal |
Cette métrique indique le nombre total d'enregistrements d'exportation traités avec succès. |
pipeline-name.rds.export RecordsFailedTotal |
Cette métrique indique le nombre total d'enregistrements d'exportation qui n'ont pas pu être traités. |
pipeline-name.rds.octets reçus |
Cette métrique indique le nombre total d'octets reçus par un pipeline d' OpenSearch ingestion. |
pipeline-name.RDS. Octets traités |
Cette métrique indique le nombre total d'octets traités par un pipeline d' OpenSearch ingestion. |
pipeline-name.rds.stream RecordsSuccessTotal |
Cette métrique indique le nombre d'enregistrements traités avec succès à partir du flux. |
pipeline-name.rds.stream RecordsFailedTotal |
Cette métrique indique le nombre total d'enregistrements qui n'ont pas pu être traités à partir du flux. |