Todos los productos
Search
Centro de documentos

Data Transmission Service:Migrate data from an ApsaraDB RDS for MySQL instance to an ApsaraDB for ClickHouse cluster

Última actualización: Sep 05, 2026

Data Transmission Service (DTS) migra datos de ApsaraDB RDS for MySQL a ApsaraDB for ClickHouse, lo que permite centralizar el análisis de sus datos operativos. Este tema aborda la configuración integral para esta ruta de migración, e incluye tanto la migración completa como la incremental (CDC).

Antes de empezar

Antes de iniciar la tarea de migración, asegúrese de cumplir con los siguientes requisitos.

Clúster de destino

  • El clúster de destino de ApsaraDB for ClickHouse debe ejecutar la versión 20.8 o posterior. Consulte Create a cluster.

  • El espacio de almacenamiento en el clúster de destino debe superar al almacenamiento utilizado por la instancia RDS MySQL de origen.

Permisos de la cuenta de la base de datos de origen

La cuenta de la base de datos de origen debe tener permisos de lectura sobre los objetos que se van a migrar. Si la cuenta no se creó a través de la consola de RDS, otorgue manualmente los siguientes permisos:

GRANT REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, SELECT ON *.* TO '<account>'@'%';

Consulte Create an account y Modify account permissions.

Permisos de la cuenta del clúster de destino

Versión de ClickHouse Permisos obligatorios Cómo otorgarlos
22.8 o posterior Permisos de lectura y escritura (una cuenta con privilegios cumple este requisito) Manage accounts for a Community-compatible Edition cluster
21.8 Read, Write and Set Permissions y Allow DDL Manage accounts for a Community-compatible Edition cluster

Requisitos del registro binario (solo para migración incremental)

Si planea incluir la migración incremental de datos, configure los siguientes parámetros en la instancia MySQL de origen.

Habilitar la retención del registro binario

El periodo mínimo de retención depende del tipo de origen:

  • ApsaraDB RDS for MySQL: Los registros binarios deben conservarse durante al menos 3 días (se recomiendan 7 días).

  • MySQL autogestionado: Los registros binarios deben conservarse durante al menos 7 días.

Si los registros se conservan por menos tiempo que el mínimo requerido, la tarea de migración podría fallar o provocar pérdida de datos. Para establecer el periodo de retención de una instancia RDS MySQL, consulte Configurar parámetros para la eliminación automática de archivos de registro binario de una instancia RDS.

Configurar el formato del registro binario

Establezca los siguientes parámetros en la instancia MySQL de origen:

Parámetro

Valor obligatorio

binlog_format

ROW

binlog_row_image

FULL

Esta configuración es necesaria para que DTS pueda leer los datos de cambios a nivel de fila. Si no se establece correctamente, la verificación previa fallará y la tarea de migración no podrá iniciarse.

Si el origen es una base de datos MySQL autogestionada implementada en un clúster de doble primario, establezca también log_slave_updates = ON para que DTS pueda obtener todos los registros binarios.

Facturación

Tipo de migración

Costo

Migración de esquema + migración completa de datos

Sin costo

Migración incremental de datos

Con costo. Consulte Billing overview.

Ejecute la migración de datos fuera de las horas pico. La migración completa consume recursos de lectura y escritura tanto en el origen como en el destino, lo que incrementa la carga de la base de datos.

Operaciones SQL compatibles con la migración incremental

Tipo de operación

Operaciones SQL compatibles

DML

INSERT, UPDATE, DELETE

DDL

CREATE TABLE, DROP TABLE, TRUNCATE TABLE, ADD COLUMN, MODIFY COLUMN, DROP COLUMN

Límites

Restricciones de la base de datos de origen

  • Límite de migración a nivel de tabla: Una sola tarea de migración admite un máximo de 1,000 tablas cuando se utiliza la asignación de nombres de objetos. Si supera este límite, divida las tablas en varias tareas o migre toda la base de datos.

  • Columnas invisibles (MySQL 8.0.23 y posteriores): DTS no puede leer columnas invisibles, lo que provoca pérdida de datos. Para hacer visible una columna, ejecute ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;. Las tablas sin claves primarias explícitas generan automáticamente claves primarias invisibles; hágales visibles también. Consulte Invisible Columns y Generated Invisible Primary Keys.

  • RDS MySQL V5.6 de solo lectura: Este tipo de instancia no registra registros de transacciones y no puede usarse como origen para la migración incremental.

  • Instancias con EncDB habilitado: No se admite la migración completa de datos. Las instancias con Transparent Data Encryption (TDE) habilitado admiten la migración de esquemas, la migración completa de datos y la migración incremental de datos.

  • Restricciones de DDL durante la migración: No ejecute instrucciones DDL mientras se realiza la migración del esquema o la migración completa de datos. En caso de migración solo completa, no escriba en la base de datos de origen durante el proceso.

  • Restauraciones de copias de seguridad físicas y operaciones en cascada: Los datos de cambio generados por restauraciones de copias de seguridad físicas u operaciones en cascada en el origen no se registran ni se migran al destino mientras la instancia de migración está en ejecución. Si esto ocurre, puede realizar nuevamente la migración completa de datos, siempre que su negocio no se vea afectado.

Otras restricciones

  • No se admite la migración de INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER ni claves externas.

  • La operación RENAME TABLE no se puede migrar.

  • Si la base de datos de origen tiene operaciones de cambio DDL en línea en modo de tabla temporal, como en escenarios de fusión de múltiples tablas, podría producirse pérdida de datos en la base de datos de destino o fallos en la instancia de migración.

  • Si el origen contiene cambios DDL en línea realizados con pt-online-schema-change, podría ocurrir pérdida de datos o fallos en la migración. Si migra una o más tablas en lugar de una base de datos completa, no utilice pt-online-schema-change para realizar operaciones DDL en línea sobre los objetos de migración en la base de datos de origen; de lo contrario, la migración fallará. Los cambios DDL en línea realizados con DMS o gh-ost son compatibles: DTS migra la instrucción DDL original sin copiar los datos de la tabla temporal, pero esto podría causar bloqueos de tablas en el destino. Puede utilizar Data Management (DMS) para realizar operaciones DDL en línea.

  • Si las instrucciones DDL en el origen no siguen la sintaxis estándar de MySQL, la tarea de migración podría fallar o perderse datos.

  • El número de bases de datos a migrar no debe exceder 256 (el límite de ClickHouse).

  • Los nombres de bases de datos, tablas y columnas deben cumplir con ApsaraDB for ClickHouse naming conventions.

  • Durante la migración del esquema, DTS agrega los campos _sign, _is_deleted y _version a las tablas de destino. Si omite la migración del esquema, cree manualmente las tablas de destino e incluya estos campos. Consulte Appendix: table and field information.

  • No se deben escribir datos provenientes de fuentes distintas a DTS en la base de datos de destino mientras la migración esté en curso.

  • Si una tarea de DTS falla durante su ejecución, el soporte técnico de DTS intentará restaurarla en un plazo de 8 horas. Durante la restauración, la tarea podría reiniciarse y sus parámetros podrían modificarse. Nota: solo se pueden modificar los parámetros de la tarea de DTS, no los de las bases de datos. Los parámetros que pueden modificarse incluyen, entre otros, los descritos en la sección Modificar parámetros de instancia.

Restricciones específicas de ClickHouse

  • Rango de datos de tipo temporal: Los tipos temporales de ClickHouse tienen límites de rango. Los datos de origen fuera de estos rangos se escriben incorrectamente. Consulte Appendix: time information.

  • Clave de partición: No puede ser un campo anulable. Tipos compatibles: BIGINT, INT, TIMESTAMP, DATETIME, DATE.

  • Máximo de bases de datos: 256.

Casos especiales

Orígenes MySQL autogestionados

  • Si realiza un cambio de primario/secundario en la base de datos de origen mientras se ejecuta la tarea de migración de datos, la tarea fallará.

  • DTS calcula la latencia de migración basándose en la marca de tiempo del último dato migrado en el destino y la marca de tiempo actual en el origen. Si no se realiza ninguna operación DML en el origen durante un periodo prolongado, la latencia de migración podría ser inexacta. Para actualizar la latencia, ejecute una operación DML en el origen. Si selecciona una base de datos completa como objeto de migración, puede crear una tabla de latidos que se actualice cada segundo.

  • DTS ejecuta CREATE DATABASE IF NOT EXISTS \ test\`` en la base de datos de origen de forma programada para avanzar la posición del archivo de registro binario.

Orígenes ApsaraDB RDS for MySQL

  • En la migración incremental de datos, no se puede utilizar una instancia de ApsaraDB RDS for MySQL V5.6 de solo lectura como base de datos de origen.

  • DTS ejecuta CREATE DATABASE IF NOT EXISTS \ test\`` en la base de datos de origen de forma programada para avanzar la posición del archivo de registro binario.

Asignaciones de tipos de datos

Los tipos de datos de MySQL y ClickHouse no tienen una correspondencia uno a uno. Durante la migración del esquema, DTS asigna los tipos de origen a tipos compatibles de ClickHouse. Consulte Data type mappings between heterogeneous databases.

Migrar datos de RDS MySQL a ClickHouse

Paso 1: Abrir la página Data Migration

Utilice uno de los siguientes métodos para ir a la página Data Migration.

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 Migration.

  3. En la esquina superior izquierda, seleccione la región donde reside la instancia de migración de datos.

Consola de DMS

Nota

La navegación real puede variar según el modo y el diseño de la consola de DMS. Consulte Simple mode y Customize the layout and style of the DMS console.

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

  2. En la barra de navegación superior, vaya a Data + AI > DTS (DTS) > Data Migration.

  3. En la lista desplegable junto a Data Migration Tasks, seleccione la región donde reside la instancia.

Paso 2: Configurar la tarea

Haga clic en Create Task para abrir la página de configuración de la tarea. Configure los parámetros descritos en la siguiente tabla.

Categoría Parámetro Descripción
— Task Name Un nombre descriptivo para esta tarea de DTS. El nombre no necesita ser único.
Source Database Select Existing Connection Si la instancia está registrada en DTS, selecciónela de la lista y DTS completará automáticamente los detalles de conexión. De lo contrario, configure manualmente los siguientes parámetros. En la consola de DMS, seleccione la instancia de la lista Select a DMS database instance.
Database Type Seleccione MySQL.
Access Method Seleccione Alibaba Cloud Instance.
Instance Region La región donde reside la instancia RDS MySQL de origen.
Replicate Data Across Alibaba Cloud Accounts Seleccione No (migración dentro de la misma cuenta).
RDS Instance ID El ID de la instancia RDS MySQL de origen.
Database Account La cuenta de la base de datos para la instancia de origen. Consulte Antes de empezar.
Database Password La contraseña de la cuenta de la base de datos.
Encryption Seleccione Non-encrypted o SSL-encrypted. Para usar cifrado SSL, primero debe habilitarlo en la instancia RDS. Consulte Use a cloud certificate to enable SSL encryption.
Destination Database Select Existing Connection Si el clúster está registrado en DTS, selecciónelo de la lista. De lo contrario, configure manualmente los siguientes parámetros.
Database Type Seleccione ClickHouse.
Access Method Seleccione Alibaba Cloud Instance.
Instance Region La región donde reside el clúster de ClickHouse de destino.
Replicate Data Across Alibaba Cloud Accounts Seleccione No (migración dentro de la misma cuenta).
Cluster Type Seleccione el tipo de clúster.
Cluster ID El ID del clúster de ClickHouse de destino.
Database Account La cuenta de la base de datos para el clúster de destino. Consulte Antes de empezar.
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 la parte inferior de la página.

Los bloques CIDR de los servidores de DTS deben agregarse a la configuración de seguridad tanto de la base de datos de origen como de la de destino. Consulte Agregar los bloques CIDR de los servidores de DTS . Si el origen o el destino es una base de datos autogestionada que no utiliza el método de acceso Alibaba Cloud Instance , haga clic en Test Connectivity en el cuadro de diálogo CIDR Blocks of DTS Servers .

Paso 4: Seleccionar los objetos a migrar

En la página Configure Objects, configure los siguientes ajustes.

Configuración Descripción
Migration Types Seleccione los tipos de migración según su escenario: <br>- Schema Migration + Full Data Migration: Migra la instantánea actual. Sin replicación continua. <br>- Schema Migration + Full Data Migration + Incremental Data Migration: Migra la instantánea y aplica los cambios continuos. Utilice esta opción para mantener el destino sincronizado durante la ventana de transición. <br><br>
Nota

Si omite Schema Migration, cree manualmente las tablas de destino antes de iniciar la tarea. Si omite Incremental Data Migration, no escriba en la base de datos de origen durante la migración.

Processing Mode of Conflicting Tables Precheck and Report Errors (predeterminado): DTS verifica si existen tablas con nombres idénticos en el origen y el destino. La tarea no puede iniciarse si hay conflictos. Utilice la asignación de nombres de objetos para resolver conflictos sin eliminar las tablas de destino. <br><br>Ignore Errors and Proceed: Omite la verificación. Durante la migración completa, los registros en conflicto en el destino se conservan (no se sobrescriben). Durante la migración incremental, los registros en conflicto se sobrescriben. Utilice esta opción con precaución.
Capitalization of Object Names in Destination Instance Especifica cómo se aplican mayúsculas y minúsculas a los nombres de bases de datos, tablas y columnas en el destino. El valor predeterminado es DTS default policy. Consulte Specify the capitalization of object names.
Source Objects Seleccione los objetos (bases de datos o tablas) que desea migrar y luego haga clic en el icono de flecha para moverlos a Selected Objects.
Selected Objects Haga clic derecho en una tabla para cambiarle el nombre (objeto individual) o establecer condiciones de filtro de filas. Haga clic en Batch Edit para cambiar el nombre de varios objetos a la vez (cambio de nombre por lotes).
Nota

Cambiar el nombre de un objeto puede provocar que los objetos dependientes fallen en la migración.

Nota
  • Para establecer condiciones de filtro para los datos, haga clic derecho en la tabla que se va a migrar dentro del cuadro Selected Objects y defina las condiciones de filtro en el cuadro de diálogo que aparece. Para obtener más información, consulte Set filter conditions.

  • Si utiliza la función de asignación de nombres de objetos, otros objetos que dependan del objeto renombrado podrían fallar en la migración.

Paso 5: Configurar ajustes avanzados

Haga clic en Next: Advanced Settings y configure los siguientes parámetros.

Parámetro

Descripción

Dedicated Cluster for Task Scheduling

De forma predeterminada, DTS programa las tareas en el clúster compartido. Para mayor estabilidad, adquiera un clúster dedicado. Consulte What is a DTS dedicated cluster.

Time zone of destination database

La zona horaria para los datos DateTime escritos en ClickHouse.

Retry Time for Failed Connections

Tiempo durante el cual DTS reintenta tras un fallo de conexión. Rango: 10–1,440 minutos. Predeterminado: 720. Establezca este valor en al menos 30 minutos. Si DTS se reconecta dentro de esta ventana, la tarea se reanudará automáticamente.

Retry Time for Other Issues

Tiempo durante el cual DTS reintenta tras fallos de DDL o DML. Rango: 1–1,440 minutos. Predeterminado: 10. Establezca este valor en al menos 10 minutos. Debe ser menor que Retry Time for Failed Connections.

Enable Throttling for Full Data Migration

Limita la carga de lectura/escritura en el origen y el destino durante la migración completa. Configure Queries per second (QPS) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s). Disponible solo cuando se selecciona Full Data Migration.

Enable Throttling for Incremental Data Migration

Limita la carga durante la migración incremental. Configure RPS of Incremental Data Migration y Data migration speed for incremental migration (MB/s). Disponible solo cuando se selecciona Incremental Data Migration.

Whether to delete SQL operations on heartbeat tables of forward and reverse tasks

Yes:configuración de notificaciones de alerta DTS no escribe SQL de latidos en el origen. Es posible que se muestre un valor de latencia de tarea. No: DTS escribe SQL de latidos, lo que podría afectar funciones como la copia de seguridad física y la clonación del origen.

Environment Tag

Opcional. Seleccione una etiqueta para identificar el entorno de la instancia.

Configure ETL

Yes: Habilita la función de extracción, transformación y carga (ETL). Introduzca las instrucciones de procesamiento de datos en el editor. Consulte Configure ETL in a data migration or data synchronization task. No: Deshabilita ETL.

Monitoring and Alerting

Yes: Configura alertas para fallos de tarea o incumplimientos de umbrales de latencia. Establezca el umbral de alerta y los contactos de notificación. Consulte Configure monitoring and alerting. No: Sin alertas.

Paso 6: Configurar campos de tabla de ClickHouse

Haga clic en Next: Configure Database and Table Fields para establecer el Type, Primary Key Column, Sort Key, Distribution Key y Partition Key para cada tabla de destino en ClickHouse.

  • DTS proporciona una configuración predeterminada. Para revisar o modificar todas las tablas, establezca Definition Status en All.

  • Primary Key Column y Sort Key admiten claves compuestas; seleccione varios campos de la lista desplegable.

  • Partition Key debe ser una o más columnas de Primary Key Column. Solo se admiten los tipos BIGINT, INT, TIMESTAMP, DATETIME y DATE. Los campos anulables no pueden utilizarse como clave de partición. Se permite dejar la clave de partición en blanco.

  • Distribution Key acepta únicamente un solo campo.

Para obtener detalles sobre claves primarias, claves de ordenamiento y claves de partición en ClickHouse, consulte CREATE TABLE.

Paso 7: Ejecutar una verificación previa

Haga clic en Next: Save Task Settings and Precheck.

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

DTS ejecuta una verificación previa antes de iniciar la migración. Si la verificación falla:

  1. Haga clic en View Details junto al elemento fallido.

  2. Corrija el problema basándose en los resultados de la verificación.

  3. Haga clic en Precheck Again.

Si un elemento de alerta puede ignorarse: haga clic en Confirm Alert Details > Ignore > OK > Precheck Again. Ignorar alertas puede causar inconsistencia en los datos.

Paso 8: Adquirir la instancia e iniciar la migración

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

  2. En la página Purchase Instance, configure lo siguiente:

    Sección Parámetro Descripción
    New Instance Class Resource Group El resource group para la instancia de migración. Predeterminado: default resource group. Consulte What is Resource Management?
    Instance Class La clase de instancia determina la velocidad de migración. Consulte Instance classes of data migration instances.
  3. Lea y acepte los Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Haga clic en Buy and Start > OK.

Verificar la migración

Monitoree la tarea en la página Data Migration.

  • Migración solo completa (sin incremental): La tarea se detiene automáticamente al finalizar. Status muestra Completed.

  • Migración con datos incrementales: La tarea se ejecuta continuamente. Status muestra Running. Detenga la tarea manualmente después de realizar la transición de sus aplicaciones.

Consultar correctamente los datos migrados

DTS utiliza el motor ReplicatedReplacingMergeTree y agrega los campos _sign, _is_deleted y _version a las tablas de destino. Sin la palabra clave FINAL, las consultas podrían devolver filas duplicadas o eliminadas. Utilice siempre FINAL y filtre por _sign:

SELECT * FROM <table_name> FINAL WHERE _sign > 0;

La condición WHERE _sign > 0 filtra las filas marcadas como eliminadas.

Apéndice: información temporal

Los tipos temporales de ClickHouse tienen límites de rango. Los valores de origen fuera de estos rangos se escriben incorrectamente en el destino.

Tipo de dato

Valor mínimo

Valor máximo

Date

1970-01-01 00:00:00

2149-06-06 00:00:00

Date32

1925-01-01 00:00:00

2283-11-11 00:00:00

DateTime

1970-01-01 08:00:00

2106-02-07 14:28:15

DateTime64

1925-01-01 08:00:00

2283-11-12 07:59:59

Apéndice: información de tablas y campos

Requisitos de tabla para creación manual

Si omite la migración de esquemas, cree las tablas de destino antes de iniciar la tarea. Las tablas deben cumplir con estos requisitos.

Importante

Si la tabla de destino incluye una cláusula ENGINE, debe ser ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted). De lo contrario, podría producirse inconsistencia en los datos.

  • Community Edition: Cree una tabla local y una tabla distribuida. El nombre de la tabla distribuida debe coincidir con el nombre de la tabla de origen. El nombre de la tabla local debe ser <distributed_table_name>_local.

  • Enterprise Edition: Cree una tabla con el mismo nombre que la tabla de origen.

Campos gestionados por DTS

DTS agrega automáticamente los siguientes campos a las tablas de destino durante la migración del esquema.

Versión Campo Tipo Predeterminado Descripción
Community Edition anterior a 23.8 _sign Int8 1 Tipo de operación DML: INSERT o UPDATE = 1, DELETE = -1
_version UInt64 1 Marca de tiempo cuando la fila se escribió en ClickHouse
Enterprise Edition y Community Edition 23.8 y posteriores _sign Int8 1 Tipo de operación DML: INSERT o UPDATE = 1, DELETE = -1
_is_deleted UInt8 0 Indicador de eliminación: INSERT o UPDATE = 0, DELETE = 1
_version UInt64 1 Marca de tiempo cuando la fila se escribió en ClickHouse

Lógica de cálculo de la clave de partición

Tipo de campo de origen

Expresión de clave de partición

BIGINT

intDiv(key, 18014398509481984)

INT

intDiv(key, 4194304)

TIMESTAMP

toYYYYMM(key)

DATETIME

toYYYYMM(key)

DATE

toYYYYMM(key)