Data Transmission Service (DTS) migra los datos de un clúster de PolarDB for MySQL a una base de datos Doris autogestionada. Esto permite ejecutar cargas de trabajo analíticas a gran escala en Doris. En este tema se describe la configuración con una base de datos Doris desplegada en una instancia de ECS como destino.
Para completar esta migración:
Otorgue los permisos obligatorios a las cuentas de la base de datos.
Cree una tarea de DTS y conecte las bases de datos de origen y de destino.
Seleccione los tipos y los objetos de migración.
Ejecute una comprobación previa, adquiera una instancia de DTS e inicie la migración.
Requisitos previos
Cree la base de datos Doris de destino. El espacio de almacenamiento disponible en esta base de datos debe ser mayor que el espacio utilizado por el clúster de PolarDB for MySQL de origen.
Para obtener más información sobre las versiones compatibles de las bases de datos de origen y de destino, consulte Overview of migration solutions .
Permisos obligatorios para las cuentas de base de datos
Los permisos necesarios varían según los tipos de migración que seleccione.
|
Database |
Schema migration |
Full data migration |
Incremental data migration |
|
Clúster de PolarDB for MySQL de origen |
SELECT |
SELECT |
Permisos de lectura y escritura |
|
Base de datos Doris de destino |
Usage_priv, Select_priv, Load_priv, Alter_priv, Create_priv, Drop_priv |
(igual) |
(igual) |
Para crear y autorizar las cuentas de la base de datos:
Para un clúster de PolarDB for MySQL, consulte Create and manage a database account.
Para una base de datos Doris, consulte Autenticación y autorización.
Facturación
|
Migration type |
Link configuration fees |
Data transfer cost |
|
Migración de esquemas y migración completa de datos |
Gratuita |
Gratuita, salvo que Access Method del destino esté configurado como Public IP Address. Consulte Billing overview. |
|
Migración incremental de datos |
De pago. Consulte Billing overview. |
— |
Operaciones SQL compatibles con la migración incremental
|
Operation type |
SQL statements |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
ADD COLUMN, MODIFY COLUMN, CHANGE COLUMN, DROP COLUMN, DROP TABLE, TRUNCATE TABLE, RENAME TABLE |
Las operaciones RENAME TABLE pueden provocar inconsistencias en los datos. Si selecciona una tabla como objeto de migración y le cambia el nombre durante el proceso, sus datos no se migrarán al destino. Para evitarlo, seleccione la base de datos que contiene la tabla como objeto de migración. Además, asegúrese de incluir tanto la base de datos original como la renombrada entre los objetos de migración.
Restricciones y límites
Revise a continuación las restricciones antes de configurar su tarea de migración.
Límites de la base de datos de origen
Ancho de banda de salida: el servidor que aloja la base de datos de origen debe contar con suficiente ancho de banda de salida. Un ancho de banda insuficiente reduce la velocidad de migración.
-
Requisitos de las tablas:
Tablas con claves primarias o restricciones UNIQUE: compruebe que los campos de la tabla sean únicos para evitar datos duplicados en el destino.
Tablas sin claves primarias ni restricciones UNIQUE: al configurar la tarea, seleccione Schema Migration en Migration Types. Después, establezca Engine como duplicate para estas tablas en el paso Configurations for Databases, Tables, and Columns. De lo contrario, la tarea podría fallar o perderse datos.
Límite de asignación de columnas: si asigna nombres de columna o edita cada columna de forma individual, una sola tarea puede migrar un máximo de 1,000 tablas. Para superar este límite, divida las tablas en varias tareas o migre toda la base de datos sin editar las columnas.
-
Incremental migration only:
Habilite el registro binario y configure
loose_polar_log_bincomoon. Sin esto, la comprobación previa falla y la tarea no se inicia. Consulte Enable binary logging y Modificar parámetros. > Note: Habilitar el registro binario en un clúster de PolarDB for MySQL consume espacio de almacenamiento y genera cargos.Conserve los registros binarios como mínimo 3 días (se recomiendan 7). Un periodo de retención más corto puede impedir que DTS lea los registros necesarios, lo cual provoca inconsistencias o pérdida de datos. Estos problemas no están cubiertos por el acuerdo de nivel de servicio (SLA) de DTS. Consulte Modificar el periodo de retención.
-
Operaciones que debe evitar durante la migración:
No ejecute operaciones DDL que modifiquen el esquema de la base de datos o de las tablas durante la migración de esquemas o la migración completa de datos. Hacerlo provoca el fallo de la tarea.
Si ejecuta únicamente la migración completa de datos (sin la incremental), no escriba datos nuevos en el origen. Para mantener la consistencia en tiempo real, seleccione de forma conjunta la migración de esquemas, la migración completa de datos y la migración incremental de datos.
Los cambios de datos provenientes de operaciones no registradas en los registros binarios (como recuperaciones desde copias de seguridad físicas u operaciones en cascada) no se migran. > Note: Si esto ocurre, vuelva a ejecutar una migración completa de datos cuando su operación comercial lo permita.
Otros límites
Nodos de solo lectura: no se admite la migración de nodos de solo lectura del clúster de PolarDB for MySQL de origen.
Tablas externas de OSS: no se admite la migración de tablas externas de OSS desde el origen.
Failover entre nodo principal y secundario: DTS no admite el failover entre nodo principal y secundario en la base de datos de origen durante la migración completa. Si ocurre un failover, reconfigure la tarea de inmediato.
-
Modelos de tabla de destino: los datos solo se pueden migrar a tablas que usen el modelo Unique Key o Duplicate Key en Doris.
Modelo Duplicate Key: pueden aparecer datos duplicados si se produce un reintento o un reinicio. También sucede si se ejecutan dos o más operaciones DML sobre la misma fila después de iniciar la tarea. Elimine los duplicados mediante las columnas adicionales (
_is_deleted,_version,_record_id). DTS convierte las instrucciones UPDATE y DELETE en instrucciones INSERT para las tablas con el modelo Duplicate Key.
Parámetro
bucket_count: es el único parámetro configurable en el cuadro Selected Objects. Debe ser un número entero positivo. Valor predeterminado: auto.Creación de clústeres: no cree clústeres en la base de datos Doris de destino durante la migración. Si esto provoca un fallo, reinicie la instancia de migración para reanudarla.
-
Requisitos de los nombres de objeto:
Doris solo admite nombres de bases de datos y de tablas que comiencen con una letra. Utilice la función de asignación de nombres de objeto para renombrar aquellos que no cumplan este requisito.
Si el nombre de una base de datos, tabla o columna contiene caracteres chinos, utilice la función de asignación de nombres de objeto para renombrarlo (por ejemplo, a su equivalente en inglés). De lo contrario, la tarea podría fallar.
Restricciones de DDL: no se admiten las operaciones DDL que modifican varias columnas de forma simultánea ni las que alteran la misma tabla de manera consecutiva.
Nodos de backend (BE): no agregue nodos BE a la base de datos Doris de destino durante la migración. Si esto provoca un fallo, reinicie la instancia de migración para reanudarla.
Fusión de varias tablas: al migrar datos de varias tablas de origen a una sola tabla de destino, todos los esquemas de origen deben ser consistentes. Los esquemas inconsistentes pueden provocar inconsistencias en los datos o el fallo de la tarea.
Longitud VARCHAR: en PolarDB for MySQL,
VARCHAR(M)especifica la longitud en caracteres. En Doris,VARCHAR(N)especifica la longitud en bytes. Si no utiliza la migración de esquemas de DTS, defina la longitud del campo VARCHAR en Doris como cuatro veces la longitud de MySQL.-
Herramientas de DDL en línea:
DTS admite los cambios de DDL en línea realizados con DMS o gh-ost. DTS migra únicamente las instrucciones DDL originales, no los datos de las tablas temporales. Sin embargo, la tabla de destino podría bloquearse durante este proceso.
DTS no admite los cambios de DDL en línea realizados en el origen con herramientas como pt-online-schema-change. Este tipo de cambios en el origen puede causar pérdida de datos o el fallo de la tarea.
Impacto en el rendimiento: durante la migración completa, DTS lee del origen y escribe en el destino, lo que aumenta la carga del servidor de la base de datos. Ejecute la migración fuera del horario pico, cuando la carga de la CPU sea inferior al 30 %.
Fragmentación del espacio de tablas: las operaciones INSERT simultáneas durante la migración completa fragmentan las tablas en el destino. Al finalizar, el espacio de tablas utilizado en el destino será mayor que en el origen.
Escrituras simultáneas en el destino: escribir datos de otros orígenes en el destino durante la migración puede provocar inconsistencias.
Tabla de latidos: DTS ejecuta periódicamente
CREATE DATABASE IF NOT EXISTS \test\`` en el origen para avanzar el desplazamiento del registro binario.-
Latencia de la migración incremental: DTS usa una directiva de sincronización por lotes para reducir la carga en el destino. De forma predeterminada, DTS escribe en un solo objeto como máximo cada 5 segundos, lo que genera una latencia de sincronización habitual menor a 10 segundos. Para reducirla, ajuste el parámetro
selectdb.reservoir.timeout.millisecondsen la consola. Rango válido: de 1,000 a 10,000 milisegundos.Un valor más bajo aumenta la frecuencia de escritura. Esto puede elevar la carga y el tiempo de respuesta (RT) del destino y, en consecuencia, incrementar la latencia de sincronización. Ajústelo según la carga del destino.
Recuperación de instancias: si una instancia de DTS falla, el equipo de soporte técnico intenta recuperarla en un plazo de 8 horas. Durante la recuperación, DTS puede reiniciar la instancia o ajustar sus parámetros (solo los de la instancia de DTS, no los de la base de datos). Consulte Modificar los parámetros de la instancia para conocer los parámetros que se podrían modificar.
No se admite la migración de datos de tipo VECTOR.
Migrar datos de PolarDB for MySQL a Doris
Paso 1: Abrir la página Data Migration
Utilice uno de los siguientes métodos para ir a la página Data Migration y seleccione la región donde se encuentra la instancia de migración.
Consola de DTS
Inicie sesión en la consola de DTS.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 se encuentra la instancia de migración de datos.
Consola de DMS
Nota
Los pasos reales pueden 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.
Inicie sesión en la consola de DMS.consola de DMS
En la barra de navegación superior, coloque el puntero sobre Data + AI > DTS (DTS) > Data Migration.
En la lista desplegable a la derecha de Data Migration Tasks, seleccione la región donde se encuentra la instancia de migración de datos.
Paso 2: Configurar las bases de datos de origen y destino
Haga clic en Create Task.
-
Configure los parámetros de las bases de datos de origen y destino que se describen en la siguiente tabla.
Categoría
Parámetro
Descripción
N/A
Task Name
Nombre de la tarea de DTS. DTS genera un nombre automáticamente. Especifique un nombre descriptivo que facilite identificar la tarea. No es necesario que el nombre sea único.
Source Database
Select Existing Connection
Si la instancia está registrada en DTS, selecciónela en la lista desplegable. DTS completa automáticamente los parámetros siguientes. Si no está registrada, configure los parámetros de forma manual.
Database Type
Seleccione PolarDB for MySQL.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
Seleccione la región donde se encuentra el clúster de origen de PolarDB for MySQL.
Replicate Data Across Alibaba Cloud Accounts
Seleccione No para usar una instancia de la cuenta actual de Alibaba Cloud.
PolarDB Cluster ID
Seleccione el identificador del clúster de origen de PolarDB for MySQL.
Database Account
Introduzca la cuenta de base de datos del clúster de origen. Consulte Permissions required for database accounts.
Database Password
Introduzca la contraseña de la cuenta de base de datos.
Encryption
Seleccione un método de conexión. Para el cifrado SSL, consulte Set SSL encryption.
Destination Database
Select Existing Connection
Si la instancia está registrada en DTS, selecciónela en la lista desplegable. DTS completa automáticamente los parámetros siguientes. Si no está registrada, configure los parámetros de forma manual.
Database Type
Seleccione Doris.
Access Method
Seleccione Self-managed Database on ECS. Para otros tipos de conexión, consulte Preparations.
Instance Region
Seleccione la región donde se encuentra la base de datos de destino de Doris.
ECS Instance ID
Seleccione el identificador de la instancia de ECS donde se despliega la base de datos de Doris. Si Doris se despliega en varias instancias de ECS (por ejemplo, nodos BE o frontend (FE) en instancias independientes), agregue los bloques CIDR de los servidores de DTS a las reglas de seguridad de cada instancia de ECS.
Port Number
Introduzca el puerto de servicio de la base de datos de destino de Doris. Valor predeterminado: 9030.
Database Account
Introduzca la cuenta de la base de datos de destino de Doris. Consulte Permissions required for database accounts.
Database Password
Introduzca la contraseña de la cuenta de base de datos.
-
Haga clic en Test Connectivity and Proceed y luego en Test Connectivity en el cuadro de diálogo CIDR Blocks of DTS Servers.
Asegúrese de que los bloques CIDR de los servidores de DTS estén agregados a la configuración de seguridad de las bases de datos de origen y destino. Consulte Agregar direcciones IP de servidores de DTS a una lista de permitidos .
Paso 3: Configurar los objetos de migración
-
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 sus necesidades:
Full migration only: seleccione Schema Migration y Full Data Migration.
Full migration with ongoing sync: seleccione Schema Migration, Full Data Migration y Incremental Data Migration.
ImportanteDespués de la migración, los tipos de datos de PolarDB for MySQL se convierten a tipos de Doris. Si omite Schema Migration, cree las tablas de destino con el modelo Unique Key o Duplicate Key antes de la migración. Consulte Data type mappings, Additional column information y Unique Key Model.
Si no selecciona Incremental Data Migration, no escriba datos en el origen durante la migración.
Processing Mode of Conflicting Tables
Precheck and Report Errors: DTS comprueba si existen tablas con el mismo nombre en el destino. Si hay conflictos, la comprobación previa falla y la tarea no se inicia. Para resolver los conflictos sin eliminar la tabla de destino, utilice la asignación de nombres de objetos para cambiar el nombre del objeto. Consulte Map object names.
Ignore Errors and Proceed: DTS omite la comprobación de conflictos de nombres.
AvisoEsto puede provocar inconsistencias en los datos. Si los esquemas coinciden, los registros de origen sobrescriben los registros de destino con la misma clave principal. Si los esquemas difieren, la migración puede ser parcial o fallar.
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. Valor predeterminado: DTS default policy. Consulte Specify the capitalization of object names in the destination instance.
Source Objects
Seleccione uno o varios objetos en Source Objects y haga clic en el ícono de flecha para agregarlos a Selected Objects. Seleccione bases de datos o tablas como objetos de migración.
Selected Objects
Para cambiar el nombre de un objeto de migración en el destino, haga clic derecho sobre el objeto. Consulte Map object names.
Para establecer el número de buckets (
bucket_count) de una tabla: haga clic derecho sobre la tabla, establezca Enable Parameter Settings en Yesalert notification settings, introduzca el valor y haga clic en OK. Esta opción solo está disponible cuando se selecciona Schema Migration.Para seleccionar operaciones SQL incrementales a nivel de base de datos o de tabla, haga clic derecho sobre el objeto y seleccione las operaciones SQL.
Para filtrar filas mediante condiciones WHERE, haga clic derecho sobre la tabla y configure las condiciones. Consulte Set filter conditions.
Si utiliza la asignación de nombres de objetos, otros objetos que dependan del objeto asignado podrían presentar errores durante la migración.
-
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 mejorar la estabilidad, adquiera un clúster dedicado. Consulte What is a DTS dedicated cluster.
Retry time for failed connections
Intervalo durante el cual DTS reintenta la conexión cuando no se puede acceder al origen o al destino después de iniciar la tarea. Valores válidos: de 10 a 1440 minutos. Valor predeterminado: 720 minutos. Establezca un valor mayor que 30. Si DTS restablece la conexión dentro de este intervalo, reanuda la tarea; de lo contrario, la tarea presenta errores.<br>
NotaSi varias tareas comparten el mismo origen o destino, prevalece el valor especificado más recientemente. DTS cobra por la instancia durante los reintentos.
Retry time for other issues
Intervalo durante el cual DTS reintenta las operaciones DDL o DML con errores después de iniciar la tarea. Valores válidos: de 1 a 1440 minutos. Valor predeterminado: 10 minutos. Establezca un valor mayor que 10.
ImportanteEste valor debe ser menor que Retry time for failed connections.
Enable throttling for full data migration
Limita las operaciones de lectura y escritura durante la migración completa para reducir la carga del servidor. Configure Queries per second (QPS) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s). Esta opción solo está disponible cuando se selecciona Full Data Migration.
Enable throttling for incremental data migration
Limita las operaciones durante la migración incremental. Configure RPS of Incremental Data Migration y Data migration speed for incremental migration (MB/s). Esta opción 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 en las tablas de latido en el origen mientras la instancia se está ejecutando.
Yes: no escribe las operaciones de las tablas de latido. Puede aparecer latencia en la instancia de DTS.
No: escribe las operaciones de las tablas de latido. Esto puede afectar funciones como la copia de seguridad física y la clonación de la base de datos de origen.
Environment tag
(Opcional) Seleccione una etiqueta para identificar la instancia.
Configure ETL
Especifica si se configura la función de extracción, transformación y carga (ETL). Consulte What is ETL?
Yes: habilite ETL e introduzca las instrucciones de procesamiento en el editor de código. Consulte Configure ETL in a data migration or data synchronization task.
No: omita la configuración de ETL.
Monitoring and alerting
Configura las alertas de la tarea. Si la tarea presenta errores o la latencia de migración supera el umbral, se envía una notificación a los contactos de alerta.
No: no se configuran alertas.
Yes: configure el umbral de alerta y los ajustes de notificación. Consulte Configure monitoring and alerting when you create a DTS task.
-
(Opcional) Haga clic en Next: Configure Database and Table Fields para establecer Primary Key Column, Distribution Key y Engine de las tablas de destino.
- Este paso solo está disponible si seleccionó Schema Migration en el paso anterior. Establezca Definition Status en All para consultar y modificar todas las tablas. - En Primary Key Column , seleccione una o varias columnas para formar una clave principal compuesta. Como mínimo, una Primary Key Column también debe configurarse como Distribution Key . - Para las tablas sin claves principales ni restricciones UNIQUE, establezca Engine en duplicate . De lo contrario, la migración podría presentar errores o perderse datos.
Paso 4: Ejecutar una comprobación previa e iniciar la migración
-
Haga clic en Next: Save Task Settings and Precheck.
- Para ver los parámetros de API de esta configuración de tarea, coloque el puntero sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters . - DTS ejecuta una comprobación previa antes de iniciar la tarea. La tarea solo comienza después de aprobar dicha comprobación. - Si la comprobación previa presenta errores, haga clic en View Details junto a cada elemento con errores, corrija los problemas y vuelva a ejecutar la comprobación previa. - Si se activa una alerta durante la comprobación previa: para las alertas que no se pueden ignorar, corrija el problema y vuelva a ejecutar la comprobación. Para las alertas que se pueden ignorar, haga clic en Confirm Alert Details > Ignore > OK y, a continuación, vuelva a ejecutar la comprobación previa. Ignorar alertas puede provocar inconsistencias en los datos o exponer su negocio a riesgos.
Cuando Success Rate alcance 100%, 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
El resource group de la instancia de migración. Valor predeterminado: default resource group. Consulte What is Resource Management?
Instance Class
La clase de instancia determina la velocidad de migración. Seleccione una clase según sus necesidades. Consulte Instance classes of data migration instances.
Lea y acepte Data Transmission Service (Pay-as-you-go) Service Terms y haga clic en Buy and Start. En el mensaje de confirmación, haga clic en OK.
Consulte el progreso en la página Data Migration.
Si la tarea no migra datos incrementales, se detiene automáticamente. La columna Status muestra Completed .
Si la tarea migra datos incrementales, se ejecuta de forma continua y no se detiene automáticamente. La columna Status muestra Running .
Asignaciones de tipos de datos
Cuando DTS migra datos de PolarDB for MySQL a Doris, se aplican las siguientes conversiones de tipos.
Categoría | Tipo de PolarDB for MySQL | Tipo de Doris | Notas |
Entero | TINYINT | TINYINT | |
TINYINT UNSIGNED | SMALLINT | Los tipos sin signo se promueven al siguiente tipo con signo para evitar desbordamientos. | |
SMALLINT | SMALLINT | ||
SMALLINT UNSIGNED | INT | ||
MEDIUMINT | INT | ||
MEDIUMINT UNSIGNED | BIGINT | ||
INT | INT | ||
INT UNSIGNED | BIGINT | ||
BIGINT | BIGINT | ||
BIGINT UNSIGNED | LARGEINT | ||
BIT(M) | INT | ||
Decimal | DECIMAL | DECIMAL | ZEROFILL no es compatible. |
NUMERIC | DECIMAL | ||
FLOAT | FLOAT | ||
DOUBLE | DOUBLE | ||
BOOL / BOOLEAN | BOOLEAN | ||
Fecha y hora | DATE | DATEV2 | |
DATETIME[(fsp)] | DATETIMEV2 | ||
TIMESTAMP[(fsp)] | DATETIMEV2 | ||
TIME[(fsp)] | VARCHAR | Doris no tiene un tipo TIME nativo. | |
YEAR[(4)] | INT | ||
Cadena | CHAR / VARCHAR | VARCHAR | Importante Para evitar la pérdida de datos, CHAR y VARCHAR(n) se convierten a VARCHAR(4×n). Si no se especifica longitud, el valor predeterminado es VARCHAR(65533). Los datos con más de 65 533 caracteres se convierten a STRING. |
BINARY / VARBINARY | STRING | ||
TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT | STRING | ||
TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB | STRING | ||
ENUM | STRING | ||
SET | STRING | ||
JSON | STRING |
Información adicional de columnas
Para las tablas que utilizan el modelo Duplicate Key, DTS agrega automáticamente las siguientes columnas a las tablas de destino. Utilice estas columnas para deduplicar los datos.
|
Column name |
Data type |
Default value |
Description |
|
|
INT |
0 |
Indica si la fila está eliminada. INSERT y UPDATE establecen este valor en 0; DELETE lo establece en 1. |
|
|
BIGINT |
0 |
Para la migración completa de datos: 0. Para la migración incremental de datos: la marca de tiempo en segundos del registro binario de origen. |
|
|
BIGINT |
0 |
Para la migración completa de datos: 0. Para la migración incremental de datos: el identificador de registro único y de incremento automático de la entrada de registro incremental. |