Data Transmission Service (DTS) le permite migrar datos de un clúster de PolarDB for MySQL a un clúster de ApsaraDB for ClickHouse. Esto facilita el análisis centralizado de sus datos operativos.
Pasos mínimos para completar esta migración:
Cumpla con los requisitos previos (versión del clúster de ClickHouse y registro binario, si es necesario).
Otorgue los permisos obligatorios en las bases de datos de origen y de destino.
Cree y configure una tarea de migración de DTS.
Ejecute la comprobación previa, adquiera una instancia e inicie la migración.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Un clúster de ApsaraDB for ClickHouse que ejecute la versión 20.8 o posterior. Consulte Create a cluster.
Un clúster de ClickHouse cuyo espacio de almacenamiento sea mayor que el espacio utilizado en el clúster de origen de PolarDB for MySQL.
Para la migración incremental de datos: el registro binario habilitado en el clúster de origen, con el parámetro
loose_polar_log_binestablecido enon. Consulte Enable binary logging y Modificar parámetros.
Habilitar el registro binario en un clúster de PolarDB for MySQL genera cargos de almacenamiento por los archivos de registro binario. Establezca el periodo de retención del registro binario en como mínimo 3 días (se recomiendan 7 días) para evitar que DTS pierda el acceso a los registros. Consulte Modificar el periodo de retención .
Facturación
|
Migration type |
Link setup fee |
Data transfer cost |
|
Migración de esquemas + migración completa de datos |
Gratis |
Gratis |
|
Migración incremental de datos |
Con cargo |
Consulte Billing overview |
Permisos obligatorios
Otorgue los siguientes permisos antes de configurar la tarea de migración.
Base de datos | Permisos obligatorios | Cómo otorgarlos |
Clúster de origen de PolarDB for MySQL | Permisos de lectura sobre los objetos de migración | Create and manage a database account y Manage the password of a database account |
Clúster de destino de ApsaraDB for ClickHouse (v22.8 o posterior) | Permisos de lectura y escritura; una cuenta con privilegios cumple este requisito | Account management for Community-compatible Edition clusters |
Clúster de destino de ApsaraDB for ClickHouse (v21.8) | Read, Write y Set Permissions; además de Enable DDL | Igual que el anterior |
Límites
Límites de la base de datos de origen
El servidor de la base de datos de origen debe tener suficiente ancho de banda de salida. Un ancho de banda bajo reduce la velocidad de migración.
Una sola tarea de migración admite un máximo de 1,000 tablas cuando se migra a nivel de tabla con asignación de nombres de objetos. Si supera este límite, divida las tablas en varias tareas o realice la migración a nivel de base de datos.
Durante la migración de esquemas y la migración completa de datos, no ejecute operaciones DDL en la base de datos de origen, ya que esto provoca errores en la tarea de migración.
Durante la migración completa de datos, DTS consulta la base de datos de origen y podría crear un bloqueo de metadatos que impide temporalmente las operaciones DDL.
Si solo ejecuta la migración completa de datos (sin migración incremental), no escriba datos nuevos en la base de datos de origen durante el proceso. De lo contrario, se producirá inconsistencia en los datos.
Otros límites
Los nodos de solo lectura del clúster de origen de PolarDB for MySQL no se pueden migrar.
Las tablas externas de Object Storage Service (OSS) no se migran.
No son compatibles los siguientes tipos de objetos: INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER y FOREIGN KEY (FK).
No se admite el cambio entre nodo principal y secundario durante la migración completa de datos. Si ocurre un cambio, vuelva a configurar la tarea de migración.
La operación RENAME TABLE no se puede migrar.
El número máximo de bases de datos para migrar es 256 (límite de ApsaraDB for ClickHouse).
Los nombres de bases de datos, tablas y columnas deben cumplir con ApsaraDB for ClickHouse naming conventions.
La clave de partición (Partition Key) no puede ser un campo que acepte valores nulos. Las claves de partición solo admiten los tipos de datos BIGINT, INT, TIMESTAMP, DATETIME y DATE.
Los datos de tipo hora en ApsaraDB for ClickHouse tienen límites de rango específicos. Para más detalles, consulte Rangos de los tipos de datos de hora.
Cuando la migración de esquemas está habilitada, DTS agrega automáticamente los campos
_sign,_is_deletedy_versiona las tablas de destino. Si omite la migración de esquemas, cree manualmente las tablas de destino con estos campos. Consulte Requisitos de las tablas de destino.Durante la migración con DTS, no escriba datos de otras fuentes en la base de datos de destino, ya que esto genera inconsistencia en los datos.
Si una instancia de DTS presenta errores, el equipo de DTS intenta recuperarla en un plazo de 8 horas. Las operaciones de recuperación pueden incluir reiniciar la instancia y ajustar los parámetros de la instancia de DTS (nunca se modifican los parámetros de la base de datos).
Antes de la migración, evalúe el rendimiento de ambas bases de datos y ejecute el proceso en horarios de baja demanda para reducir la carga.
Si migra tablas específicas (y no una base de datos completa), no utilice pt-online-schema-change para aplicar cambios DDL en línea en esas tablas, ya que esto provoca errores en la migración. En su lugar, use Data Management (DMS). Consulte Cambiar esquemas sin bloquear tablas.
No se admite la migración de datos de tipo VECTOR.
Límites de DDL en línea
|
Tool or mode |
Behavior |
|
DMS o gh-ost (cambios DDL en línea en el origen) |
DTS migra la instrucción DDL original al destino sin migrar los datos de la tabla temporal, lo cual podría generar bloqueos de tabla en el destino. |
|
pt-online-schema-change |
No es compatible. Podrían perderse datos en el destino o la instancia de migración podría presentar errores. |
|
DDL en línea con modo de tabla temporal (incluida la fusión de varias tablas) |
Podrían perderse datos en el destino o la instancia de migración podría presentar errores. |
|
Sintaxis DDL de MySQL no estándar en el origen |
La migración podría presentar errores o podrían perderse datos. |
Operaciones SQL compatibles con la migración incremental
|
Operation type |
Supported SQL statements |
Unsupported SQL statements |
|
DML |
INSERT, UPDATE, DELETE |
— |
|
DDL |
CREATE TABLE, TRUNCATE TABLE, DROP TABLE, ADD COLUMN, MODIFY COLUMN, DROP COLUMN |
RENAME TABLE; todas las instrucciones DDL relacionadas con INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER y FOREIGN KEY |
Asignaciones de tipos de datos
PolarDB for MySQL y ApsaraDB for ClickHouse admiten distintos tipos de datos, por lo que no siempre es posible establecer una correspondencia exacta. Durante la migración de esquemas, DTS asigna los tipos de datos de origen a los tipos más similares compatibles con ClickHouse. Consulte Data type mappings between heterogeneous databases para ver la tabla de asignaciones completa.
Crear una tarea de migración
Paso 1: Ir a la página de migración de datos
Utilice una de las siguientes consolas.
Consola de DTS
Inicie sesión en la consola de DTS.
En el panel de navegación izquierdo, haga clic en Data Migration.
En la esquina superior izquierda, seleccione la región donde residirá la instancia de migración.
Consola de DMS
Los pasos exactos pueden variar según el modo y el diseño de su consola de DMS. Consulte Modo simple y Personalizar el diseño y el estilo de la consola de DMS .
Inicie sesión en la consola de DMS.
En la barra de navegación superior, coloque el puntero sobre Data + AI > DTS (DTS) > Data Migration.
En la lista desplegable junto a Data Migration Tasks, seleccione la región donde residirá la instancia de migración.
Paso 2: Configurar las bases de datos de origen y de destino
Haga clic en Create Task y complete los siguientes parámetros.
Categoría | Parámetro | Descripción |
— | Task Name | Nombre de la tarea de DTS. El sistema genera uno automáticamente. Especifique un nombre descriptivo para identificar la tarea con facilidad. No es obligatorio que el nombre sea único. |
Source Database | Select Existing Connection | Seleccione una instancia de base de datos registrada en la lista desplegable; DTS completará automáticamente los parámetros restantes. Si la instancia no está registrada, complete los parámetros de forma manual. En la consola de DMS, utilice la lista desplegable Select a DMS database instance. |
Database Type | Seleccione PolarDB for MySQL. | |
Access Method | Seleccione Alibaba Cloud Instance. | |
Instance Region | Seleccione la región donde reside el clúster de origen de PolarDB for MySQL. | |
Replicate Data Across Alibaba Cloud Accounts | Seleccione No para una migración dentro de la misma cuenta. | |
PolarDB Cluster ID | Seleccione el identificador del clúster de origen de PolarDB for MySQL. | |
Database Account | Introduzca la cuenta de la base de datos. Consulte Permissions required. | |
Database Password | Introduzca la contraseña de la cuenta de la base de datos. | |
Encryption | Seleccione un método de cifrado según sus necesidades. Para el cifrado Secure Sockets Layer (SSL), consulte Set SSL encryption. | |
Destination Database | Select Existing Connection | Igual que en el origen: seleccione una instancia registrada o complete los parámetros de forma manual. |
Database Type | Seleccione ClickHouse. | |
Access Method | Seleccione Alibaba Cloud Instance. | |
Instance Region | Seleccione la región donde reside el clúster de destino de ApsaraDB for ClickHouse. | |
Replicate Data Across Alibaba Cloud Accounts | Seleccione No para una migración dentro de la misma cuenta. | |
Cluster Type | Seleccione el tipo de clúster de ApsaraDB for ClickHouse. | |
Cluster ID | Seleccione el identificador del clúster de destino de ApsaraDB for ClickHouse. | |
Database Account | Introduzca la cuenta de la base de datos. Consulte Permissions required. | |
Database Password | Introduzca la contraseña de la cuenta de la base de datos. |
Haga clic en Test Connectivity and Proceed.
Asegúrese de que los bloques CIDR de los servidores de DTS estén agregados a la configuración de seguridad (lista de permitidos) de ambas bases de datos. Consulte Agregar direcciones IP de los servidores de DTS a una lista de permitidos .
Paso 3: Configurar los objetos que se van a migrar
En la página Configure Objects, establezca los siguientes parámetros.
Parámetro | Descripción |
Migration Types | Seleccione los tipos de migración según su objetivo: <br>• Schema Migration + Full Data Migration: copia única de datos, sin replicación continua. <br>• Schema Migration + Full Data Migration + Incremental Data Migration: replicación continua que mantiene el destino sincronizado mientras el origen sigue activo. <br><br> Nota Si omite Schema Migration, cree manualmente las tablas de destino antes de iniciar el proceso. Si omite Incremental Data Migration, evite escribir en la base de datos de origen durante la migración. |
Processing Mode of Conflicting Tables | Precheck and Report Errors (predeterminado): la comprobación previa presenta errores si las tablas de destino comparten nombre con las del origen. Utilice la asignación de nombres de objetos para renombrar las tablas si es necesario. <br><br>Ignore Errors and Proceed: omite la comprobación. Durante la migración completa de datos, se conservan los registros conflictivos en el destino; durante la migración incremental, se sobrescriben. Si los esquemas difieren, solo se migran las columnas coincidentes. Úselo con precaución. |
Capitalization of Object Names in Destination Instance | Controla el uso de mayúsculas y minúsculas en los nombres de bases de datos, tablas y columnas del destino. El valor predeterminado es DTS default policy. Consulte Especificar el uso de mayúsculas y minúsculas en los nombres de objetos de la instancia de destino. |
Source Objects | Seleccione bases de datos o tablas en la sección Source Objects y luego haga clic en el ícono de flecha para agregarlas a Selected Objects. |
Selected Objects | Haga clic con el botón derecho en un objeto para renombrarlo. Haga clic en Batch Edit para renombrar varios objetos a la vez. Haga clic con el botón derecho en una tabla para establecer condiciones de filtro de datos. Consulte Asignar nombres de objetos y Set filter conditions Para seleccionar las operaciones SQL de una tabla, haga clic con el botón derecho en el objeto correspondiente dentro del cuadro Selected Objects y seleccione las operaciones deseadas en el cuadro de diálogo que aparece. Para consultar la lista de operaciones compatibles, vea SQL operations that can be incrementally migrated. . |
Paso 4: Configurar los ajustes avanzados
Haga clic en Next: Advanced Settings y configure lo siguiente.
Parámetro | Descripción |
Dedicated Cluster for Task Scheduling | De manera predeterminada, DTS programa la tarea en el clúster compartido. Adquiera un clúster dedicado para mejorar la estabilidad. Consulte ¿Qué es un clúster dedicado de DTS?. |
Time zone of destination database | Zona horaria para los datos de fecha y hora (como DateTime) que se escriben en el clúster de destino de ClickHouse. |
Retry Time for Failed Connections | Tiempo durante el cual DTS reintenta una conexión con errores antes de marcar la tarea como fallida. Rango: de 10 a 1,440 minutos. Valor predeterminado: 720 minutos. Establezca un valor mayor a 30 minutos. <br><br> Nota Si varias tareas comparten la misma base de datos de origen o de destino, se aplica el valor configurado más recientemente. DTS cobra por la instancia durante los reintentos. |
Retry Time for Other Issues | Tiempo durante el cual DTS reintenta operaciones DDL o DML con errores antes de marcar la tarea como fallida. Rango: de 1 a 1,440 minutos. Valor predeterminado: 10 minutos. Establezca un valor mayor a 10 minutos. Debe ser menor que Retry Time for Failed Connections. |
Enable Throttling for Full Data Migration | Limita la carga de lectura y escritura en el origen y el destino durante la migración completa de datos. Configure Queries per second (QPS) to the source database, rows per second (RPS) of Full Data Migration y Data migration speed for full migration (MB/s). Solo está disponible cuando se selecciona Full Data Migration. |
Enable Throttling for Incremental Data Migration | Limita la carga durante la migración incremental de datos. Configure RPS of Incremental Data Migration y Data migration speed for incremental migration (MB/s). Solo está disponible cuando se selecciona Incremental Data Migration. |
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Controla si DTS escribe operaciones SQL de la tabla de latidos en el origen mientras la instancia se está ejecutando. Sí: se suprimen las escrituras de latidos, pero podría mostrarse un indicador de latencia. No: se habilitan las escrituras de latidos, lo cual podría afectar la copia de seguridad física y la clonación de la base de datos de origen. |
Environment Tag | Etiqueta opcional para identificar el entorno (por ejemplo, producción o pruebas). |
Configure ETL | Habilita la función de extracción, transformación y carga (ETL). Sí: introduzca las instrucciones de procesamiento de datos en el editor de código. Consulte Configurar ETL en una tarea de migración o sincronización de datos. No: omita la configuración de ETL. |
Monitoring and Alerting | Configura alertas para errores en la tarea o cuando la latencia supera un umbral. Sí: establezca el umbral de alerta y los contactos de notificación. Consulte Configurar monitoreo y alertas. No: no se generan alertas. |
Paso 5: Configurar los campos de tabla para ClickHouse
Haga clic en Next: Configure Database and Table Fields y configure Type, Primary Key Column, Sort Key, Distribution Key y Partition Key para cada tabla que se va a migrar.
DTS proporciona configuraciones predeterminadas. Para revisarlas o modificarlas, establezca Definition Status en All.
Reglas principales:
Primary Key Column y Sort Key admiten claves compuestas; seleccione varios campos en las listas desplegables.
Seleccione una o más columnas de Primary Key Column para usarlas como Partition Key.
Distribution Key solo admite un único campo.
Deje Partition Key en blanco si no es necesaria, pero no seleccione un campo que acepte valores nulos, ya que esto provoca errores en la tarea de migración.
Las claves de partición solo admiten BIGINT, INT, TIMESTAMP, DATETIME y DATE. Consulte Partition key calculation logic.
Para obtener más información sobre claves primarias, claves de ordenamiento y claves de partición, consulte CREATE TABLE.
Paso 6: Ejecutar la comprobación previa e iniciar la migración
Haga clic en Next: Save Task Settings and Precheck. Para previsualizar los parámetros de API de esta tarea, coloque el puntero sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters antes de continuar.
-
DTS ejecuta una comprobación previa antes de iniciar la migración. Si la comprobación presenta errores:
Haga clic en View Details junto a cada elemento con errores, corrija el problema y luego haga clic en Precheck Again.
Si un elemento muestra una advertencia (no un error) y usted acepta el riesgo, haga clic en Confirm Alert Details > Ignore > OK y, a continuación, haga clic en Precheck Again.
ImportanteIgnorar una alerta de la comprobación previa podría generar inconsistencia en los datos.
Paso 7: Adquirir la instancia e iniciar la migración
Espere hasta que Success Rate alcance el 100% y luego haga clic en Next: Purchase Instance.
-
En la página Purchase Instance, configure los siguientes parámetros.
Sección
Parámetro
Descripción
New Instance Class
Resource Group
Grupo de recursos de la instancia de migración. Valor predeterminado: default resource group. Consulte ¿Qué es Resource Management?
Instance Class
La clase de instancia determina la velocidad de migración. Consulte Clases de instancia de las instancias de migración de datos.
Lea y acepte Data Transmission Service (Pay-as-you-go) Service Terms, luego haga clic en Buy and Start > OK.
Consulte el progreso de la migración en la página Data Migration.
Si la tarea no incluye migración incremental de datos, se detiene automáticamente al finalizar. La columna Status muestra Completed .
Si la tarea incluye migración incremental de datos, se ejecuta de forma continua y nunca se detiene automáticamente. La columna Status muestra Running .
Consultar los datos migrados
Después de la migración, ejecute la siguiente consulta para recuperar datos del clúster de destino de ClickHouse:
SELECT * FROM <table_name> FINAL WHERE _sign > 0;
El modificador
FINALelimina duplicados en las filas con las mismas claves de ordenamiento, lo que garantiza que vea la versión más reciente de cada fila.La cláusula
WHERE _sign > 0filtra las filas eliminadas.
Sin FINAL, las consultas podrían devolver registros duplicados o eliminados.
Apéndice
Requisitos de las tablas de destino
Si omite la migración de esquemas y crea las tablas de destino de forma manual, estas deben cumplir con los siguientes requisitos.
Si una tabla de destino incluye el parámetro ENGINE, establézcalo en ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted). Cualquier otra configuración de motor podría generar inconsistencia en los datos.
|
Cluster edition |
Table creation requirement |
|
Community-compatible Edition |
Cree tanto una tabla local como una distribuida. El nombre de la tabla distribuida debe coincidir con el de la tabla de origen. El nombre de la tabla local debe seguir el formato |
|
Enterprise Edition |
Cree una tabla con el mismo nombre que la tabla de origen. |
Campos adicionales que agrega DTS
DTS agrega automáticamente los siguientes campos a cada tabla de destino durante la migración de esquemas.
Para consultar los datos sincronizados, utilice:
SELECT * FROM <table_name> FINAL WHERE _sign > 0;
Versión del clúster | Campo | Tipo de dato | Valor predeterminado | Descripción |
Community-compatible Edition con ClickHouse V23.8 o anterior |
| Int8 | 1 | Tipo de operación DML: INSERT o UPDATE = |
| UInt64 | 1 | Marca de tiempo en la que se escribió el registro en el clúster de ClickHouse. | |
Enterprise Edition o Community-compatible Edition con ClickHouse V23.8 o posterior |
| Int8 | 1 | Tipo de operación DML: INSERT o UPDATE = |
| UInt8 | 0 | Indica si el registro está eliminado: Insert o Update = | |
| UInt64 | 1 | Marca de tiempo en la que se escribió el registro en el clúster de ClickHouse. |
Rangos de los tipos de datos de tiempo
Si los datos de tiempo del clúster de origen de PolarDB for MySQL se encuentran fuera de los rangos que se muestran a continuación, los valores escritos en ApsaraDB for ClickHouse serán incorrectos.
|
Data type |
Minimum value |
Maximum value |
|
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 |
Lógica de cálculo de la clave de partición
DTS aplica la siguiente lógica para obtener los valores de la clave de partición a partir de los campos de origen.
|
Source field type |
Calculation logic |
|
BIGINT |
|
|
INT |
|
|
TIMESTAMP |
|
|
DATETIME |
|
|
DATE |
|