Este tema describe cómo configurar un origen de datos de ApsaraDB RDS y detalla notas importantes sobre la configuración.
Configuración de ApsaraDB RDS
ApsaraDB RDS (Relational Database Service) es un servicio de base de datos en línea estable, confiable y escalable de Alibaba Cloud.
Antes de empezar
OpenSearch es compatible con instancias de ApsaraDB RDS for MySQL que ejecutan MySQL 5.5, 5.6, 5.7 u 8.0.
Debe adquirir una instancia regular de ApsaraDB RDS High-availability Edition. Las instancias de Basic Edition y Enterprise Edition de tres nodos no son instancias de High-availability Edition y no son compatibles.
La instancia de ApsaraDB RDS debe pertenecer a la misma cuenta de Alibaba Cloud y encontrarse en la misma región que su aplicación de OpenSearch.
Las instancias clonadas de ApsaraDB RDS solo son compatibles si la instancia de origen es una instancia de High-availability Edition.
Si utiliza una instancia de ApsaraDB RDS no compatible o que no cumple con los requisitos, la reindexación fallará.
Los orígenes de datos de ApsaraDB RDS deben estar en una Virtual Private Cloud (VPC).
Los orígenes de datos de PolarDB-X no son compatibles.
Autorización: Para permitir que OpenSearch acceda a los datos de ApsaraDB RDS, debe otorgar los permisos necesarios. Si ha configurado una lista de permitidos de direcciones IP para la instancia, OpenSearch agrega las direcciones IP de sus servidores a la lista. Sin autorización, el botón Connect to Database se encuentra deshabilitado.
Funciones compatibles
Puede extraer datos completos de tablas de base de datos específicas mediante manual and scheduled reindexing.
-
Puede combinar datos de varias tablas de origen. Las tablas de origen deben tener exactamente el mismo esquema y las mismas configuraciones de complementos de origen de datos. Los valores de clave principal en las tablas de origen deben ser únicos. Si hay valores de clave principal duplicados, los datos se sobrescriben. Esta función admite los siguientes dos escenarios:
Una tabla de aplicación configurada con un único origen de datos que contiene varias tablas de origen.
Una tabla de aplicación configurada con varios orígenes de datos, donde cada origen contiene una o más tablas de origen.
Se admiten complementos de conversión de campos de origen de datos.
-
Se admiten los siguientes métodos de sincronización de datos:
Sincronización automática.
Sincronización en tiempo real mediante una Data Transmission Service (DTS) instance que usted adquiera.
Sin sincronización automática.
Puede especificar condiciones de filtro para la sincronización completa de datos.
Puede utilizar un carácter comodín (
*) para coincidir con nombres de tablas de base de datos.
Cuando selecciona Sincronización automática, OpenSearch utiliza un servicio interno para suscribirse al registro binario (binlog) de la base de datos y obtener datos incrementales. Las operaciones iniciadas por el usuario, como eliminar una tabla de base de datos, cambiar permisos de acceso, borrar archivos binlog o modificar la contraseña de la base de datos, pueden interrumpir esta suscripción. OpenSearch no se responsabiliza de los fallos de sincronización de datos causados por dichos cambios. Tenga en cuenta el posible impacto y tome precauciones antes de realizar estas operaciones.
Si selecciona Automatic synchronization, OpenSearch proporciona el servicio de sincronización con base en el mejor esfuerzo y no garantiza la latencia de sincronización. Para aplicaciones sensibles a la latencia, utilice una instancia de Data Transmission Service (DTS) (real-time synchronization).
Limitaciones
El parámetro
binlog_row_imagede la instancia de ApsaraDB RDS debe establecerse en FULL.Solo se admiten instancias de ApsaraDB RDS High-availability Edition y Cluster Edition.
Versiones compatibles de ApsaraDB RDS for MySQL: 5.5, 5.6, 5.7 y 8.0.
Para instancias de ApsaraDB RDS que ejecutan MySQL 5.6, aumente los valores de los parámetros
loose_max_execution_timeyloose_max_statement_time. Esto evita errores comoQuery execution was interrupted, max_statement_time exceededdurante la reindexación.La instancia de ApsaraDB RDS debe pertenecer a la misma cuenta de Alibaba Cloud y encontrarse en la misma región que su aplicación de OpenSearch.
Después de configurar un origen de datos de ApsaraDB RDS para una aplicación Standard Edition, no puede insertar datos incrementales mediante un SDK ni llamando a una API.
Para aplicaciones Standard Edition en regiones fuera de China continental, no puede especificar condiciones de filtro para orígenes de datos de ApsaraDB RDS.
La instrucción REPLACE INTO no es compatible.
Las instrucciones TRUNCATE y DROP no son compatibles. Utilice la instrucción DELETE para eliminar datos.
Las instancias clonadas de ApsaraDB RDS solo son compatibles si la instancia de origen es una instancia de High-availability Edition.
La contraseña de la instancia de ApsaraDB RDS no puede contener el signo de porcentaje (
%). De lo contrario, la tarea de reindexación fallará.No puede utilizar una cuenta con privilegios para acceder a la instancia de ApsaraDB RDS. De lo contrario, la conexión fallará.
No puede combinar columnas de campos de tablas de origen con diferentes esquemas de base de datos.
Los modos
replica clientyreplica slavecon el registro binario deshabilitado no son compatibles. Para saber cómo comprobar y habilitar el registro binario, consulte see the documentation.
Notas de uso
Puede acceder a ApsaraDB RDS a través de una red interna o pública. Alibaba Cloud no cobra tarifas de transferencia de datos cuando OpenSearch recupera datos de ApsaraDB RDS.
OpenSearch solo puede extraer datos completos de la base de datos principal. Realice la importación completa de datos y la reindexación durante horas de baja demanda.
El sistema convierte automáticamente los valores datetime y timestamp de las tablas de ApsaraDB RDS a milisegundos. Debe establecer el tipo de campo correspondiente en el esquema de su aplicación como TIMESTAMP.
Un endpoint interno para la instancia de ApsaraDB RDS está habilitado de forma predeterminada. Debe solicitar manualmente un endpoint público para acceder a la instancia a través de Internet.
Los documentos que no cumplen con las condiciones de filtro del origen de datos se filtran durante la sincronización completa de datos. Si existen documentos con los mismos valores de clave principal en la tabla de aplicación de destino, también se eliminan.
Si no se generan datos incrementales en el origen de datos durante un período prolongado (15 días o más), la sincronización de datos podría interrumpirse. Si esto ocurre, puede resolver el problema realizando manualmente reindexing o una offline change.
-
Para sincronizar datos desde un origen de datos de ApsaraDB RDS, debe agregar los bloques CIDR de los servidores de OpenSearch a la lista de permitidos de direcciones IP de la instancia de ApsaraDB RDS. La siguiente tabla enumera los bloques CIDR para cada región.
Región
Bloque CIDR
China (Hangzhou)
100.104.190.128/26,100.104.241.128/26
China (Beijing)
100.104.16.192/26,100.104.179.0/26
China (Shanghai)
100.104.37.0/26,100.104.46.0/26
China (Shenzhen)
100.104.87.192/26,100.104.132.192/26
China (Qingdao)
100.104.240.128/26,100.104.111.128/26
China (Zhangjiakou)
100.104.155.192/26,100.104.238.64/26
Germany (Frankfurt)
100.104.127.0/26,100.104.35.192/26
US (Silicon Valley) y US (Virginia)
100.104.193.128/26,100.104.119.128/26
Singapore
100.104.58.192/26,100.104.74.192/26
Autorización de cuenta
Tenga en cuenta las siguientes recomendaciones para conectarse a MySQL 5.7 y 8.0:
Al conectarse a una instancia de MySQL 5.7 o posterior, debe autorizar el acceso a la instancia de ApsaraDB RDS y proporcionar una cuenta y contraseña. Tenga precaución al introducir las credenciales por primera vez.
Asegúrese de contar con los permisos de cuenta adecuados: La cuenta debe tener permisos para ver todas las tablas de la base de datos, lo cual es un requisito del servicio DTS ascendente. Compruebe que la instrucción show create table
*.* pueda ejecutarse correctamente. De lo contrario, la sincronización de datos en tiempo real podría fallar.Minimice los cambios en los permisos de la cuenta: La tarea en tiempo real de OpenSearch actúa como un cliente de MySQL. Los cambios en la cuenta pueden interrumpir la tarea en tiempo real y afectar la creación de nuevas versiones de la aplicación. Si cambia la contraseña de la cuenta, debe actualizar la configuración del origen de datos volviéndose a conectar a la base de datos.
-
OpenSearch requiere los siguientes permisos mínimos para acceder a su instancia de ApsaraDB RDS:
Permiso
show create table.Permiso
REPLICATION SLAVEoREPLICATION CLIENT.binlog_row_imagedebe establecerse enFULL.binlog_formatdebe establecerse enROW.
Preguntas frecuentes
Si utiliza un usuario RAM para configurar un origen de datos de ApsaraDB RDS en la consola, debe otorgar los permisos necesarios a dicho usuario. De lo contrario, aparecerá el mensaje de error Failed to connect to RDS service. Try again later. Para obtener más información, consulte Create and authorize a RAM user. Asegúrese de que el rol AliyunServiceRoleForOpenSearch exista en su cuenta de Alibaba Cloud.
La contraseña de la instancia de ApsaraDB RDS no puede contener el signo de porcentaje (
%). De lo contrario, la tarea de reindexación fallará y devolverá el mensaje de error:Illegal hex characters in escape (%) pattern.Los valores de clave principal en una tabla de aplicación deben ser únicos. Si sincroniza datos de varias tablas, los valores de clave principal podrían duplicarse, lo que provoca que los datos se sobrescriban. Para evitar este problema, puede utilizar el complemento StringCatenateExtractor para combinar varios valores de campo. Establezca los campos de origen en
pk,$table. Reemplacepkcon el campo de clave principal de la tabla de ApsaraDB RDS.$tablees una variable predeterminada del sistema que representa el nombre de la tabla. Solo puede utilizar$tablecuando usa un comodín para coincidir con varias tablas. Establezca el delimitador en-o en un carácter personalizado. Por ejemplo, si la tabla de ApsaraDB RDS se llamamy_table_0y el valor de clave principal es123456, el nuevo valor de clave principal después de la concatenación será123456-my_table_0.Para filtrar datos según un campo de tipo date o datetime, debe utilizar el formato de hora correcto en la condición de filtro. Por ejemplo, si el campo de origen se llama createtime, la condición de filtro debe tener el formato
createtime>'2018-03-01 00:00:00'. Se producirá un error si utiliza un formato comocreatetime>'2018-3-1 00:00:00'.
Proceso de configuración
Puede configurar un origen de datos de ApsaraDB RDS cuando construye rápidamente una aplicación.
Para una aplicación existente, vaya a la página de detalles de la aplicación y modifique la configuración realizando una offline change.
Procedimiento
Seleccione ApsaraDB RDS como origen de datos y haga clic en Create Database.
-
Introduzca la información de la instancia de ApsaraDB RDS y haga clic en Connect.
Parámetro
Descripción
Instance ID
El ID de la instancia de base de datos de ApsaraDB RDS, no su nombre. Puede encontrar el ID de la instancia en la consola de ApsaraDB RDS. El ID distingue entre mayúsculas y minúsculas. No se admiten instancias de solo lectura. Formato de ejemplo de ID de instancia: rm-bp19b4g5n11111111
Database Name
El nombre de la base de datos en la instancia. El nombre no distingue entre mayúsculas y minúsculas.
Username
El nombre de usuario (distingue mayúsculas y minúsculas) de una cuenta de base de datos de solo lectura utilizada para recuperar el esquema de la base de datos y los datos completos.
Password
La contraseña de la cuenta de solo lectura.
OpenSearch intenta conectarse y muestra un mensaje según el resultado:
Mensaje
Solución
The ApsaraDB RDS instance is not available for the current user in the current region.
Compruebe que el ID de la instancia sea correcto y asegúrese de que la instancia de ApsaraDB RDS esté en la misma región que la aplicación de OpenSearch. Si el problema persiste, envíe un ticket.
Failed to connect to RDS service.
Compruebe que los detalles de conexión sean correctos, incluido el ID de la instancia, el nombre de la base de datos, el nombre de usuario y la contraseña.
The table does not exist in the current ApsaraDB RDS database.
Compruebe que el nombre de la tabla sea correcto y verifique si la tabla existe en la base de datos de ApsaraDB RDS.
-
Una vez establecida la conexión del origen de datos, seleccione las tablas de origen, haga clic en la flecha derecha para moverlas a la lista seleccionada y haga clic en OK.
En el cuadro de diálogo Select Data Source, haga clic en la pestaña RDS, MaxCompute, PolarDB o PolarDB-X para especificar el tipo de origen de datos. Luego, en la sección Select Database, asocie la base de datos de destino, seleccione las tablas y haga clic en OK.
Seleccione o introduzca los nombres de las tablas a las que desea acceder en la base de datos. Los nombres distinguen entre mayúsculas y minúsculas.
Puede utilizar un patrón como
table_*para coincidir con varias tablas, tales comotable_aytable_b.
-
Asigne los campos. Seleccione los campos de la base de datos que desea extraer y haga clic en OK para completar la creación de la aplicación.
OpenSearch asigna automáticamente los campos de origen a los campos de la aplicación con el mismo nombre. Si los nombres son diferentes, debe crear la asignación manualmente.
En esta página, puede agregar campos de base de datos para asignarlos durante la sincronización.
En la sección Content Conversion, puede agregar complementos de origen de datos. Para obtener más información sobre cómo utilizar estos complementos, haga clic aquí.

-
Configure las condiciones de filtro para el origen de datos de ApsaraDB RDS.
Para la tabla de datos
test_table_1, seleccione Data Transmission Service (DTS) instance como método de sincronización. En la columna Actions, puede hacer clic en Edit o Delete para gestionar el origen de datos agregado. Haga clic en + Add Data para agregar más tablas de datos y establezca condiciones en el área Filter Conditions.Puede configurar varios orígenes de datos para una tabla de aplicación, pero sus estructuras de tabla y configuraciones deben ser idénticas.
Las condiciones de filtro configuradas para el origen de datos de ApsaraDB RDS extraen únicamente los registros que cumplen con las condiciones especificadas. Para obtener más información, consulte Data source filter conditions.