Todos los productos
Search
Centro de documentos

Data Transmission Service:Sincronizar datos de un clúster de PolarDB for MySQL a una base de datos Doris autogestionada

Última actualización: Sep 18, 2026

Data Transmission Service (DTS) le permite sincronizar datos de forma continua desde un clúster de PolarDB for MySQL hacia una base de datos Doris autogestionada para análisis a gran escala. Este tema describe la configuración mediante una base de datos Doris desplegada en una instancia de Elastic Compute Service (ECS).

Requisitos previos

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

  • Una base de datos Doris de destino cuyo espacio de almacenamiento disponible sea mayor que el almacenamiento utilizado por el clúster de PolarDB for MySQL de origen.

  • El registro binario habilitado en el clúster de PolarDB for MySQL de origen, con el parámetro loose_polar_log_bin establecido en ON. Consulte Enable binary logging y Modificar parámetros

  • Un periodo de retención del registro binario de como mínimo tres días (se recomiendan siete días).

  • Cuentas de base de datos con los permisos obligatorios (consulte Permissions required).

Habilitar el registro binario en un clúster de PolarDB for MySQL genera cargos de almacenamiento por los archivos de registro binario.

Para conocer las versiones de bases de datos de origen y destino compatibles, consulte Overview of data synchronization solutions.

Permisos necesarios

Base de datos

Permisos obligatorios

Referencia

Clúster de PolarDB for MySQL de origen

Permisos de lectura y escritura sobre los objetos que se van a sincronizar

Create and manage a database account

Base de datos Doris de destino

USAGE_PRIV y los siguientes: SELECT_PRIV, LOAD_PRIV, ALTER_PRIV, CREATE_PRIV, DROP_PRIV

Autenticación y autorización

Facturación

Synchronization type

Cost

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

Gratuita

Sincronización incremental de datos

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

Operaciones SQL compatibles con la sincronización incremental

Operation type

Statements

DML (Data Manipulation Language)

INSERT, UPDATE, DELETE

DDL (Data Definition Language)

ADD COLUMN, MODIFY COLUMN, CHANGE COLUMN, DROP COLUMN, DROP TABLE, TRUNCATE TABLE, RENAME TABLE

Importante

La operación RENAME TABLE puede provocar inconsistencias en los datos. Si cambia el nombre de una tabla seleccionada como objeto de sincronización, sus datos dejarán de sincronizarse con el destino. Para evitarlo, seleccione toda la base de datos como objeto de sincronización en lugar de tablas individuales. Además, compruebe que tanto la tabla original como la renombrada pertenezcan a bases de datos incluidas en el alcance de la sincronización.

Limitaciones

Base de datos de origen

  • Tablas con restricciones PRIMARY KEY o UNIQUE: todos los campos deben ser únicos; de lo contrario, el destino podría contener datos duplicados.

  • Tablas sin restricciones PRIMARY KEY ni UNIQUE: seleccione Schema Synchronization en Synchronization Types y duplicate en Engine durante el paso Configurations for Databases, Tables, and Columns.

  • Si selecciona tablas (y no bases de datos) como objetos de sincronización y necesita cambiar el nombre de tablas o columnas en el destino, una sola tarea admite hasta 1,000 tablas. Superar este límite provoca un error de solicitud. Configure varias tareas o sincronice toda la base de datos.

  • Requisitos del registro binario:

    • loose_polar_log_bin debe establecerse en ON

    • Periodo de retención: como mínimo tres días; se recomiendan siete días.

  • No ejecute operaciones DDL que modifiquen los esquemas de bases de datos o tablas durante la sincronización inicial de esquemas ni durante la sincronización inicial completa de datos. DTS consulta la base de datos de origen durante la sincronización completa, lo que genera bloqueos de metadatos que pueden impedir las operaciones DDL.

  • Los cambios provenientes de operaciones no registradas en los registros binarios (como datos restaurados desde copias de seguridad físicas o generados por operaciones en cascada) no se sincronizan con el destino. Si esto ocurre y su negocio lo permite, elimine y vuelva a agregar la base de datos o tabla afectada entre los objetos de sincronización. Consulte Modify synchronization objects.

Limitaciones generales

  • DTS no sincroniza los nodos de solo lectura del clúster de PolarDB for MySQL de origen.

  • DTS no sincroniza las tablas externas de Object Storage Service (OSS) del origen.

  • No se admite el cambio entre nodo principal y en espera durante la sincronización inicial completa de datos. Si ocurre un cambio, vuelva a configurar la tarea de sincronización.

  • Solo se admiten tablas que usan Unique Key Model o Duplicate Key Model en Doris. Al utilizar Duplicate Key Model, DTS convierte las instrucciones UPDATE y DELETE en instrucciones INSERT. Pueden aparecer datos duplicados si ocurre alguna de las siguientes situaciones. Utilice las columnas adicionales _is_deleted, _version y _record_id para deduplicar cuando sea necesario (consulte Additional columns added by DTS).

    • Se ejecuta una operación de reintento en la instancia de sincronización de datos.

    • Se reinicia la instancia.

    • Se aplican dos o más operaciones DML a la misma fila después de iniciar la instancia.

  • En la sección Selected Objects solo se puede especificar el parámetro bucket_count. El valor debe ser un número entero positivo. Valor predeterminado: auto.

  • No cree clústeres en la base de datos Doris de destino durante la sincronización. Si lo hace, la tarea fallará. Reinicie la instancia de sincronización de datos para reanudarla.

  • Doris solo admite nombres de bases de datos y tablas que comiencen con una letra. Utilice la función de asignación de nombres de objetos para cambiar el nombre de cualquier objeto que empiece con un carácter distinto de una letra.

  • Si el nombre de una base de datos, tabla o columna contiene caracteres chinos, utilice la asignación de nombres de objetos para cambiarlo (por ejemplo, a un nombre en inglés). De lo contrario, la tarea podría fallar.

  • No es posible modificar operaciones DDL en varias columnas al mismo tiempo, ni aplicar modificaciones DDL consecutivas sobre una misma tabla.

  • No agregue nodos de backend (BE) a la base de datos Doris de destino durante la sincronización. Si lo hace, la tarea fallará. Reinicie la instancia de sincronización de datos para reanudarla.

  • En escenarios de fusión de varias tablas (varias tablas de origen sincronizadas hacia una sola tabla de destino), los esquemas de todas las tablas de origen deben ser idénticos. De lo contrario, podrían producirse inconsistencias en los datos o fallos en la tarea.

  • En PolarDB for MySQL, VARCHAR(M) define M como longitud en caracteres. En Doris, VARCHAR(N) define N como longitud en bytes. Si no utiliza la sincronización de esquemas, establezca la longitud VARCHAR de Doris en cuatro veces la longitud VARCHAR correspondiente de MySQL para evitar la pérdida de datos.

  • Cuando se usa DMS o gh-ost para aplicar cambios DDL en línea en el origen, DTS sincroniza únicamente el DDL original con el destino. Los cambios DDL en línea realizados con pt-online-schema-change no son compatibles y pueden provocar pérdida de datos o fallos de sincronización.

  • Durante la sincronización inicial completa de datos, DTS consume recursos de lectura y escritura de ambas bases de datos. Evalúe previamente el impacto en el rendimiento y programe la sincronización en horarios de baja demanda, cuando el uso de CPU en ambos extremos sea inferior al 30%.

  • Las operaciones INSERT simultáneas durante la sincronización inicial completa de datos provocan fragmentación de tablas en el destino. Una vez finalizada la sincronización completa, las tablas de destino podrían ocupar más almacenamiento que las de origen.

  • No utilice pt-online-schema-change ni herramientas similares para ejecutar operaciones DDL en línea sobre los objetos de sincronización mientras esta se encuentra activa, ya que provocaría un fallo.

  • Si durante la sincronización se escriben datos en la base de datos de destino desde orígenes distintos a DTS, podrían producirse inconsistencias entre el origen y el destino.

  • DTS ejecuta periódicamente CREATE DATABASE IF NOT EXISTS \ test\`` en el origen para avanzar la posición del registro binario.

  • Durante la sincronización incremental, DTS aplica una estrategia por lotes y escribe en cada objeto de sincronización como máximo una vez cada cinco segundos. Esto puede generar una latencia de sincronización normal inferior a 10 segundos. Para reducirla, ajuste el parámetro selectdb.reservoir.timeout.milliseconds (rango: 1,000–10,000 milisegundos) en la consola de DTS. Los intervalos de procesamiento por lotes más cortos aumentan la frecuencia de escritura, lo que puede elevar la carga y el tiempo de respuesta del destino.

  • Si una instancia presenta errores, el soporte de DTS intenta recuperarla en un plazo de ocho horas. Durante la recuperación, la instancia podría reiniciarse o ajustarse sus parámetros. Solo se modifican los parámetros de la instancia de DTS; los de la base de datos permanecen sin cambios.

  • No se admite la sincronización de datos de tipo VECTOR.

Crear una tarea de sincronización de datos

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

Utilice uno de los métodos a continuación:

Consola de DTS

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

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

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

Consola de DMS

Los pasos pueden variar según el modo y el diseño de la consola de DMS. Consulte Modo simple y Personalizar el diseño y el estilo de la consola de DMS.

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

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

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

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

  1. Haga clic en Create Task.

  2. Configure Task Name. DTS genera un nombre automáticamente. Especifique un nombre descriptivo para identificar la tarea con facilidad; no es obligatorio que sea único.

  3. Configure las conexiones de las bases de datos de origen y destino con los parámetros a continuación.

Base de datos de origen (PolarDB for MySQL)

Parameter

Value

Select Existing Connection

Seleccione una instancia registrada de la lista para completar automáticamente los campos siguientes o configúrelos manualmente.

Database Type

PolarDB for MySQL

Access Method

Alibaba Cloud Instance

Instance Region

La región donde reside el clúster de PolarDB for MySQL de origen.

Replicate Data Across Alibaba Cloud Accounts

No (este ejemplo utiliza la cuenta actual).

PolarDB Cluster ID

El identificador del clúster de PolarDB for MySQL de origen.

Database Account

La cuenta del clúster de origen (consulte Permissions required).

Database Password

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

Encryption

Selecciónela según sea necesario. Para la configuración de SSL, consulte Configure SSL encryption.

Base de datos de destino (Doris)

Parameter

Value

Select Existing Connection

Seleccione una instancia registrada de la lista para completar automáticamente los campos siguientes o configúrelos manualmente.

Database Type

Doris

Access Method

Self-managed Database on ECS (en este ejemplo). Para otros métodos de acceso, consulte Preparations.

Instance Region

La región donde reside la base de datos Doris de destino.

ECS Instance ID

El identificador de la instancia de ECS que ejecuta la base de datos Doris. Si los nodos BE o frontend (FE) están en instancias de ECS distintas, agregue los bloques CIDR de los servidores de DTS a las reglas de seguridad de cada instancia.

Port Number

El puerto de servicio de la base de datos Doris de destino. Valor predeterminado: 9030

Database Account

La cuenta de la base de datos de destino (consulte Permissions required).

Database Password

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

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

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

Paso 3: Seleccionar los objetos de sincronización

  1. En el paso Configure Objects, configure lo siguiente:

Parámetro

Descripción

Synchronization Types

Seleccione Schema Synchronization, Full Data Synchronization y Incremental Data Synchronization. La sincronización completa establece los datos de referencia antes de iniciar la sincronización incremental. Si omite la sincronización de esquemas, cree previamente las tablas de destino con Unique Key Model o Duplicate Key Model. Consulte Data type mappings, Additional columns added by DTS y Unique Key Model

Processing Mode of Conflicting Tables

Precheck and Report Errors: reporta un error si existe una tabla con el mismo nombre en el destino. Ignore Errors and Proceed: omite la comprobación. Si los esquemas de las tablas difieren, la inicialización de datos podría fallar o sincronizarse solo algunas columnas. Si los esquemas son iguales, los datos de origen sobrescriben los registros de destino con claves primarias o únicas coincidentes.

Capitalization of Object Names in Destination Instance

De manera predeterminada, aplica DTS default policy. Ajústelo según sea necesario. Consulte Especificar el uso de mayúsculas en los nombres de objetos

Source Objects

Seleccione las bases de datos o tablas que desea sincronizar y haga clic en el ícono de flecha derecha para agregarlas a Selected Objects.

Selected Objects

Haga clic con el botón derecho en un objeto para cambiarle el nombre, filtrar datos con condiciones WHERE o seleccionar operaciones SQL específicas. Si la sincronización de esquemas está habilitada, haga clic con el botón derecho en una tabla y configure bucket_count en Parameter Settings.

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

Parameter

Description

Dedicated Cluster for Task Scheduling

De manera predeterminada, DTS utiliza el clúster compartido. Para mayor estabilidad, adquiera un clúster dedicado. Consulte ¿Qué es un clúster dedicado de DTS?

Retry Time for Failed Connections

Tiempo durante el cual DTS reintenta tras un fallo de conexión. Rango: 10–1,440 minutos. Valor predeterminado: 720. Establézcalo en como mínimo 30. Si la reconexión se logra dentro de este periodo, la sincronización se reanuda; de lo contrario, la tarea falla. Se aplica el valor más corto entre las tareas que comparten el mismo origen o destino.

Retry Time for Other Issues

Tiempo durante el cual DTS reintenta tras fallos de DDL o DML. Rango: 1–1,440 minutos. Valor predeterminado: 10. Establézcalo en como mínimo 10. Debe ser menor que Retry Time for Failed Connections.

Enable Throttling for Full Data Synchronization

Limite la sincronización completa definiendo las QPS (consultas por segundo) hacia el origen, las RPS (filas por segundo) de la migración completa y la velocidad de migración de datos. Disponible solo cuando se selecciona Full Data Synchronization.

Enable Throttling for Incremental Data Synchronization

Limite la sincronización incremental definiendo las RPS y la velocidad de sincronización de datos.

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

Yesconfiguración de notificaciones de alerta: no escribe el SQL de latido en el origen (podría mostrarse latencia). No: escribe el SQL de latido (puede afectar la copia de seguridad física y la clonación del origen).

Environment Tag

Opcional. Etiquete la instancia para identificar el entorno.

Configure ETL

Habilite extract, transform, and load (ETL) para aplicar transformaciones de datos. Consulte ¿Qué es ETL? y Configure ETL

Monitoring and Alerting

Configure alertas para fallos de tareas o latencias que superen un umbral. Consulte Configurar monitoreo y alertas

  1. (Opcional) Haga clic en Next: Configure Database and Table Fields. Especifique Primary Key Column, Distribution Key y Engine para cada tabla.

Este paso solo está disponible cuando se selecciona Schema Synchronization . Establezca Definition Status en All para ver todas las tablas.
Primary Key Column admite varias columnas. Distribution Key debe ser un subconjunto de las columnas de clave primaria.
Para las tablas sin claves primarias ni restricciones UNIQUE, seleccione duplicate en Engine . De lo contrario, la tarea podría fallar o perderse datos.

Paso 4: Ejecutar la comprobación previa

Haga clic en Next: Save Task Settings and Precheck.

DTS ejecuta una comprobación previa antes de iniciar la tarea. Esta comienza únicamente después de aprobar todas las comprobaciones.
Si alguna comprobación falla, haga clic en View Details para ver la causa, corrija el problema y vuelva a ejecutar la comprobación previa.
Si aparece una advertencia: corríjala y vuelva a ejecutarla si el elemento no se puede ignorar; haga clic en Confirm Alert Details > Ignore > OK > Precheck Again si el elemento se puede ignorar de forma segura. Ignorar advertencias puede provocar inconsistencias en los datos.

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

Paso 5: Adquirir una instancia

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

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

Parameter

Description

Billing Method

Subscription: pago anticipado por un plazo fijo, más rentable para uso prolongado. Pay-as-you-go: facturación por hora, adecuada para uso a corto plazo. Libere la instancia cuando ya no la necesite para detener los cargos.

Resource Group Settings

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

Instance Class

Selecciónela según sus requisitos de rendimiento. Consulte Clases de instancia de las instancias de sincronización de datos

Subscription Duration

Disponible para la facturación por suscripción. Opciones: de 1 a 9 meses, o 1, 2, 3 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.

La tarea aparecerá en la lista de tareas. Desde ahí podrá monitorear su progreso.

Asignaciones de tipos de datos

La tabla a continuación muestra cómo se asignan los tipos de datos de PolarDB for MySQL a los de Doris.

Categoría

PolarDB for MySQL

Doris

Numérico

TINYINT

TINYINT

TINYINT UNSIGNED

SMALLINT

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 (no se admite ZEROFILL)

Numeric

Decimal

Float

Float

Double

DOUBLE

BOOL / BOOLEAN

BOOLEAN

Fecha y hora

DATE

DATEV2

DATETIME[(fsp)]

DATETIMEV2

Timestamp[(fsp)]

DATETIMEV2

Time[(fsp)]

VARCHAR

YEAR[(4)]

INT

Cadena

CHAR / VARCHAR

VARCHAR

BINARY / VARBINARY

STRING

TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT

STRING

TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB

STRING

ENUM

STRING

SET

STRING

JSON

STRING

Notas sobre la conversión de CHAR y VARCHAR:

  • Los valores CHAR y VARCHAR(n) se convierten a VARCHAR(4*n) para evitar la pérdida de datos. Esto compensa la diferencia en la definición del tamaño VARCHAR entre PolarDB for MySQL (longitud en caracteres) y Doris (longitud en bytes).

  • Si no se especifica una longitud, el valor predeterminado es VARCHAR(65533).

  • Los valores que superan los 65,533 caracteres se convierten al tipo STRING.

Importante

Si no utiliza la sincronización de esquemas, establezca la longitud VARCHAR de Doris en cuatro veces la longitud VARCHAR correspondiente de MySQL.

Columnas adicionales agregadas por DTS

Al sincronizar con una tabla que utiliza Duplicate Key Model, DTS agrega automáticamente las siguientes columnas a la tabla de destino:

Column

Data type

Default

Description

_is_deleted

Int

0

Indicador de eliminación: 0 para operaciones INSERT y UPDATE, 1 para operaciones DELETE.

_version

Bigint

0

0 durante la sincronización completa; la marca de tiempo del registro binario correspondiente (en segundos) durante la sincronización incremental.

_record_id

Bigint

0

0 durante la sincronización completa; el identificador de registro único e incremental del registro incremental durante la sincronización incremental.

Utilice estas columnas para deduplicar datos cuando la tabla de destino emplea Duplicate Key Model.

Pasos siguientes