Todos los productos
Search
Centro de documentos

DataWorks:Origen de datos de DataHub

Última actualización: Sep 25, 2026

El origen de datos de DataHub proporciona un canal bidireccional para leer y escribir datos en DataHub. Esto permite procesar grandes volúmenes de información de manera eficiente. En este tema se describen las capacidades de sincronización de datos que DataWorks ofrece para DataHub.

Versiones compatibles

  • DataHub Reader utiliza el SDK de DataHub para Java con el fin de leer datos desde DataHub. A continuación se muestra la versión del SDK.

    <dependency>
        <groupId>com.aliyun.DataHub</groupId>
        <artifactId>aliyun-sdk-DataHub</artifactId>
        <version>2.9.1</version>
    </dependency>
  • DataHub Writer utiliza el SDK de DataHub para Java con el fin de escribir datos en DataHub. A continuación se muestra la versión del SDK.

    <dependency>
        <groupId>com.aliyun.datahub</groupId>
        <artifactId>aliyun-sdk-datahub</artifactId>
        <version>2.5.1</version>
    </dependency>

Límites

Lectura y escritura por lotes

El tipo de dato STRING solo admite la codificación UTF-8. Una sola columna STRING no puede superar 1 MB.

Lectura y escritura en tiempo real

  • Las tareas de sincronización en tiempo real son compatibles con serverless resource groups.

  • Cuando sincroniza datos hacia DataHub en tiempo real, estos se fragmentan según el valor hash de los datos de origen. Los registros con el mismo valor hash se sincronizan en el mismo fragmento.

Escritura completa de base de datos en tiempo real

Al ejecutar la tarea, primero una tarea de sincronización por lotes escribe todos los datos en DataHub. Después, se inicia una tarea de sincronización en tiempo real que transfiere los datos incrementales del origen al destino. La escritura de datos sigue estas reglas:

  • Los datos solo se pueden escribir en temas de DataHub de tipo TUPLE. Para obtener más información sobre el tipo de dato TUPLE, consulte Data types.

  • Durante la sincronización de datos hacia DataHub en tiempo real, se agregan cinco campos adicionales a los de la tabla de origen. También puede agregar otros campos cuando configure la tarea. Para conocer el formato final del mensaje enviado a DataHub, consulte Appendix: DataHub message formats.

Tipos de campo compatibles

Al sincronizar datos hacia DataHub, los valores se asignan a los tipos de campo correspondientes. DataHub solo admite los tipos de dato BIGINT, STRING, BOOLEAN, DOUBLE, TIMESTAMP y DECIMAL.

Agregar un origen de datos

Antes de desarrollar una tarea de sincronización en DataWorks, debe agregar el origen de datos obligatorio mediante las instrucciones de Data source configuration. Consulte las descripciones de parámetros en la consola de DataWorks para comprender el significado de cada uno al agregar un origen de datos.

Desarrollar una tarea de sincronización de datos

Para conocer el punto de entrada y el procedimiento de configuración de una tarea de sincronización, consulte las siguientes guías.

Configurar una tarea de sincronización por lotes de una sola tabla

Configurar una tarea de sincronización en tiempo real de una sola tabla

Para consultar el procedimiento, revise Configure a real-time synchronization task.

Nota

Para obtener información sobre las operaciones que admiten los distintos tipos de dato de DataHub, las estrategias de fragmentación, los formatos de datos y los ejemplos de mensajes relacionados, consulte Appendix: DataHub message formats.

Configurar una tarea de sincronización completa de base de datos en tiempo real

Para consultar el procedimiento, revise Configure a real-time full-database synchronization task.

Preguntas frecuentes

How do I handle write failures when the data volume in a single write to DataHub exceeds the limit?

Apéndice: ejemplos de script y descripción de parámetros

Configurar una tarea de sincronización por lotes con el editor de código

Si desea configurar una tarea de sincronización por lotes con el editor de código, debe definir los parámetros correspondientes en el script según los requisitos unificados de formato. Para obtener más información, consulte Script mode configuration. A continuación se describen los parámetros obligatorios para los orígenes de datos cuando configura una tarea de sincronización por lotes con el editor de código.

Ejemplo de script de Reader

{ "type":"job", "version":"2.0",// The version number. "steps":[ { "job": { "content": [ { "reader": { "name": "DataHubreader", "parameter": { "endpoint": "xxx" // The endpoint of DataHub. "accessId": "xxx", // The AccessKey ID used to access DataHub. "accessKey": "xxx", // The AccessKey secret used to access DataHub. "project": "xxx", // The name of the DataHub project. "topic": "xxx" // The name of the DataHub topic. "batchSize": 1000, // The number of records to read at a time. "beginDateTime": "20180910111214", // The start time for data consumption. "endDateTime": "20180910111614", // The end time for data consumption. "column": [ "col0", "col1", "col2", "col3", "col4" ] } }, "writer": { "name": "streamwriter", "parameter": { "print": false } } } ] } } ], "setting":{ "errorLimit":{ "record":"0"// The error count. }, "speed":{ "throttle":true,// Specifies whether to enable throttling. If throttle is set to false, the mbps parameter does not take effect, which means throttling is disabled. If throttle is set to true, 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 Reader

Parámetro

Descripción

Obligatorio

endpoint

El endpoint de DataHub.

Sí

accessId

El accessId utilizado para acceder a DataHub.

Sí

accessKey

La accessKey utilizada para acceder a DataHub.

Sí

project

El nombre del proyecto de DataHub. Un project es la unidad básica de gestión de recursos en DataHub y se utiliza para aislar recursos y aplicar el control de acceso.

Sí

topic

El nombre del topic de DataHub.

Sí

batchSize

El número de registros que se leen simultáneamente. Valor predeterminado: 1,024.

No

beginDateTime

La hora de inicio del consumo de datos. Este parámetro define el límite izquierdo (inclusivo) del intervalo de tiempo y debe ser una cadena con el formato yyyyMMddHHmmss. Para implementar la sincronización incremental, utilice este parámetro junto con scheduling parameters de DataWorks. Por ejemplo, establezca el nombre del parámetro de programación del nodo como bizdate y el valor del parámetro como $[yyyymmdd-1]. Luego, defina beginDateTime como ${bizdate}000000, lo cual indica que el consumo de datos comienza a las 00:00:00 del día anterior.

Nota

beginDateTime y endDateTime deben usarse juntos.

Sí

endDateTime

La hora de finalización del consumo de datos. Este parámetro define el límite derecho (exclusivo) del intervalo de tiempo y debe ser una cadena con el formato yyyyMMddHHmmss. Para implementar la sincronización incremental, utilice este parámetro junto con scheduling parameters de DataWorks. Por ejemplo, establezca el nombre del parámetro de programación del nodo como bizdate y el valor del parámetro como $[yyyymmdd-1]. Luego, defina endDateTime como ${bizdate}235959, lo cual indica que el consumo de datos termina a las 23:59:59 del día anterior.

Nota

beginDateTime y endDateTime deben usarse juntos.

Sí

Ejemplo de script de Writer

{ "type": "job", "version": "2.0",// The version number. "steps": [ { "stepType": "stream", "parameter": {}, "name": "Reader", "category": "reader" }, { "stepType": "datahub",// The plug-in name. "parameter": { "datasource": "",// The data source. "topic": "",// A topic is the smallest unit for subscription and publishing in DataHub. You can use a topic to represent a type or category of streaming data. "maxRetryCount": 500,// The maximum number of retries upon task failure. "maxCommitSize": 1048576// The data is committed in batches to the destination when the accumulated data buffer reaches the maxCommitSize (in bytes). // DataHub limits a single request to 10,000 records. Exceeding this limit causes a task error. Set this parameter based on the average size per record multiplied by 10,000. For example, if each record is 10 KB, set this parameter to a value lower than 10 × 10,000 KB. }, "name": "Writer", "category": "writer" } ], "setting": { "errorLimit": { "record": ""// The error count. }, "speed": { "throttle":true,// Specifies whether to enable throttling. If throttle is set to false, the mbps parameter does not take effect, which means throttling is disabled. If throttle is set to true, throttling is enabled. "concurrent":20, // 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

accessId

El accessId de DataHub.

Sí

N/A

accessKey

La accessKey de DataHub.

Sí

N/A

endPoint

Para acceder a los recursos de DataHub, debe seleccionar el nombre de dominio correcto según el servicio al que pertenece el recurso.

Sí

N/A

maxRetryCount

El número máximo de reintentos cuando falla la tarea.

No

N/A

mode

El modo de escritura cuando el valor es de tipo STRING.

Sí

N/A

parseContent

El contenido que se analizará sintácticamente.

Sí

N/A

project

Un proyecto es la unidad organizativa básica de los datos en DataHub y contiene varios temas.

Nota

Los proyectos de DataHub son independientes de los de MaxCompute. Los proyectos creados en MaxCompute no se pueden reutilizar en DataHub, por lo que debe crearlos por separado.

Sí

N/A

topic

Un tema es la unidad mínima de suscripción y publicación en DataHub. Sirve para representar un tipo o una categoría de datos de streaming.

Sí

N/A

maxCommitSize

Para mejorar la eficiencia de escritura, DataX acumula datos en un búfer y los confirma por lotes en el destino cuando el volumen acumulado alcanza el valor de maxCommitSize (en bytes). El valor predeterminado es 1,048,576, equivalente a 1 MB. DataHub limita cada solicitud a 10,000 registros; superar este límite provoca un error en la tarea. Defina este parámetro multiplicando el tamaño promedio de cada registro por 10,000 para controlar cuántos registros se escriben en DataHub por solicitud.

No

1MB