Todos los productos
Search
Centro de documentos

Data Transmission Service:Synchronize data from a self-managed TiDB database to an AnalyticDB for MySQL V3.0 cluster

Última actualización: Sep 05, 2026

Utilice Data Transmission Service (DTS) para sincronizar datos desde una base de datos TiDB autogestionada hacia un clúster de AnalyticDB for MySQL V3.0 y realizar análisis en tiempo real.

Funcionamiento

DTS lee los cambios incrementales de TiDB mediante un clúster de Kafka que actúa como búfer de captura de cambios de datos (CDC) y, posteriormente, escribe los datos en AnalyticDB for MySQL V3.0. El flujo completo es el siguiente:

TiDB → Clúster de Kafka → DTS → AnalyticDB for MySQL V3.0

TiDB no expone registros binarios directamente a DTS. Debe configurar uno de los siguientes componentes de CDC para publicar los cambios incrementales en un tema de Kafka:

  • TiDB Binlog: utiliza los componentes Pump y Drainer.

  • TiCDC: utiliza el formato Canal-JSON.

DTS lee desde la partición 0 del tema de Kafka y aplica los cambios al clúster de destino.

Límites

Revise estos límites antes de configurar la tarea.

Límites de la base de datos de origen

Límite

Detalles

Se requiere clave primaria o restricción única

Las tablas que se van a sincronizar deben tener una restricción PRIMARY KEY o UNIQUE con todos los campos únicos. Las tablas sin esta restricción pueden generar registros duplicados en el destino.

Restricciones de DDL durante la sincronización

No ejecute sentencias DDL que modifiquen los esquemas de bases de datos o tablas durante la sincronización de esquemas o la sincronización completa de datos, ya que la tarea fallará.

Pérdida de longitud de índice de prefijo

TiDB no almacena la longitud del índice de prefijo en los metadatos. Esta longitud se pierde al sincronizar los datos con AnalyticDB for MySQL V3.0, lo que puede provocar errores en la instancia de destino. Corrija manualmente las longitudes de los índices de prefijo en todas las tablas que los utilicen.

Límite de tablas por tarea

Si selecciona tablas individuales (no bases de datos completas) y les cambia el nombre, cada tarea admite hasta 1,000 tablas. Si supera este límite, configure varias tareas o sincronice bases de datos completas.

Configuración de Kafka obligatoria

Despliegue un clúster de Kafka e instale TiDB Binlog o TiCDC antes de crear la tarea de DTS.

Ancho de banda de salida

El servidor que aloja TiDB debe contar con suficiente ancho de banda de salida. Un ancho de banda insuficiente reduce la velocidad de sincronización.

Límites del destino y de la tarea

Límite

Detalles

Partición de Kafka

DTS solo lee desde la partición 0 del tema de Kafka. Cree el tema con exactamente una partición.

Se requiere clave primaria personalizada

Especifique una clave primaria personalizada en AnalyticDB for MySQL V3.0 o configure Primary Key Column en el paso Configurations for Databases, Tables, and Columns. De lo contrario, la tarea podría fallar.

Umbral de uso de disco

Si el uso de disco en cualquier nodo del clúster de AnalyticDB for MySQL V3.0 supera el 80%, la tarea de DTS se retrasa y devuelve errores. Calcule el espacio en disco necesario antes de iniciar.

Conflictos con copias de seguridad

Si se realiza una copia de seguridad del clúster de destino mientras DTS está en ejecución, la tarea fallará.

Tipos de datos heterogéneos

Los tipos de datos de TiDB y AnalyticDB for MySQL V3.0 no tienen una correspondencia uno a uno. Consulte Data type mappings for initial schema synchronization para obtener más detalles.

Precisión de FLOAT/DOUBLE

DTS utiliza ROUND(COLUMN,PRECISION) para recuperar valores FLOAT y DOUBLE. FLOAT tiene una precisión predeterminada de 38 dígitos y DOUBLE de 308 dígitos. Compruebe que estos valores predeterminados cumplen sus requisitos.

Vistas materializadas no compatibles

Durante la sincronización de esquemas, DTS no admite la sincronización de vistas materializadas hacia la instancia de destino de AnalyticDB for MySQL. Para utilizar vistas materializadas, créelas manualmente en la instancia de destino una vez finalizada la sincronización.

Inicialización del desplazamiento de la tarea

Después de crear la tarea, realice operaciones en la base de datos de origen o inserte datos de prueba de inmediato. Esto actualiza el desplazamiento de la tarea. Si omite este paso, la tarea podría fallar debido a una latencia excesiva.

Datos de otros orígenes

No escriba datos en el clúster de destino desde otros orígenes durante la sincronización, ya que esto provoca inconsistencia en los datos.

Reanudación de tareas con errores

DTS reintenta automáticamente las tareas con errores durante un máximo de 7 días. Antes de trasladar las cargas de trabajo al clúster de destino, detenga o libere cualquier tarea con errores. Como alternativa, ejecute REVOKE para eliminar los permisos de escritura de DTS en la base de datos de destino y evitar que una tarea reanudada sobrescriba datos nuevos.

Rendimiento de la sincronización completa de datos

La sincronización completa de datos incrementa la carga tanto en la base de datos de origen como en la de destino. Ejecútela fuera del horario pico, cuando el uso de CPU sea inferior al 30%.

Tamaño del espacio de tablas tras la sincronización completa

Las operaciones INSERT simultáneas durante la sincronización completa de datos causan fragmentación en las tablas. El espacio de tablas de destino será mayor que el de origen.

Errores de DDL

Si una sentencia DDL falla en la base de datos de destino, la tarea continúa. Revise los registros de la tarea para ver las sentencias DDL fallidas.

SLA de soporte técnico de DTS

Si una tarea de DTS no se ejecuta correctamente, el soporte técnico de DTS intentará restaurarla en un plazo de 8 horas. Durante la restauración, es posible que se reinicie la tarea y se modifiquen sus parámetros. Solo se pueden modificar los parámetros de la tarea; los parámetros de la base de datos no se alteran.

Nota
  • Si el destino es un clúster de AnalyticDB for MySQL, DTS solo admite la escritura de tipos de datos compatibles de forma nativa con AnalyticDB for MySQL. Esto incluye tipos de datos básicos y tipos de datos complejos como ARRAY, MAP y JSON. No se admiten tipos de datos como MULTIVALUE.

Operaciones SQL para la sincronización incremental

Tipo de operación

Sentencias compatibles

DML

INSERT, UPDATE, DELETE

DDL

CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN

Cuando DTS escribe sentencias UPDATE en AnalyticDB for MySQL V3.0, las convierte automáticamente en REPLACE INTO . Si la sentencia UPDATE afecta a la clave primaria, DTS la convierte en DELETE seguido de INSERT.

Facturación

Tipo de sincronización

Costo

Sincronización de esquemas y sincronización completa de datos

Gratis

Sincronización incremental de datos

Con cargo. Consulte Descripción general de facturación.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Un clúster de AnalyticDB for MySQL V3.0 con almacenamiento disponible superior al tamaño total de los datos de su base de datos TiDB. Consulte Create a cluster.

  • Un clúster de Kafka o una instancia de ApsaraMQ for Kafka desplegada y accesible desde el servidor de TiDB.

  • Los permisos necesarios para la cuenta de la base de datos (consulte Permisos necesarios).

Permisos necesarios

Base de datos

Permisos necesarios

Referencia

TiDB

SELECT en los objetos a sincronizar, SHOW VIEW

Gestión de privilegios

AnalyticDB for MySQL V3.0

Permisos de lectura y escritura en la base de datos de destino

Create a database account

Configurar la captura de datos incrementales

DTS requiere que los eventos de cambio incremental de TiDB se publiquen en un tema de Kafka. Elija uno de los siguientes métodos.

Elegir un método

TiDB Binlog

TiCDC

Componentes

Pump + Drainer

TiCDC (gestionado mediante TiUP)

Formato de salida

Formato binlog predeterminado de TiDB

Formato Canal-JSON

Recomendado para

Despliegues existentes de TiDB Binlog

Nuevas configuraciones y TiDB v4.0+

Configuración de DTS

Utilizar el formato binlog predeterminado de la base de datos TiDB

Utilizar el formato TiCDC Canal-JSON

Preparar el clúster de Kafka

Ambos métodos requieren un clúster de Kafka. Utilice una de las siguientes opciones:

Independientemente de la opción que elija:

  • Despliegue el clúster de Kafka en la misma red o nube privada virtual (VPC) que el servidor de TiDB para minimizar la latencia de red.

  • Establezca los parámetros del broker de Kafka message.max.bytes y replica.fetch.max.bytes en valores altos, y configure el parámetro del consumidor fetch.message.max.bytes con un valor alto equivalente. Esto garantiza que el clúster pueda manejar el volumen de datos de registros binarios provenientes de TiDB. Consulte la referencia de configuración de Kafka.

Después de configurar el clúster, cree un tema con exactly one partition. DTS solo lee desde la partición 0, por lo que múltiples particiones provocarán pérdida de datos.

Opción 1: TiDB Binlog

  1. Despliegue Pump y Drainer en servidores dentro de la misma red interna que TiDB. Consulte el despliegue de clúster de TiDB Binlog.

  2. Edite el archivo de configuración de Drainer para apuntar a su clúster de Kafka como destino descendente. Consulte la guía del cliente consumidor de Binlog. Compruebe que el servidor de TiDB puede conectarse al clúster de Kafka antes de continuar.

  3. Agregue los bloques CIDR de los servidores DTS a la lista de permitidos de la base de datos TiDB. Consulte Agregar los bloques CIDR de los servidores DTS.

Opción 2: TiCDC

  1. Instale TiCDC mediante TiUP. Agregue un nuevo nodo de TiCDC o escale horizontalmente un nodo existente en el clúster de TiDB. Consulte Desplegar y mantener TiCDC.

  2. Cree un changefeed para replicar datos incrementales desde TiDB hacia su clúster de Kafka. Utilice tiup cdc cli changefeed create y especifique el URI del sink Canal-JSON. Consulte Replicar datos a Kafka. Compruebe que el servidor de TiDB puede conectarse al clúster de Kafka antes de continuar.

Crear una tarea de sincronización de datos

Paso 1: Ir a la página de sincronización de datos

Utilice la consola de DTS o la consola de DMS.

Consola de DTS

  1. Inicie sesión en la consola de DTS.DTS console

  2. En el panel de navegación izquierdo, haga clic en Data Synchronization.

  3. En la esquina superior izquierda, seleccione la región donde residirá la instancia de sincronización.

Consola de DMS

Los pasos pueden variar según el diseño de la consola de DMS. Consulte Modo simple y Personalizar el diseño y estilo de la consola de DMS .
  1. Inicie sesión en la consola de DMS.DMS console

  2. En la barra de navegación superior, pase el puntero sobre Data + AI y seleccione DTS (DTS) > Data Synchronization.

  3. En la lista desplegable a la derecha de Data Synchronization Tasks, seleccione la región donde residirá la instancia de sincronización.

Paso 2: Configurar las bases de datos de origen y destino

Haga clic en Create Task y configure los siguientes parámetros.

Base de datos de origen

Parámetro

Descripción

Task Name

Nombre de la tarea de DTS. DTS genera uno automáticamente. Especifique un nombre descriptivo para facilitar su identificación. El nombre no necesita ser único.

Select a DMS database instance

Seleccione una base de datos registrada existente o deje este campo vacío y complete los parámetros a continuación. Para registrar una base de datos: en la consola de DMS, haga clic en Add DMS Database Instance; en la consola de DTS, utilice la página Database Connections. Consulte Registrar una instancia de base de datos de Alibaba Cloud y Registrar una base de datos alojada en un servicio de nube de terceros o una base de datos autogestionada.

Database Type

Seleccione TiDB.

Access Method

Seleccione el método de acceso que corresponda al lugar donde está desplegado TiDB. Este ejemplo utiliza Self-managed Database on ECS. Para otros métodos de acceso, prepare primero el entorno requerido. Consulte Preparation overview.

Instance Region

La región donde reside TiDB.

ECS Instance ID

El ID de la instancia de ECS que aloja TiDB.

Port Number

El puerto del servicio de TiDB. Valor predeterminado: 4000.

Database Account

La cuenta de TiDB con los permisos necesarios.

Database Password

La contraseña de la cuenta de TiDB.

Migrate Incremental Data

Siempre establecido en Yes configuración de notificaciones de alertas. Esto no se puede cambiar. Para sincronizar sin datos incrementales, cree una tarea de migración de datos en su lugar. Consulte Migrate data from a self-managed TiDB database to an AnalyticDB for MySQL V3.0 cluster.

Kafka Cluster Type

Seleccione el método de acceso que corresponda al lugar donde está desplegado su clúster de Kafka. Este ejemplo utiliza Self-managed Database on ECS. Si selecciona Express Connect, VPN Gateway, or Smart Access Gateway, seleccione también una VPC en Connected VPC y especifique Domain Name or IP.

Kafka Data Source Component

Seleccione Use the default binlog format of the TiDB database (para TiDB Binlog) o Use the TiCDC Canal-JSON format (para TiCDC), según lo que haya configurado en Configurar la captura de datos incrementales.

ECS Instance ID

El ID de la instancia de ECS donde está desplegado el clúster de Kafka.

Port Number

El puerto del servicio de Kafka.

Kafka Cluster Account / Kafka Cluster Password

El nombre de usuario y la contraseña de Kafka. Déjelos en blanco si la autenticación no está habilitada.

Kafka Version

La versión de Kafka. Si la versión es 1.0 o posterior, seleccione 1.0.

Encryption

Seleccione Non-encrypted o SCRAM-SHA-256 según sus requisitos de seguridad.

Topic

El tema de Kafka que recibe los datos incrementales de TiDB.

Base de datos de destino

Parámetro

Descripción

Select a DMS database instance

Seleccione una base de datos registrada existente o deje este campo vacío y complete los parámetros a continuación.

Database Type

Seleccione AnalyticDB for MySQL 3.0.

Access Method

Seleccione Alibaba Cloud Instance.

Instance Region

La región donde reside el clúster de AnalyticDB for MySQL V3.0.

Instance ID

El ID del clúster de destino de AnalyticDB for MySQL V3.0.

Database Account

La cuenta de la base de datos con permisos de lectura y escritura.

Database Password

La contraseña de la cuenta de la base de datos.

Paso 3: Probar la conectividad

Haga clic en Test Connectivity and Proceed. En el cuadro de diálogo CIDR Blocks of DTS Servers, haga clic en Test Connectivity.

Si los bloques CIDR de DTS aún no están agregados a la configuración de seguridad de su base de datos, agréguelos antes de continuar. Consulte Agregar los bloques CIDR de los servidores DTS.

Paso 4: Configurar los objetos a sincronizar

En el paso Configure Objects, establezca los siguientes parámetros.

Parámetro Descripción
Synchronization Types Seleccione Schema Synchronization, Full Data Synchronization y Incremental Data Synchronization. Los tres son obligatorios. Incremental Data Synchronization está seleccionado de forma predeterminada; debe seleccionar también los otros dos. La sincronización completa de datos proporciona la línea base de datos históricos para la sincronización incremental.
Processing Mode of Conflicting Tables Precheck and Report Errors (predeterminado): falla la comprobación previa si existen tablas con nombres idénticos en el destino. Utilice la asignación de nombres de objetos para resolver conflictos sin eliminar las tablas de destino. Consulte Asignar nombres de objetos. Ignore Errors and Proceed: omite la comprobación previa de nombres de tabla idénticos. Durante la sincronización completa, se conservan los registros existentes en el destino. Durante la sincronización incremental, los registros de destino se sobrescriben. Utilícelo con precaución, ya que esto puede causar inconsistencia en los datos.
Capitalization of Object Names in Destination Instance Controla el uso de mayúsculas en los nombres de bases de datos, tablas y columnas en el destino. Valor predeterminado: DTS default policy. Consulte Especificar el uso de mayúsculas en los nombres de objetos de la instancia de destino.
Source Objects Seleccione las bases de datos o tablas que desea sincronizar y haga clic en el icono de flecha para moverlas a Selected Objects.
Selected Objects Para cambiar el nombre de un objeto en el destino, haga clic derecho sobre él y utilice la asignación de nombres de objetos. Para cambiar el nombre de varios objetos a la vez, haga clic en Batch Edit. Para filtrar filas con condiciones SQL WHERE, haga clic derecho en una tabla y especifique las condiciones. Consulte Specify filter conditions. Cambiar el nombre de un objeto puede afectar a los objetos dependientes.

Paso 5: Configurar ajustes avanzados

Haga clic en Next: Advanced Settings y configure lo siguiente.

Parámetro

Descripción

Retry Time for Failed Connections

Tiempo durante el cual DTS reintenta conexiones fallidas después de iniciar la tarea. Rango: 10–1440 minutos. Valor predeterminado: 720 minutos. Establézcalo en más de 30 minutos. Si varias tareas comparten la misma base de datos de origen o destino, prevalece el tiempo de reintento más corto.

Retry Time for Other Issues

Tiempo durante el cual DTS reintenta operaciones DDL o DML fallidas. Rango: 1–1440 minutos. Valor predeterminado: 10 minutos. Establézcalo en más de 10 minutos. Este valor debe ser menor que Retry Time for Failed Connections.

Enable Throttling for Full Data Synchronization

Limita la carga de lectura y escritura durante la sincronización completa de datos. Configure QPS (queries per second) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s). Disponible solo cuando Full Data Synchronization está seleccionado.

Enable Throttling for Incremental Data Synchronization

Limita la carga de escritura durante la sincronización incremental de datos. Configure RPS of Incremental Data Synchronization y Data synchronization speed for incremental synchronization (MB/s).

Environment Tag

Una etiqueta opcional para identificar la instancia de DTS por entorno (por ejemplo, producción o pruebas).

Configure ETL

Seleccione Yes para habilitar extracción, transformación y carga (ETL) e introducir sentencias de procesamiento de datos. Seleccione No para omitirlo. Consulte ¿Qué es ETL?

Monitoring and Alerting

Seleccione Yes para configurar alertas por fallos en la tarea o superación de umbrales de latencia. Configure el umbral de alerta y la configuración de notificaciones. Consulte Configurar monitoreo y alertas.

Paso 6: Configurar la verificación de datos (opcional)

Haga clic en Next Step: Data Verification para configurar la verificación de datos. Consulte Configurar una tarea de verificación de datos.

Paso 7: Configurar campos de bases de datos y tablas (opcional)

Haga clic en Next: Configure Database and Table Fields para configurar ajustes específicos de AnalyticDB for MySQL V3.0 para cada tabla.

Este paso solo está disponible cuando Schema Synchronization está seleccionado. Establezca Definition Status en All para ver y modificar todas las tablas.

Parámetro

Descripción

Type

El tipo de tabla en AnalyticDB for MySQL V3.0.

Primary Key Column

Las columnas de clave primaria para la tabla. Admite claves primarias compuestas.

Distribution Key

La clave de distribución para la tabla. Debe ser una o más de las columnas de clave primaria.

Partition Key / Partitioning Rules / Partition Lifecycle

Configuración de particionamiento para la tabla. Consulte CREATE TABLE.

Paso 8: Guardar la tarea y ejecutar la comprobación previa

  • Para previsualizar los parámetros de API de esta configuración de tarea, pase el puntero sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters.

  • Haga clic en Next: Save Task Settings and Precheck para guardar e iniciar la comprobación previa.

Si la comprobación previa falla:

  • Haga clic en View Details junto a cada elemento fallido, corrija el problema y vuelva a ejecutar la comprobación previa.

  • Si un elemento muestra una alerta que se puede ignorar, haga clic en Confirm Alert Details, luego en Ignore, después en OK y finalmente en Precheck Again. Ignorar alertas puede causar inconsistencia en los datos.

Paso 9: Adquirir una instancia

  1. Espere a que Success Rate alcance 100% y haga clic en Next: Purchase Instance.

  2. En la página de compra, configure lo siguiente.

Parámetro

Descripción

Billing Method

Subscription: pago anticipado por un plazo fijo. Más rentable para uso a largo plazo. Pay-as-you-go: facturación por hora. Adecuado para uso a corto plazo. Libere la instancia cuando ya no la necesite para evitar cargos innecesarios.

Resource Group Settings

El resource group para la instancia de sincronización. Valor predeterminado: default resource group. Consulte ¿Qué es Resource Management?

Instance Class

El nivel de velocidad de sincronización. Consulte Clases de instancia de sincronización de datos.

Subscription Duration

Disponible para el método de facturación por suscripción. Opciones: 1–9 meses, 1 año, 2 años, 3 años o 5 años.

  1. Lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms.

  2. Haga clic en Buy and Start y luego en OK en el cuadro de diálogo de confirmación.

La tarea aparecerá en la lista de tareas. Monitoree su progreso desde allí.

Pasos siguientes