Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados DataHub

Última atualização: Jun 27, 2026

A fonte de dados DataHub oferece um canal bidirecional para leitura e gravação de dados no DataHub, permitindo o processamento eficiente de dados em grande escala. Este tópico descreve as capacidades de sincronização de dados que o DataWorks fornece para o DataHub.

Versões suportadas

  • O DataHub Reader usa o SDK do DataHub para Java para ler dados do DataHub. O código a seguir mostra a versão do SDK.

    <dependency>
        <groupId>com.aliyun.DataHub</groupId>
        <artifactId>aliyun-sdk-DataHub</artifactId>
        <version>2.9.1</version>
    </dependency>
  • O DataHub Writer usa o SDK do DataHub para Java para gravar dados no DataHub. O código a seguir mostra a versão do SDK.

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

Limitações

Leitura e gravação em lote

O tipo de dado STRING suporta apenas codificação UTF-8. Uma única coluna STRING não pode exceder 1 MB.

Leitura e gravação em tempo real

  • As tarefas de sincronização em tempo real suportam grupos de recursos serverless.

  • Ao sincronizar dados para o DataHub em tempo real, os dados são fragmentados com base no valor de hash dos dados de source. Registros com o mesmo valor de hash são sincronizados para o mesmo shard.

Gravação completa de banco de dados em tempo real

Ao executar a tarefa, uma tarefa de sincronização em lote grava primeiro todos os dados no DataHub. Em seguida, uma tarefa de sincronização em tempo real é iniciada, sincronizando os dados incrementais da source para o destino. A gravação dos dados segue as regras abaixo:

  • A gravação de dados é permitida apenas em tópicos do DataHub do tipo TUPLE. Para mais informações sobre o tipo de dado TUPLE, consulte Tipos de dados.

  • Durante a sincronização de dados para o DataHub em tempo real, cinco campos adicionais são anexados aos campos da tabela de source. Também é possível adicionar outros campos ao configurar a tarefa. Para mais detalhes sobre o formato final da mensagem enviada ao DataHub, consulte Apêndice: Formatos de mensagem do DataHub.

Tipos de campo suportados

Na sincronização de dados para o DataHub, os valores são mapeados para os tipos de campo correspondentes. O DataHub suporta apenas os tipos de dados BIGINT, STRING, BOOLEAN, DOUBLE, TIMESTAMP e DECIMAL.

Adicionar uma fonte de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a fonte de dados necessária seguindo as instruções em Gerenciamento de fontes de dados. Consulte as descrições de parâmetros no console do DataWorks para compreender o significado de cada parâmetro ao adicionar uma fonte de dados.

Desenvolver uma tarefa de sincronização de dados

Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias de configuração a seguir.

Configure uma tarefa de sincronização em lote de tabela única

Configure uma tarefa de sincronização em tempo real de tabela única

Para o procedimento, consulte Configure uma tarefa de sincronização em tempo real.

Nota

Para informações sobre operações suportadas por diferentes tipos de dados do DataHub, estratégias de sharding, formatos de dados e exemplos de mensagens relacionados, consulte Apêndice: Formatos de mensagem do DataHub.

Configure uma tarefa de sincronização completa de banco de dados em tempo real

Para o procedimento, consulte Configure uma tarefa de sincronização completa de banco de dados em tempo real.

Perguntas frequentes

Como lidar com falhas de gravação quando o volume de dados em uma única gravação no DataHub excede o limite?

Apêndice: Exemplos de script e descrição de parâmetros

Configure uma tarefa de sincronização em lote usando o editor de código

Para configure uma tarefa de sincronização em lote usando o editor de código, defina os parâmetros relevantes no script conforme os requisitos unificados de formato de script. Para mais informações, consulte Configuração no modo script. As informações a seguir descrevem os parâmetros que devem ser configurados para as fontes de dados ao utilizar o editor de código para tarefas de sincronização em lote.

Exemplo de script do 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 do script do Reader

Parâmetro

Descrição

Obrigatório

endpoint

O endpoint do DataHub.

Sim

accessId

O accessId usado para acessar o DataHub.

Sim

accessKey

A accessKey usada para acessar o DataHub.

Sim

project

Nome do projeto do DataHub. Um project é a unidade básica de gerenciamento de recursos no DataHub, utilizado para isolamento de recursos e controle de acesso.

Sim

topic

Nome do topic do DataHub.

Sim

batchSize

Número de registros a serem lidos por vez. Valor padrão: 1.024.

Não

beginDateTime

Hora de início do consumo de dados. Este parâmetro define o limite inferior (inclusivo) do intervalo de tempo e deve ser uma string de tempo no formato yyyyMMddHHmmss. Para implementar sincronização incremental, utilize este parâmetro em conjunto com os parâmetros de agendamento do DataWorks. Por exemplo, defina o nome do parâmetro de agendamento do nó como bizdate e o valor do parâmetro como $[yyyymmdd-1]. Em seguida, configure beginDateTime como ${bizdate}000000, indicando que a hora de início do consumo de dados é 00:00:00 do dia anterior.

Nota

Os parâmetros beginDateTime e endDateTime devem ser usados em conjunto.

Sim

endDateTime

Hora de término do consumo de dados. Este parâmetro define o limite superior (exclusivo) do intervalo de tempo e deve ser uma string de tempo no formato yyyyMMddHHmmss. Para implementar sincronização incremental, utilize este parâmetro em conjunto com os parâmetros de agendamento do DataWorks. Por exemplo, defina o nome do parâmetro de agendamento do nó como bizdate e o valor do parâmetro como $[yyyymmdd-1]. Em seguida, configure endDateTime como ${bizdate}235959, indicando que a hora de término do consumo de dados é 23:59:59 do dia anterior.

Nota

Os parâmetros beginDateTime e endDateTime devem ser usados em conjunto.

Sim

Exemplo de script do 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 do script do Writer

Parâmetro

Descrição

Obrigatório

Valor padrão

accessId

O accessId do DataHub.

Sim

N/A

accessKey

A accessKey do DataHub.

Sim

N/A

endPoint

Para acessar recursos do DataHub, selecione o nome de domínio correto com base no serviço ao qual o recurso pertence.

Sim

N/A

maxRetryCount

Número máximo de tentativas em caso de falha na tarefa.

Não

N/A

mode

Modo de gravação quando o valor é do tipo STRING.

Sim

N/A

parseContent

Conteúdo a ser analisado.

Sim

N/A

project

Um projeto é a unidade organizacional básica para dados no DataHub e contém múltiplos tópicos.

Nota

Os projetos do DataHub são independentes dos projetos do MaxCompute. Projetos criados no MaxCompute não podem ser reutilizados no DataHub. Crie os projetos separadamente.

Sim

N/A

topic

Um tópico é a menor unidade para assinatura e publicação no DataHub. Utilize um tópico para representar um tipo ou categoria de dados em streaming.

Sim

N/A

maxCommitSize

Para melhorar a eficiência de gravação, o DataX acumula dados em um buffer e os envia em lotes para o destino quando o volume acumulado atinge o maxCommitSize (em bytes). O valor padrão é 1.048.576, equivalente a 1 MB. O DataHub limita uma única solicitação a 10.000 registros; ultrapassar esse limite causa erro na tarefa. Configure este parâmetro com base no tamanho médio por registro multiplicado por 10.000 para controlar a quantidade de registros gravados no DataHub por solicitação.

Não

1MB