Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
RDS para MySQL
Complete los siguientes pasos para configurar una canalización de OpenSearch ingesta con Amazon RDS para RDS para MySQL.
Temas
Requisitos previos de RDS para MySQL
Antes de crear su canalización de OpenSearch ingestión, lleve a cabo los siguientes pasos:
-
Cree un grupo de parámetros de base de datos personalizado en Amazon RDS para configurar el registro binario y establecer los siguientes parámetros.
binlog_format=ROW binlog_row_image=full binlog_row_metadata=FULLCompruebe también que el parámetro
binlog_row_value_optionsno esté establecido enPARTIAL_JSON.Para obtener más información, consulte Configuración del registro binario de RDS para MySQL.
-
Seleccione o cree una instancia de base de datos RDS para MySQL y asocie el grupo de parámetros creado en el paso anterior a la instancia de base de datos.
-
Compruebe que las copias de seguridad automáticas están activadas en la base de datos. Para obtener más información, consulte Habilitación de copias de seguridad automatizadas.
-
Configure la retención de registros binarios con tiempo suficiente para que se produzca la replicación, por ejemplo, 24 horas. Para obtener más información, consulte Configuración y visualización de la configuración de registros binarios en la Guía del usuario de Amazon RDS.
-
Configure la autenticación de nombre de usuario y contraseña en su instancia de Amazon RDS mediante la administración de contraseñas con Amazon RDS y AWS Secrets Manager. También puedes crear una username/password combinación creando un secreto de Secrets Manager.
-
Si utiliza la función de instantánea inicial completa, cree una función de IAM AWS KMS key y una función de IAM para exportar datos de Amazon RDS a Amazon S3.
El rol de IAM debe tener la siguiente política de permisos:
El rol también debe tener las siguientes relaciones de confianza:
-
Seleccione o cree un dominio de OpenSearch servicio o una colección OpenSearch sin servidor. Para obtener más información, consulte Creación de dominios OpenSearch de servicio y Creación de colecciones.
-
Adjunte una política basada en recursos al dominio o una política de acceso a datos a la colección. Estas políticas de acceso permiten a OpenSearch Ingestion escribir datos de su instancia de base de datos de Amazon RDS en su dominio o colección.
Paso 1: configurar el rol de canalización
Una vez configurados los requisitos previos de la canalización de Amazon RDS, configure el rol de la canalización que se usará en la configuración de la canalización. Agregue también los siguientes permisos para el origen de Amazon RDS al rol:
Paso 2: crear la canalización
Configure una canalización OpenSearch de ingesta similar a la siguiente. La canalización de ejemplo especifica una instancia de Amazon RDS como origen.
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
Puede utilizar un esquema de Amazon RDS preconfigurado para crear esta canalización. Para obtener más información, consulte Uso de esquemas.
A fin de utilizar Amazon Aurora como origen, debe configurar el acceso a la VPC para la canalización. La VPC que elija debe ser la misma que usa su origen de Amazon Aurora. A continuación, elija una o varias subredes y uno o varios grupos de seguridad de VPC. Tenga en cuenta que la canalización necesita acceso de red a una base de datos Aurora MySQL, por lo que también debe comprobar que el clúster de Aurora esté configurado con un grupo de seguridad de VPC que permita el tráfico entrante desde el grupo de seguridad de VPC de la canalización al puerto de la base de datos. Para obtener más información, consulte Control de acceso con grupos de seguridad.
Si lo usa Consola de administración de AWS para crear su canalización, también debe adjuntarla a su VPC para poder usar Amazon Aurora como fuente. Para ello, busque la sección Configuración de la red, seleccione Adjuntar a la VPC y elija el CIDR de una de las opciones predeterminadas proporcionadas o seleccione una opción propia. El bloque CIDR debe usar una longitud de prefijo de /24. Puede usar cualquier CIDR de /24 desde un espacio de direcciones privado, tal como se define en las mejores prácticas actuales de la RFC 1918.
Para proporcionar un CIDR personalizado, seleccione Otros en el menú desplegable. Para evitar una colisión de direcciones IP entre la OpenSearch ingestión y Amazon RDS, asegúrese de que el CIDR de la VPC de Amazon RDS sea diferente del CIDR de la ingestión. OpenSearch
Para obtener más información, consulte Configuring VPC access for a pipeline.
Coherencia de datos
La canalización garantiza la coherencia de los datos mediante el sondeo o la recepción continua de los cambios de la instancia de Amazon RDS y la actualización de los documentos correspondientes del índice. OpenSearch
OpenSearch La ingestión admite el reconocimiento de principio a fin para garantizar la durabilidad de los datos. Cuando una canalización lee instantáneas o transmisiones, crea particiones de forma dinámica para el procesamiento paralelo. La canalización marca una partición como completa cuando recibe un acuse de recibo tras ingerir todos los registros del dominio o la OpenSearch colección. Si quieres incorporarlo a una colección de búsquedas OpenSearch sin servidor, puedes generar un identificador de documento en proceso. Si quieres incorporarlo a una colección de series temporales OpenSearch sin servidor, ten en cuenta que la canalización no genera un identificador de documento, por lo que debes omitirlo document_id: "${getMetadata(\"primary_key\")}" en la configuración del sumidero de la canalización.
Una canalización OpenSearch de ingesta también asigna las acciones de los eventos entrantes a las correspondientes acciones de indexación masiva para ayudar a la ingesta de documentos. Esto mantiene la coherencia de los datos, de modo que cada cambio de datos en Amazon RDS se concilie con los cambios en los documentos correspondientes. OpenSearch
Asignación de tipos de datos
OpenSearch La canalización de ingesta asigna los tipos de datos de MySQL a las representaciones adecuadas para que las consuman los dominios o OpenSearch colecciones de servicios. Si no hay ninguna plantilla de asignación definida en OpenSearch, determina OpenSearch automáticamente los tipos de campo mediante una asignación dinámica
La siguiente tabla muestra los tipos de datos de MySQL y los tipos de OpenSearch campos correspondientes. La columna Tipo de OpenSearch campo predeterminado muestra el tipo de campo correspondiente OpenSearch si no se ha definido una asignación explícita. En este caso, determina OpenSearch automáticamente los tipos de campo con una asignación dinámica. La columna Tipo de OpenSearch campo recomendado es el tipo de campo correspondiente que se recomienda especificar de forma explícita en una plantilla de asignación. Estos tipos de campos están más alineados con los tipos de datos de MySQL y, por lo general, pueden habilitar las mejores funciones de búsqueda disponibles en OpenSearch.
| Tipo de datos de MySQL | Tipo de OpenSearch campo predeterminado | Tipo OpenSearch de campo recomendado |
|---|---|---|
| BIGINT | long | long |
| BIGINT UNSIGNED | long | largo sin signo |
| BIT | long | byte, corto, entero o largo según el número de bits |
| DECIMAL | text | doble o palabra |
| DOUBLE | float | double |
| FLOAT | float | float |
| INT | long | entero |
| INT UNSIGNED | long | long |
| MEDIUMINT | long | entero |
| MEDIUMINT UNSIGNED | long | entero |
| NUMERIC | text | doble o palabra |
| SMALLINT | long | short |
| SMALLINT UNSIGNED | long | entero |
| TINYINT | long | byte |
| TINYINT UNSIGNED | long | short |
| BINARIO | text | binario |
| BLOB | text | binario |
| CHAR | text | text |
| ENUM | text | palabra clave |
| LONGBLOB | text | binario |
| LONGTEXT | text | text |
| MEDIUMBLOB | text | binario |
| MEDIUMTEXT | text | text |
| SET | text | palabra clave |
| TEXT | text | text |
| TINYBLOB | text | binario |
| TINYTEXT | text | text |
| VARBINARY | text | binario |
| VARCHAR | text | text |
| DATE | largo (en milisegundos de época) | date |
| DATETIME | largo (en milisegundos de época) | date |
| TIME | largo (en milisegundos de época) | date |
| TIMESTAMP | largo (en milisegundos de época) | date |
| YEAR | largo (en milisegundos de época) | date |
| GEOMETRY | texto (en formato WKT) | geo_shape |
| GEOMETRYCOLLECTION | texto (en formato WKT) | geo_shape |
| LINESTRING | texto (en formato WKT) | geo_shape |
| MULTILINESTRING | texto (en formato WKT) | geo_shape |
| MULTIPOINT | texto (en formato WKT) | geo_shape |
| MULTIPOLYGON | texto (en formato WKT) | geo_shape |
| POINT | texto (en formato WKT) | geo_point o geo_shape |
| POLYGON | texto (en formato WKT) | geo_shape |
| JSON | text | objeto |
Te recomendamos que configures la cola de mensajes muertos (DLQ) en tu canalización de ingestión. OpenSearch Si has configurado la cola, el OpenSearch servicio envía todos los documentos fallidos que no se pueden ingerir debido a errores de mapeo dinámico a la cola.
Si las asignaciones automáticas fallan, puede usar template_type y template_content en su configuración de canalización para definir reglas de asignación explícitas. Como alternativa, puede crear plantillas de asignación directamente en su dominio o colección de búsqueda antes de iniciar la canalización.
Limitaciones
Tenga en cuenta las siguientes limitaciones al configurar una canalización de OpenSearch ingesta de RDS for MySQL:
-
La integración solo admite una base de datos MySQL por canalización.
-
Actualmente, la integración no admite la ingesta de datos entre regiones; la instancia y el OpenSearch dominio de Amazon RDS deben estar en el mismo lugar. Región de AWS
-
Por el momento, la integración no admite la ingesta de datos entre cuentas; la instancia de Amazon RDS y la canalización de OpenSearch ingesta deben estar en el mismo lugar. Cuenta de AWS
-
Asegúrese de que la instancia de Amazon RDS tenga habilitada la autenticación mediante Secrets Manager, que es el único mecanismo de autenticación admitido.
-
La configuración de canalización existente no se puede actualizar para incorporar datos de una base de datos diferente o de una tabla diferente. and/or Para actualizar el nombre de la and/or tabla de la base de datos de una canalización, debes crear una canalización nueva.
-
Por lo general, las instrucciones en lenguaje de definición de datos (DDL) no son compatibles. La coherencia de datos no se mantendrá si:
-
Se cambian las claves principales (add/delete/rename).
-
Las tablas son. dropped/truncated
-
Se cambian los nombres de las columnas o los tipos de datos.
-
-
Si las tablas MySQL que se van a sincronizar no tienen definidas las claves principales, no se garantiza la coherencia de datos. Deberá definir correctamente la
document_idopción personalizada en la configuración del OpenSearch sumidero para poder updates/deletes sincronizarlo OpenSearch. -
No se admiten las referencias a claves externas con acciones de eliminación en cascada, ya que pueden provocar incoherencias en los datos entre RDS para MySQL y. OpenSearch
-
No se admiten los clústeres de bases de datos de zonas de disponibilidad múltiple de Amazon RDS.
-
Versiones compatibles: MySQL 8.0 y versiones posteriores.
Alarmas recomendadas CloudWatch
Se recomiendan las siguientes CloudWatch métricas para supervisar el rendimiento de su proceso de ingestión. Estas métricas pueden ayudarlo a identificar la cantidad de datos procesados a partir de exportaciones y flujos, los errores al procesar eventos de transmisión y exportación y el número de documentos escritos en el destino. Puedes configurar CloudWatch alarmas para que realicen una acción cuando una de estas métricas supere un valor específico durante un período de tiempo específico.
| Métrica | Description (Descripción) |
|---|---|
pipeline-name.rds.CredentialsChanged |
Esta métrica indica la frecuencia con la que se rotan los secretos. AWS |
pipeline-name.rds.executor RefreshErrors |
Esta métrica indica errores al actualizar los secretos. AWS |
pipeline-name.rds.export RecordsTotal |
Esta métrica indica el número de registros exportados desde Amazon Aurora. |
pipeline-name.rds.export RecordsProcessed |
Esta métrica indica la cantidad de registros procesados por OpenSearch Ingestion Pipeline. |
pipeline-name.rds.export RecordProcessingErrors |
Esta métrica indica el número de errores de procesamiento en una canalización de OpenSearch ingestión al leer los datos de un clúster de Amazon Aurora. |
pipeline-name.rds.export RecordsSuccessTotal |
Esta métrica indica el número total de registros de exportación procesados correctamente. |
pipeline-name.rds.export RecordsFailedTotal |
Esta métrica indica el número total de registros que no se han podido procesar. |
pipeline-name.rds.bytes recibidos |
Esta métrica indica el número total de bytes recibidos por una canalización de ingestión. OpenSearch |
pipeline-name.rds.BytesProcessed |
Esta métrica indica el número total de bytes procesados por una canalización de ingestión. OpenSearch |
pipeline-name.rds.stream RecordsSuccessTotal |
Esta métrica indica el número de registros del flujo procesados correctamente. |
pipeline-name.rds.stream RecordsFailedTotal |
Esta métrica indica el número total de registros del flujo que no se han podido procesar. |