Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados TiDB

Última atualização: Aug 24, 2026

Use a fonte de dados TiDB no DataWorks para leituras de dados em lote. Este tópico descreve os recursos de sincronização de dados compatíveis com o TiDB.

Versões do TiDB compatíveis

  • Leitura de dados em lote: compatível com TiDB 7.x e 8.x.

  • Gravação de dados em lote: não compatível.

  • Leitura e gravação de dados em tempo real: não compatível.

Nota

O TiDB apresenta alta compatibilidade com o protocolo MySQL e com os recursos e a sintaxe comuns do MySQL 5.7 e MySQL 8.0. O DataWorks usa o protocolo MySQL para sincronização de dados em lote a partir do TiDB. Para obter mais informações sobre a compatibilidade entre TiDB e MySQL, consulte Compatibilidade com MySQL.

Tipos de dados compatíveis

Para consultar a lista completa de tipos de dados do TiDB, acesse Tipos de Dados. A tabela a seguir lista a compatibilidade com os principais tipos de dados.

Tipo

Leitura de dados em lote (TiDB Reader)

TINYINT

Compatível

SMALLINT

Compatível

MEDIUMINT

Compatível

INTEGER

Compatível

BIGINT

Compatível

FLOAT

Compatível

DOUBLE

Compatível

DECIMAL

Compatível

CHAR

Compatível

VARCHAR

Compatível

JSON

Compatível

TEXT

Compatível

TINYTEXT

Compatível

MEDIUMTEXT

Compatível

LONGTEXT

Compatível

VARBINARY

Compatível

BINARY

Compatível

BLOB

Compatível

TINYBLOB

Compatível

MEDIUMBLOB

Compatível

LONGBLOB

Compatível

ENUM

Compatível

SET

Compatível

BOOLEAN

Compatível

BIT

Compatível

DATE

Compatível

DATETIME

Compatível

TIMESTAMP

Compatível

TIME

Compatível

YEAR

Compatível

Prepare o ambiente TiDB

Antes de sincronizar dados no DataWorks, prepare seu ambiente TiDB conforme descrito nesta seção para garantir que as tarefas de sincronização sejam executadas sem problemas.

Confirme a versão do TiDB

O Data Integration exige TiDB 7.x ou 8.x. Confirme se a sua versão do TiDB atende a esse requisito. Execute a instrução a seguir no banco de dados TiDB para verificar a versão atual.

SELECT TIDB_VERSION()\G

*************************** 1. row ***************************
TIDB_VERSION(): Release Version: v8.1.1
Edition: Community
Git Commit Hash: 821e491a20fbab36604b36b647b5bae26a2c1418
Git Branch: HEAD
UTC Build Time: 2024-08-27 19:16:25
GoVersion: go1.21.10
Race Enabled: false
Check Table Before Drop: false
Store: tikv
1 row in set (0.00 sec)

Configure as permissões da conta

Crie uma conta dedicada no TiDB para que o DataWorks acesse a fonte de dados seguindo estas etapas:

  1. (Opcional) Crie uma conta. Para mais detalhes, consulte Gerenciamento de Contas de Usuário do TiDB.

  2. Configure as permissões.

    Para leituras de dados em lote do TiDB, a conta deve ter permissão de leitura (SELECT) nas tabelas de origem.

    Execute os comandos a seguir para conceder permissões à conta ou conceda diretamente a permissão SUPER. Ao executar as instruções, substitua 'sync_account' pelo nome da sua conta.

    -- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; // Creates a synchronization account and sets a password. The account can log on from any host. '%' indicates any host.
    GRANT SELECT ON *.* TO 'sync_account'@'%'; // Grants the SELECT permission on all databases to the synchronization account.

    A sintaxe *.* concede as permissões especificadas em todas as tabelas de todos os bancos de dados. Também é possível conceder permissões em tabelas específicas de um banco de dados de destino. Por exemplo, para conceder a permissão SELECT na tabela user do banco de dados test, execute a seguinte instrução: GRANT SELECT ON test.user TO 'sync_account'@'%';.

    Nota

    A instrução REPLICATION SLAVE concede uma permissão global e não pode ser aplicada a uma tabela específica dentro de um banco de dados.

Adicione 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 Data source configuration. Consulte as descrições dos parâmetros no console do DataWorks para compreender o significado de cada parâmetro ao adicionar uma fonte de dados.

Apêndice: Exemplo de script e parâmetros

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

Para configurar uma tarefa de sincronização em lote por meio do editor de código, defina os parâmetros relevantes no script respeitando os requisitos unificados de formato. Para mais informações, consulte Script mode configuration. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados durante a configuração via editor de código.

Exemplo de script do Reader

O código a seguir apresenta um exemplo de configuração para o reader:

Nota

Os comentários no exemplo JSON abaixo servem apenas para fins explicativos. Remova-os antes de executar a tarefa.

{
  "type": "job",
  "version": "2.0",
  "steps":
  [
    {
      "stepType": "tidb",
      "parameter":
      {
        "column":
        [
          "id",
          "name"
        ],
        "where": "",
        "splitPk": "id",
        "connection":
        [
          {
            "selectedDatabase": "test_database",
            "datasource": "test_datasource",
            "table":
            [
              "test_table"
            ]
          }
        ]
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "odps",
      "parameter":
      {
      },
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting":
  {
    "errorLimit":
    {
      "record": "0"
    },
    "speed":
    {
      "throttle": false,
      "concurrent": 3
    }
  },
  "order":
  {
    "hops":
    [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  }
}

Parâmetros do script do Reader

Parâmetro

Descrição

Obrigatório

Padrão

source

Deve corresponder exatamente ao nome da fonte de dados configurada no DataWorks.

Sim

Nenhum

table

Nome da tabela de origem.

Os exemplos a seguir demonstram usos avançados para configurar intervalos neste parâmetro:

  • É possível definir um intervalo para ler dados de bancos de dados e tabelas fragmentados. Por exemplo, 'table_[0-99]' especifica tabelas de 'table_0' até 'table_99'.

  • Caso os nomes das tabelas possuam sufixos numéricos de comprimento fixo, como de 'table_000' a 'table_999', defina o parâmetro como "table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"].

Sim

Nenhum

column

Colunas da tabela de origem a serem sincronizadas, especificadas como um array JSON. Para ler todas as colunas, use ["*"].

  • Seleção de colunas: permite escolher um subconjunto específico de colunas para leitura.

  • Reordenação de colunas: possibilita exportar colunas em uma ordem diferente daquela definida no schema da tabela.

  • Constantes: devem seguir a sintaxe SQL do MySQL. Exemplo: ["id","table","1","'test_constant'","null","'null'","expr(a+1)","2,3","true"] .

    • id representa um nome de coluna comum.

    • table refere-se a um nome de coluna que também é uma palavra-chave reservada.

    • 1 indica uma constante inteira.

    • 'test_constant' é uma constante string e deve estar entre aspas simples.

    • Tratamento de valores nulos:

      • "" representa uma string vazia.

      • null indica um valor NULL.

      • 'null' corresponde à string literal "null".

    • expr(a+1) exemplifica o uso de uma expressão.

    • 2,3 é um número de ponto flutuante.

    • true é um valor booleano.

  • Especifique explicitamente as colunas a sincronizar no parâmetro column. Esse parâmetro não pode ficar vazio.

Sim

Nenhum

splitPk

Define a coluna usada para fragmentação de dados. Isso permite a execução paralela de tarefas durante a extração, aumentando a eficiência da sincronização.

  • Use a chave primária da tabela no parâmetro splitPk. Valores de chave primária geralmente possuem distribuição uniforme, o que ajuda a evitar pontos de congestionamento de dados.

  • Atualmente, splitPk oferece suporte à fragmentação apenas para tipos inteiros. Tipos string, ponto flutuante, data e outros não são suportados. Caso especifique um tipo incompatível, o recurso será ignorado e a sincronização ocorrerá em thread única.

  • Se este parâmetro não for configurado, a sincronização de dados ocorrerá em thread única.

Não

Nenhum

where

Condição de filtro para os dados de origem, frequentemente utilizada em sincronizações incrementais. Por exemplo, para sincronizar apenas os dados do dia atual, defina a condição como gmt_create>$bizdate.

  • A cláusula WHERE viabiliza a sincronização incremental eficiente de dados. Se nenhuma cláusula WHERE for especificada, ou se for fornecida sem chave ou valor, a operação será tratada como uma sincronização completa de dados.

  • A cláusula WHERE não oferece suporte à sintaxe LIMIT.

Não

Nenhum