Todos los productos
Search
Centro de documentos

DataWorks:Origen de datos ApsaraDB for OceanBase

Última actualización: Sep 09, 2026

El origen de datos ApsaraDB for OceanBase permite leer datos de ApsaraDB for OceanBase y escribir datos en él. Use este origen de datos para configurar tareas de sincronización de datos en DataWorks. Este tema describe las funciones para sincronizar datos con ApsaraDB for OceanBase.

Versiones compatibles

ApsaraDB for OceanBase Reader y ApsaraDB for OceanBase Writer admiten las siguientes versiones de OceanBase para operaciones de lectura y escritura por lotes:

  • OceanBase 2.x

  • OceanBase 3.x

  • OceanBase 4.x

Todas las versiones anteriores hacen referencia a ApsaraDB for OceanBase, el servicio administrado de Alibaba Cloud. OceanBase Community Edition (CE) no es compatible. Para sincronizar datos desde una instancia de OceanBase Community Edition autogestionada, primero use Data Transmission Service (DTS) para migrar los datos a ApsaraDB RDS for MySQL y, después, use DataWorks para sincronizar los datos a AnalyticDB for MySQL.

Limitaciones

Lectura por lotes

  • ApsaraDB for OceanBase admite los modos de inquilino Oracle y MySQL. Cuando configure la cláusula where para el filtrado de datos o columnas de función en el parámetro column, asegúrese de que la sintaxis cumpla las restricciones SQL del modo de inquilino correspondiente. De lo contrario, la sentencia SQL puede fallar.

  • Puede leer datos de una vista.

  • Durante una lectura por lotes, no modifique los datos que se están sincronizando. Esto evita problemas de calidad de datos, como duplicación o pérdida de datos.

  • Si configura el origen de datos para Read by Partition, la cuenta utilizada para acceder al origen de datos requiere permisos de system.

Escritura por lotes

Nota

La tarea de sincronización requiere, como mínimo, permisos de insert into.... Es posible que se requieran otros permisos según las sentencias que especifique en los parámetros preSql y postSql.

  • Se recomienda usar el método batch para escribir datos. Este método envía una solicitud de escritura solo cuando la cantidad de filas acumuladas alcanza un umbral predefinido.

  • ApsaraDB for OceanBase admite los modos de inquilino Oracle y MySQL. Cuando configure los parámetros preSql y postSql, asegúrese de que la sintaxis cumpla las restricciones SQL del modo de inquilino correspondiente. De lo contrario, la sentencia SQL puede fallar.

Lectura en tiempo real

  • Esta función solo admite el modo de inquilino MySQL de OceanBase.

  • Para sincronizar datos en tiempo real, habilite la función binlog. Para obtener más información, consulte Binlog-related operations (Alibaba Cloud instances), Operaciones relacionadas con Binlog (instancias de OB Cloud).

  • Las tareas de sincronización en tiempo real de base de datos completa no admiten orígenes de datos en modo de cadena de conexión.

  • Para las tareas de sincronización en tiempo real de base de datos completa, la versión de la base de datos debe ser V3.0 o posterior.

  • OceanBase es una base de datos relacional distribuida que puede integrar datos de varias bases de datos distribuidas físicamente en una sola base de datos lógica. Sin embargo, la sincronización en tiempo real de datos de OceanBase a AnalyticDB for MySQL actualmente solo admite datos de una sola base de datos física. No se admite la sincronización de datos desde una base de datos lógica.

Preparativos antes de la sincronización de datos

Antes de sincronizar datos en DataWorks, prepare el entorno de ApsaraDB for OceanBase como se describe en este tema. Esto garantiza que las tareas de sincronización de datos de ApsaraDB for OceanBase se puedan configurar y ejecutar correctamente en DataWorks. Las siguientes secciones describen los preparativos obligatorios.

Configure una lista de permitidos

Agregue el bloque CIDR de VPC del Serverless resource group o del resource group exclusivo para Data Integration a la lista de permitidos de OceanBase. Para obtener más información, consulte Add allowlist entries.

Cree una cuenta y configure permisos

Debe crear una cuenta de base de datos para las operaciones posteriores. Esta cuenta debe tener los permisos obligatorios en OceanBase. Para obtener más información, consulte Create an account and configure permissions.

Agregar un origen de datos

Antes de desarrollar una tarea de sincronización en DataWorks, debe agregar el origen de datos obligatorio a DataWorks siguiendo las instrucciones de Data source configuration. Consulte las descripciones de los parámetros en la consola de DataWorks para comprender el significado de los parámetros cuando agrega un origen de datos.

Desarrollar tareas de sincronización de datos

Para obtener información sobre el punto de entrada y el procedimiento para configurar una tarea de sincronización, consulte las siguientes guías de configuración.

Sincronización por lotes de una sola tabla

Sincronización en tiempo real de una sola tabla

Sincronización en tiempo real de base de datos completa

Apéndice: ejemplos de scripts y descripciones de parámetros

Configure una tarea de sincronización por lotes mediante el editor de código

Si desea configurar una tarea de sincronización por lotes mediante el editor de código, debe configurar los parámetros relacionados en el script según los requisitos del formato unificado de script. Para obtener más información, consulte Script mode configuration. La siguiente información describe los parámetros que debe configurar para los orígenes de datos cuando configura una tarea de sincronización por lotes mediante el editor de código.

Ejemplo de script de Reader

{ "type": "job", "steps": [ { "stepType": "apsaradb_for_OceanBase", // The plug-in name. "parameter": { "datasource": "", // The data source name. "where": "", "column": [ // The columns. "id", "name" ], "splitPk": "" }, "name": "Reader", "category": "reader" }, { "stepType": "stream", "parameter": { "print": false, "fieldDelimiter": "," }, "name": "Writer", "category": "writer" } ], "version": "2.0", "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] }, "setting": { "errorLimit": { "record": "0" // The error count. }, "speed": { "throttle": true, // Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled. "concurrent": 1, // The concurrency. "mbps":"12" // The throttling rate. 1 mbps = 1 MB/s. } } }

Parámetros del script de Reader

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

Si la edición de DataWorks que utiliza admite agregar orígenes de datos ApsaraDB for OceanBase, puede hacer referencia a un origen de datos ApsaraDB for OceanBase agregado por su nombre.

Hay dos métodos de configuración disponibles: jdbcUrl y username.

Sí

N/A

jdbcUrl

La información de conexión JDBC de la base de datos de destino. Use una matriz JSON para la descripción. Puede especificar varias direcciones de conexión para una sola base de datos.

Si se configuran varias direcciones, ApsaraDB for OceanBase Reader prueba la conectividad de cada dirección IP en secuencia hasta encontrar una válida.

Si todas las conexiones fallan, ApsaraDB for OceanBase Reader informa un error.

Nota

jdbcUrl debe incluirse en la unidad de configuración connection.

Según la especificación oficial de ApsaraDB for OceanBase, jdbcUrl puede incluir información adicional de control de conexión. Por ejemplo, jdbc:oceanbase://127.0.0.1:3306/database. Debe usar este parámetro o username, pero no ambos.

No

N/A

username

El nombre de usuario del origen de datos.

No

N/A

password

La contraseña del nombre de usuario especificado para el origen de datos.

No

N/A

table

Las tablas que se sincronizarán. Use una matriz JSON para la descripción. Puede leer datos de varias tablas al mismo tiempo.

Cuando se configuran varias tablas, asegúrese de que todas las tablas tengan el mismo esquema. ApsaraDB for OceanBase Reader no comprueba la coherencia del esquema entre tablas.

Nota

table debe incluirse en la unidad de configuración connection.

Sí

N/A

column

Las columnas que se sincronizarán de las tablas configuradas. Use una matriz JSON para describir la información de columnas. De forma predeterminada, se usan todas las columnas; por ejemplo, [*].

  • Se admite la selección de columnas: puede exportar solo columnas específicas.

  • Se admite el reordenamiento de columnas: puede exportar columnas en un orden distinto al del esquema de la tabla.

  • Se admite la configuración de constantes. Por ejemplo, '123'.

  • Se admiten columnas de función. Por ejemplo, date('now').

  • column debe especificar explícitamente el conjunto de columnas que se sincronizarán y no puede dejarse vacío.

Sí

N/A

splitPk

Si especifica splitPk cuando ApsaraDB for OceanBase Reader extrae datos, los datos se dividen según la columna especificada por splitPk. Luego, el sistema de sincronización de datos inicia tareas simultáneas para mejorar la eficiencia de sincronización.

  • Se recomienda que establezca splitPk en la clave principal de la tabla. La clave principal generalmente se distribuye de manera uniforme, lo que ayuda a evitar puntos calientes de datos entre fragmentos.

  • Actualmente, splitPk solo admite la división por tipo entero. No se admiten tipos de cadena, punto flotante, fecha ni otros tipos. Si especifica un tipo no compatible, ApsaraDB for OceanBase Reader informa un error.

  • Si splitPk se deja vacío, el sistema considera que no desea dividir una sola tabla. En este caso, se usa un único canal para la extracción de datos.

No

Vacío

where

ApsaraDB for OceanBase Reader ensambla una sentencia SQL basado en los parámetros column, table y where especificados, y luego usa la sentencia SQL ensamblada para extraer datos.

Por ejemplo, durante las pruebas, puede establecer la condición where en limit 10. En escenarios empresariales reales, normalmente sincroniza los datos generados en el día actual estableciendo la condición where en gmt_create>$bizdate.

  • La condición where se puede usar para la sincronización incremental de datos.

  • Si la condición where no se configura o se deja vacía, se sincronizan todos los datos de la tabla.

No

N/A

querySql

En algunos escenarios empresariales, el parámetro where puede no ser suficiente para describir las condiciones de filtro obligatorias. Puede usar este parámetro para definir una sentencia SQL de filtro personalizada. Cuando este parámetro se configura, el sistema de sincronización de datos ignora los parámetros tables, columns y splitPk, y usa la sentencia SQL configurada para filtrar datos.

Cuando configura querySql, ApsaraDB for OceanBase Reader ignora los parámetros table, column, where y splitPk.

No

N/A

fetchSize

Este parámetro especifica el número de filas recuperadas por lote entre el complemento y el servidor de base de datos. Este valor determina el número de interacciones de red entre el sistema de sincronización de datos y el servidor, y puede mejorar significativamente el rendimiento de la extracción de datos.

Nota

Un valor de fetchSize demasiado grande (>2048) puede causar un error de memoria insuficiente (OOM) en el proceso de sincronización de datos.

No

1,024

Ejemplo de script de Writer

{ "type":"job", "version":"2.0", // The version number. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"apsaradb_for_OceanBase", // The plug-in name. "parameter":{ "datasource": "Data source name", "column": [ // The columns. "id", "name" ], "table": "apsaradb_for_OceanBase_table", // The table name. "preSql": [ // The SQL statements to execute before the data synchronization task runs. "delete from @table where db_id = -1" ], "postSql": [ // The SQL statements to execute after the data synchronization task runs. "update @table set db_modify_time = now() where db_id = 1" ], "obWriteMode": "insert", }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0" // The error count. }, "speed":{ "throttle":true, // Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled. "concurrent":1, // The concurrency. "mbps":"12" // The throttling rate. 1 mbps = 1 MB/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }

Parámetros del script de Writer

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

Si la edición de DataWorks que utiliza admite agregar orígenes de datos ApsaraDB for OceanBase, puede hacer referencia a un origen de datos ApsaraDB for OceanBase agregado por su nombre.

Hay dos métodos de configuración disponibles: jdbcUrl y username.

No

N/A

jdbcUrl

La información de conexión JDBC de la base de datos de destino. jdbcUrl se incluye en la unidad de configuración connection.

  • Solo puede configurar un valor para una sola base de datos. No se admiten escenarios donde la misma base de datos tiene varios nodos principales (importación de doble nodo principal).

  • El formato de jdbcUrl es coherente con la especificación oficial de ApsaraDB for OceanBase y puede incluir parámetros de conexión adicionales. Por ejemplo, jdbc:oceanbase://127.0.0.1:3306/database.

Sí

N/A

username

El nombre de usuario del origen de datos.

Sí

N/A

password

La contraseña del nombre de usuario especificado para el origen de datos.

Sí

N/A

table

El nombre de la tabla en la que se escriben los datos. Use una matriz JSON para la descripción.

Nota

table debe incluirse en la unidad de configuración connection.

Sí

N/A

column

Las columnas de la tabla de destino en las que se escriben los datos. Separe los nombres de columnas con comas (,). Por ejemplo, "column": ["id", "name", "age"].

Nota

El parámetro column debe especificarse y no puede dejarse vacío.

Sí

N/A

obWriteMode

El modo que se usa para escribir datos en la tabla de destino. Este parámetro es opcional.

  • insert: insert into ... Cuando se produce un conflicto de clave principal o índice único, no se pueden escribir las filas en conflicto.

  • update: ... on duplicate key update ... Se usa en el modo de inquilino MySQL. Las filas en conflicto se actualizan al producirse el conflicto.

  • merge: merge into ... matched then update ... Se usa en el modo de inquilino Oracle. Las filas en conflicto se actualizan al producirse el conflicto.

No

insert

onClauseColumns

Nota

Se usa en el modo de inquilino Oracle. Este parámetro es obligatorio cuando obWriteMode se establece en merge. Si este parámetro no se configura, los datos se escriben mediante insert.

Establezca este parámetro en columnas de clave principal o columnas de restricción única. Separe varias columnas con comas (,). Por ejemplo, ID,C1.

No

N/A

obUpdateColumns

Nota

Este parámetro surte efecto cuando obWriteMode se establece en merge o update.

Las columnas que se actualizarán cuando se produzca un conflicto de escritura. Separe varias columnas con comas (,). Por ejemplo, c2,c3.

No

Todas las columnas

preSql

Las sentencias SQL estándar que se ejecutarán antes de escribir datos en la tabla de destino. Si necesita hacer referencia al nombre de la tabla en las sentencias SQL, use @table como marcador de posición. El sistema reemplaza esta variable por el nombre real de la tabla en tiempo de ejecución.

No

N/A

postSql

Las sentencias SQL estándar que se ejecutarán después de escribir datos en la tabla de destino.

No

N/A

batchSize

El número de registros que se enviarán en cada lote. Este valor puede reducir significativamente el número de interacciones de red entre el sistema de sincronización de datos y el servidor, y mejorar el rendimiento general.

Nota

Un valor de fetchSize demasiado grande (>2048) puede causar un error de memoria insuficiente (OOM) en el proceso de sincronización de datos.

No

1,024