La función de sincronización por lotes de bases de datos en DataWorks sincroniza periódicamente el esquema y los datos de algunas o todas las tablas desde una base de datos de origen hacia un destino. Admite modos de sincronización completa, incremental o combinada. A continuación se utiliza una migración de MySQL a MaxCompute para ilustrar el proceso de configuración.
Requisitos previos
-
Orígenes de datos
Cree los orígenes de datos de origen y de destino. Para obtener más información, consulte Data Source Management.
Asegúrese de que sus orígenes de datos admitan la sincronización por lotes de bases de datos. Para conocer los detalles sobre los orígenes de datos compatibles, como PostgreSQL u Oracle, consulte Supported data sources. Si su origen de datos no aparece en la lista de sistemas compatibles (por ejemplo, ciertas versiones de PostgreSQL), utilice la sincronización sin conexión de tabla única.
Resource group: Compre y configure un serverless resource group.
Conectividad de red: Establezca network connectivity entre el resource group y los orígenes de datos.
Aplicabilidad
Las tareas de sincronización por lotes de bases de datos se configuran tanto en DataStudio como en Data Integration. Las funciones son idénticas en ambos módulos.
Configuración consistente: La interfaz, los parámetros y las funciones subyacentes son idénticos, ya sea que cree la tarea en DataStudio o en Data Integration.
Sincronización bidireccional: Data Integration sincroniza automáticamente las tareas y las muestra en el directorio
data_integration_jobsde DataStudio. Estas tareas se clasifican según el canalSourceType-DestinationTypepara facilitar su gestión unificada.Sincronización de datos T+1: La sincronización por lotes de bases de datos también aplica para escenarios de sincronización T+1. Se configura como una sincronización completa Recurring, o bien con el modo integrado de sincronización completa única seguida de sincronización incremental recurrente. De esta forma se implementa una instantánea completa programada diariamente o un pipeline ETL incremental.
Configurar una tarea de sincronización
Paso 1: Crear una tarea de sincronización
Inicie sesión en la consola de DataWorks. En la región de destino, haga clic en en el panel de navegación izquierdo. Seleccione un espacio de trabajo en la lista desplegable y haga clic en Go to Data Integration.
-
En el panel de navegación izquierdo, haga clic en Synchronization Task y luego en Create Synchronization Task en la parte superior de la página. Configure la información de la tarea:
Data Source Type:
MySQL.Data Source Type:
MaxCompute.Specific Type:
batch database synchronization.-
Synchronization Mode: El ajuste Synchronization steps funciona junto con la configuración posterior de full and incremental control. Al combinarlos se generan distintas soluciones de sincronización. Para obtener más detalles, consulte Full and incremental control.
Schema Migration: Crea automáticamente objetos de base de datos en el destino, como tablas, campos y tipos de datos, para coincidir con el esquema de origen. No migra los datos.
Full Synchronization (opcional): Copia todos los datos históricos de los objetos de origen especificados, como las tablas, hacia el destino en una sola operación. Suele utilizarse para la migración o inicialización inicial de datos.
Incremental Sync (opcional): Una vez completada la sincronización completa, este modo captura continuamente los datos nuevos del origen según la incremental condition y los sincroniza hacia el destino.
Paso 2: Configurar los orígenes de datos y los recursos de ejecución
En la sección Source Data Source, seleccione el origen de datos
MySQLde su espacio de trabajo. En la sección Destination, seleccione el origen de datosMaxComputeque agregó previamente.-
En la sección Running Resources, seleccione el Resource Group para la tarea de sincronización y asigne las CUs del Resource Group. Si la tarea falla por un error de falta de memoria (OOM), aumente las Resource Group CUs asignadas.
NotaEl valor de Resource Group CUs que se establece aquí representa el límite máximo de CUs disponibles para toda la tarea de sincronización por lotes de bases de datos. La cantidad de CUs que consume realmente la subtarea de sincronización de una sola tabla depende del parámetro Offline synchronization task cu, ubicado en en la esquina superior derecha de la página de edición de la tarea. El valor predeterminado es 1 CU y el mínimo es 0.5 CU.
Ambos ajustes determinan en conjunto cuántas tablas se sincronizan al mismo tiempo: número máximo de subtareas simultáneas = Resource Group CUs ÷ Offline synchronization task cu. Por ejemplo, si asigna 10 CUs a la tarea y 2 CUs a cada tabla, se ejecutarán como máximo cinco subtareas al mismo tiempo; es decir, cinco tablas se sincronizarán de forma concurrente. Las tablas restantes comenzarán únicamente cuando las subtareas anteriores finalicen y liberen recursos.
Asegúrese de que tanto el origen de datos de origen como el de destino aprueben la Connectivity Check.
Paso 3: Configurar la solución de sincronización
1. Origen de datos
Seleccione las tablas que desea sincronizar desde el origen de datos en la sección Source tables. Haga clic en el icono
para moverlas a la lista Selected tables del lado derecho.

Existen dos modos de selección de tablas: Select specified tables y Use a regular expression to select tables. El modo de expresión regular también permite agregar y quitar tablas coincidentes mientras la tarea se está ejecutando. Si cambia de modo, se borrarán todas las tablas seleccionadas en el otro modo. Para agregar tablas de forma masiva, haga clic en Batch paste tables en la esquina superior derecha.
Si hay muchas bases de datos o tablas, utilice Database Filtering o Table filtering y configure expresiones regulares para seleccionar las tablas que desea sincronizar.
2. Destino
Haga clic en el botón Configuration junto a Partition Initialization Configuration para inicializar de manera uniforme las particiones de las nuevas tablas de destino. Los cambios que aplique aquí afectan a todas las tablas de destino nuevas y no modifican las tablas existentes.
3. Control completo e incremental
-
Configure la frecuencia de ejecución de la tarea.
Si selecciona "Full synchronization" o "Incremental synchronization", elija ejecutar la tarea como One-time o como Recurring.
-
Si selecciona tanto "Full synchronization" como "Incremental synchronization", el sistema utiliza un modo integrado: "sincronización completa única en la primera ejecución, seguida de sincronización incremental recurrente". Esta opción no se puede modificar.
Pasos de sincronización
Control completo e incremental
Comportamiento
Caso de uso
Sincronización completa
One-time
Una vez iniciada la tarea, sincroniza todos los datos de la tabla de origen una sola vez hacia la tabla de destino o hacia una partición específica.
Inicialización de datos, migración de sistemas
Recurring
Según el ciclo de programación configurado, sincroniza periódicamente todos los datos de la tabla de origen hacia la tabla de destino o una partición específica.
Conciliación de datos, instantáneas completas T+1
Sincronización incremental
One-time
Después de iniciar la tarea, sincroniza los datos incrementales una sola vez hacia una partición específica, según la condición incremental que defina.
Reparación manual de un lote de datos específico
Recurring
Tras iniciar la tarea, sincroniza periódicamente los datos incrementales hacia una partición específica, de acuerdo con el ciclo de programación y la condición incremental configurados.
ETL diario, construcción de tablas históricas
Sincronización completa y sincronización incremental
(Modo integrado, no seleccionable)
Primera ejecución: realiza automáticamente una migración de esquema única y una sincronización completa de los datos históricos.
Ejecuciones posteriores: sincroniza periódicamente los datos incrementales hacia una partición específica, según el ciclo de programación y la condición incremental configurados.
Ingesta de datos con un solo clic hacia un almacén o lago de datos
NotaPara la sincronización por lotes de bases de datos, el sistema genera instancias de tareas recurrentes de la misma forma que para las tareas configuradas con Start immediately after deployment. Para obtener más información, consulte Instance generation method: Start immediately after deployment.
Defina el método de generación de particiones en el paso posterior Value assignment. Utilice constantes o genere particiones dinámicamente mediante variables y parámetros de programación predefinidos por el sistema.
Las configuraciones del ciclo de programación, la condición incremental y el método de generación de particiones son interdependientes. Para obtener más información, consulte 6. Incremental condition.
-
Configure los parámetros de programación.
Si su tarea incluye sincronización recurrente, haga clic en Scheduling Parameters for Periodical Scheduling para configurarlos. Estos parámetros se utilizarán después al configurar la condición incremental y la asignación de valores de campo en la asignación de tablas de destino.
4. Asignación de tablas de destino
Defina las reglas de asignación entre las tablas de origen y de destino. Especifique el método de escritura de datos mediante la configuración recurrente y la condición incremental.

En la parte superior de la página se encuentran los cuadros de búsqueda Search database name y Search source table. También están disponibles las opciones de filtro Show all, Show only unrefreshed tables y Show only tables that failed to refresh. La columna Actions de cada fila contiene el enlace Remove. Los botones Batch remove y Batch modify aparecen debajo de la tabla.
Acciones | Descripción | ||||||||||||
Actualizar asignación | El sistema enumera automáticamente las tablas de origen que seleccionó, pero debe actualizar la asignación para aplicar las propiedades de la tabla de destino.
| ||||||||||||
Editar la asignación de tipos de campo (opcional) | El sistema cuenta con una asignación predeterminada entre los tipos de campo de origen y de destino. Haga clic en Edit Mapping of Field Data Types en la esquina superior derecha para personalizarla. Después de configurarla, haga clic en Apply and Refresh Mapping. Al editar las asignaciones de tipos de campo, asegúrese de que las reglas de conversión sean correctas. De lo contrario, la conversión de tipos podría fallar, generar datos incorrectos y afectar la ejecución de la tarea. | ||||||||||||
Personalizar la asignación de nombres de tablas de destino (opcional) | El sistema tiene una regla predeterminada para generar nombres de tabla:
Esta función admite los siguientes escenarios:
| ||||||||||||
Personalizar la asignación de nombres de bases de datos de destino (opcional) | Algunos orígenes de datos de destino, como Hologres, permiten definir reglas de asignación para las bases de datos de destino. El método de configuración es el mismo que para Customize destination table name mapping. | ||||||||||||
Personalizar la asignación de nombres de esquemas de destino (opcional) | Algunos orígenes de datos de destino, como Hologres, permiten definir reglas de asignación para los esquemas de destino. El método de configuración es el mismo que para Customize destination table name mapping. | ||||||||||||
Editar el esquema de la tabla de destino (opcional) | El sistema genera automáticamente el esquema de la tabla de destino a partir del esquema de la tabla de origen. Por lo general, no es necesario modificarlo. Si tiene requisitos especiales, personalícelo de la siguiente manera:
| ||||||||||||
Asignación de valores para los campos de la tabla de destino | Debe asignar manualmente valores a los campos de partición y a cualquier campo recién agregado. Los campos estándar se asignan automáticamente cuando coinciden los nombres en las tablas de origen y de destino. Siga estos pasos:
Asigne constantes o variables. En Value Type para Table fields y Partition fields, alterne entre los siguientes tipos:
Tanto las variables como los parámetros de programación se reemplazan automáticamente por valores específicos de fecha cuando se programa la ejecución de la tarea. | ||||||||||||
Establecer la columna de fragmentación de origen | En la columna de fragmentación de origen, seleccione un campo de la tabla de origen o elija Disable. Cuando se ejecuta la tarea de sincronización, DataWorks divide la tarea en varias subtareas según este campo para habilitar la lectura de datos por lotes y de forma concurrente. Se recomienda usar la clave principal de la tabla como columna de fragmentación de origen. No se admiten los tipos de cadena, punto flotante ni fecha. Actualmente, la columna de fragmentación de origen solo es compatible con orígenes MySQL. | ||||||||||||
Personalizar parámetros avanzados | Modifique estos parámetros únicamente si los comprende por completo. Una configuración incorrecta provoca retrasos en la tarea, contención de recursos o pérdida de datos. Establezca writer-side configurations y runtime configurations individuales para las subtareas. | ||||||||||||
Tipo de tabla | Table Type: MaxCompute admite tablas estándar, PK Delta Tables y Append Delta Tables. Si el estado de la tabla de destino es "To be created", seleccione el tipo de tabla al editar el esquema de destino. El tipo de una tabla existente no se puede modificar. Para obtener más información sobre Delta Tables, consulte Delta Table. |
5. Configuración recurrente
Si la sincronización incremental se configura como Recurring, complete la configuración recurrente de la tabla de destino. Esto incluye ajustes como Scheduling Frequency, Data Timestamp y Resource Group for Scheduling. La configuración de programación de esta tarea de sincronización coincide con la configuración de programación de nodos en DataStudio. Para conocer los detalles de los parámetros, consulte Configure node scheduling.
Si una sincronización única involucra una gran cantidad de tablas, se recomienda escalonar sus horarios de ejecución en la programación. Así evitará la acumulación de tareas y la contención de recursos.
6. Condición incremental
Si la tarea necesita sincronizar datos incrementales, configure una condición incremental. Esta condición determina qué datos sincroniza cada instancia programada.
-
Función y sintaxis
Función: La condición incremental es básicamente una cláusula
WHEREque filtra los datos de origen.Sintaxis: Durante la configuración, introduzca únicamente la expresión condicional que va después de la palabra clave
WHERE. No incluya la palabra claveWHEREen sí.
-
Uso de parámetros de programación para la sincronización incremental
Para lograr una sincronización incremental periódica, utilice parámetros de programación en la condición incremental. Por ejemplo, si configura la condición como
STR_TO_DATE('${bizdate}', '%Y%m%d') <= columnName AND columnName < DATE_ADD(STR_TO_DATE('${bizdate}', '%Y%m%d'), INTERVAL 1 DAY), se sincronizarán los datos generados el día anterior. -
Escritura en una partición específica
Al combinar la condición incremental con el campo de partición de la tabla de destino, garantiza que cada lote de datos incrementales se escriba en la partición correcta.
Por ejemplo, con la condición incremental del paso anterior, establezca el campo de partición en
ds=${bizdate}y configure la tabla de destino para que se particione por día. De este modo, cada instancia diaria sincroniza únicamente los datos de la fecha correspondiente en el origen y los escribe en la partición equivalente de la tabla de destino.
Al combinar correctamente el intervalo de tiempo especificado por la condición incremental, el intervalo de tiempo para la generación de particiones y el ciclo de programación de la configuración recurrente, se crea un pipeline ETL incremental T+n automatizado donde las reglas de negocio y las particiones físicas están estrictamente alineadas.
Si una tarea de sincronización por lotes de bases de datos presenta una excepción o un error (por ejemplo, si una configuración incorrecta del parámetro de partición impide la sincronización de datos), primero haga clic en Stop fuera de la tarea para detenerla por completo. Luego corrija el parámetro de partición o la configuración de asignación de valores, incluidos los ajustes relacionados con la columna de fragmentación de la tabla de origen, antes de volver a publicar e iniciar la tarea. Evite volver a ejecutar la tarea directamente, ya que esto podría dejarla en un estado inconsistente.
Paso 4: Configurar los ajustes avanzados
Parámetros avanzados
Para ajustar la tarea a requisitos de sincronización personalizados, modifique los parámetros avanzados.
Haga clic en Advanced configuration en la esquina superior derecha para ir a la página de configuración de parámetros avanzados.
Modifique los valores de los parámetros según la información emergente. El significado de cada parámetro se explica junto a su nombre.
-
También utilice la configuración asistida por IA al introducir instrucciones en lenguaje natural, como ajustar la simultaneidad de la tarea. El modelo de IA genera valores de parámetros recomendados que usted revisa y acepta.

Modifique estos parámetros únicamente si los comprende por completo. Una configuración incorrecta provoca retrasos en la tarea, contención de recursos o pérdida de datos.
Parámetros del motor
Normalmente no es necesario configurar los parámetros del motor. Si requiere cambios, utilícelos únicamente con la orientación del soporte técnico.
Paso 5: Desplegar y ejecutar la tarea
Una vez que termine todas las configuraciones, haga clic en Save en la parte inferior de la página para finalizar la configuración de la tarea.
Las tareas de sincronización por lotes no se depuran directamente. Debe Deploy en Operation Center para ejecutarlas. Por lo tanto, cualquier tarea nueva o editada debe desplegarse para que los cambios surtan efecto.
Durante el despliegue, si selecciona Start immediately after deployment, la tarea se inicia automáticamente. De lo contrario, una vez concluido el despliegue, vaya a la página e inicie la tarea manualmente desde la columna Actions.
Haga clic en Name/ID de la tarea en Tasks para consultar el proceso de ejecución detallado.
Si al hacer clic en Start no ocurre nada después del despliegue, o si la barra de progreso no se actualiza, revise primero el registro de ejecución de la subtarea correspondiente en Operation Center para obtener los detalles específicos del error. Compruebe también si seleccionó Start immediately after deployment durante el despliegue, o si hizo clic manualmente en Start después del despliegue desde la columna Actions.
Paso 6: Configurar reglas de alerta
Configure las reglas de alerta para las tareas de sincronización por lotes de bases de datos en sus subtareas correspondientes dentro de Operation Center.
En la página , obtenga el Task ID de la tarea de destino.
En la columna , busque la subtarea sin conexión de base de datos completa correspondiente según el identificador de la tarea de integración (por ejemplo, si el identificador de la tarea de integración es
34862, la subtarea de activación automática de sincronización incremental se llamaoffline_odps_cyc_sync_mysql_test_timetest_to_mysql_test_timetest_34862). Luego haga clic en para ir a la página Rule Management.-
Haga clic en Create Custom Rule y establezca Rule Object, Trigger Method y Alert Details. Para obtener más información, consulte Rule Management.
Busque el identificador de la subtarea que obtuvo en Rule Object para encontrar la tarea de destino y configurar una alerta para ella.
Gestionar tareas de sincronización
Editar una tarea
En la página , busque la tarea de sincronización que creó. En la columna Operation, haga clic en More y luego en Edit para modificar la información de la tarea. Los pasos son los mismos que se utilizan para configurar la tarea.
Si la tarea no se está ejecutando, modifique directamente la configuración, guárdela y despliéguela para que los cambios surtan efecto.
Si la tarea se está ejecutando y la edita y despliega sin seleccionar Start immediately after deployment, el botón de acción original cambia a Apply Updates. Haga clic en este botón para que los cambios surtan efecto en el entorno de producción.
-
Después de hacer clic en Apply Updates, el sistema aplica tres pasos a los cambios: Stop, Deploy y Restart.
-
Si agrega una tabla:
Al hacer clic en Apply Updates, se agrega una subtarea de sincronización para la nueva tabla. La migración de esquema y la sincronización completa única de la tarea comienzan de inmediato. Después, se inicia la sincronización incremental según la programación establecida.
-
Si cambia la tabla de destino (lo cual equivale a eliminar la tabla anterior y agregar una nueva):
Al hacer clic en Apply Updates, se elimina la subtarea de la tabla anterior y se crea una nueva. La migración de esquema y la sincronización completa única de la nueva tarea comienzan de inmediato. Luego, la nueva tarea ejecuta la sincronización incremental según la programación.
-
Si se modifica otra información:
La migración de esquema y la sincronización completa única de la tabla no cambian. Las nuevas instancias generadas para la sincronización incremental usan la configuración actualizada, mientras que las instancias ya generadas no se ven afectadas.
Las tablas que no se modificaron no se ven afectadas ni se vuelven a ejecutar.
-
Consultar tareas
Una vez que cree una tarea de sincronización, consulte la lista de tareas y su información básica en la página de tareas de sincronización.

Para cada tarea, la lista muestra el Task name, el Task ID, el Data source y el Destination, el Task type y el Status. A continuación, otras columnas muestran el estado de las etapas de las subtareas Schema migration, Full synchronization e Incremental synchronization, seguidas del Group.
En la columna Actions, puede Start o Stop la tarea de sincronización. En el menú More, puede realizar operaciones como Edit y View.
-
Para una tarea en ejecución, consulte el estado básico en Execution Overview. También puede hacer clic en el área de descripción general correspondiente para consultar los detalles de ejecución.

La sección Basic information de la página de detalles de la tarea muestra el identificador de la tarea, el origen de datos, la solución de sincronización, el resource group de sincronización, el estado y las especificaciones. La sección Execution status utiliza barras de progreso para mostrar el avance y el porcentaje de finalización de las etapas Schema migration, Full synchronization e Incremental synchronization. Haga clic en la pestaña de una etapa para consultar los detalles de sincronización de cada tabla. Estos detalles incluyen la base de datos de origen, la tabla de origen, la tabla de destino, el connection method, el progreso y la cantidad de registros escritos.
Cuotas y limitaciones
Limitación de depuración: no es posible depurar tareas de sincronización por lotes directamente en Data Integration ni en DataStudio. Debe desplegarlas en Operation Center para ejecutarlas.
Limitación de la columna de fragmentación: la función Set source sharding column solo admite orígenes MySQL. El campo de la columna de fragmentación debe ser de tipo numérico; no se admiten los tipos de cadena, de punto flotante ni de fecha.
Limitación de cambio de esquema: cuando edita el esquema de la tabla de destino, no se admite cambiar el nombre de las columnas. Si la tabla de destino ya existe, no es posible modificar su Table type.
Limitación de operaciones a nivel de campo: no se admite eliminar, filtrar ni omitir campos específicos (como los campos con formato XML), ni tampoco se admite la asignación personalizada de campos. Si necesita quitar campos o aplicar transformaciones complejas, utilice una tarea de sincronización sin conexión de tabla única o procese los datos con un nodo de código (Spark o Python).
Limitación de distinción entre mayúsculas y minúsculas: de forma predeterminada, los nombres de tablas y campos se convierten a minúsculas antes de escribirse en el destino. Por lo tanto, no se admite la transferencia con distinción entre mayúsculas y minúsculas (por ejemplo, para PostgreSQL). Si la sincronización falla porque el origen contiene tablas que distinguen mayúsculas de minúsculas, se recomienda cambiar el nombre de las tablas de origen a minúsculas o utilizar la sincronización sin conexión de tabla única.
Limitación de la descripción de metadatos: la descripción de una tabla de origen no se puede mostrar ni asignar directamente al destino. Solo es posible configurar manualmente las descripciones de los campos al crear una tabla de destino nueva.
Siguientes pasos
Una vez que la tarea comience, haga clic en su nombre para consultar los detalles de ejecución y realizar operations, maintenance (O&M), and tuning.
Preguntas frecuentes
Para consultar las preguntas frecuentes sobre las tareas de sincronización por lotes de bases de datos, consulte FAQ about full and incremental synchronization tasks.
P: Si una sola tabla no se sincroniza en una tarea de sincronización por lotes de base de datos, ¿afecta esto a las demás tablas?
R: Si no hay dependencias ascendentes ni descendentes entre las tablas de una tarea de Data Integration, el error de sincronización de una tabla no afecta a las demás. Solo falla la subtarea de esa tabla específica, mientras que las otras continúan ejecutándose con normalidad.
P: ¿Qué debo hacer si los campos agregados en la tabla de origen no se sincronizan con la tabla de destino en una tarea de sincronización por lotes de base de datos (sin conexión)?
R: La sincronización por lotes de base de datos (sin conexión) no detecta automáticamente los cambios DDL en el origen. Por lo tanto, los campos nuevos del origen no se reflejan automáticamente en el destino. Para sincronizarlos, elimine primero la tabla de destino. Luego, en la página de edición de la tarea, vaya a Destination table mapping, haga clic en Batch refresh mappings para volver a cargar el esquema de la tabla de origen y vuelva a ejecutar la sincronización completa. Si su negocio requiere la sincronización automática de los campos agregados en el origen, utilice la sincronización por lotes de base de datos en tiempo real. Su configuración avanzada incluye DDL support settings, donde puede establecer políticas de procesamiento para los siguientes eventos DDL: create table, drop table, add column, drop column, rename table, rename column, modify column type y truncate table. De forma predeterminada, el evento add column se procesa con normalidad.
Más casos de uso
Consulte Batch database synchronization use cases.
y combinar Manually enter con Built-in Variable. Las variables compatibles incluyen el nombre del origen de datos, el nombre de la base de datos de origen y el nombre de la tabla de origen.





de la columna Target Table para agregar un campo.
de la interfaz.