Todos os produtos
Search
Central de documentação

DataWorks:TiDB

Última atualização: Jun 27, 2026

A fonte de dados TiDB permite leitura offline. Este tópico descreve como o DataWorks oferece suporte à sincronização de dados para o TiDB.

Versões do TiDB compatíveis

  • Leitura offline: versões 7.x e 8.x do banco de dados TiDB.

  • Escrita offline: não compatível.

  • Leitura e escrita em tempo real: não compatíveis.

Nota

O TiDB é altamente compatível com o protocolo MySQL e oferece suporte aos recursos e à sintaxe comuns do MySQL 5.7 e MySQL 8.0. O DataWorks usa o protocolo MySQL para ler dados do TiDB na sincronização offline. Para obter mais informações sobre a compatibilidade entre TiDB e MySQL, consulte Compatibilidade com MySQL.

Tipos de campo compatíveis

Para obter mais informações sobre todos os tipos de campo do TiDB compatíveis, consulte Visão geral dos tipos de dados. A tabela a seguir lista a compatibilidade com os principais tipos de campo.

Tipo de campo

Leitura offline (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

Pré-requisitos: Preparar o ambiente TiDB

Antes de sincronizar dados no DataWorks, prepare o ambiente TiDB. Essa etapa garante a configuração e execução corretas das tarefas de sincronização de dados do TiDB. As seções a seguir descrevem as etapas de preparação.

Confirme a versão do TiDB

O Data Integration requer a versão 7.x ou 8.x do TiDB. Verifique se o banco de dados TiDB atende a esse requisito de versão. Para verificar a versão atual, execute a seguinte instrução no banco de dados TiDB.

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 permissões da conta

Crie uma conta dedicada no TiDB para que o DataWorks acesse a fonte de dados.

  1. (Opcional) Crie uma conta. Para obter mais informações, consulte Gerenciamento de contas de usuário.

  2. Configure as permissões.

    Para leituras offline de dados do TiDB, essa conta deve ter a permissão de leitura (SELECT) nas tabelas a sincronizar.

    Execute os comandos a seguir para conceder permissões à conta ou conceda diretamente a permissão SUPER. Nas instruções abaixo, substitua 'sync_account' pela conta criada.

    -- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; // Create a sync account and set a password. This allows the account to log on to the database from any host. The percent sign (%) indicates any host.
    GRANT SELECT ON *.* TO 'sync_account'@'%'; // Grant the SELECT permission on the database to the sync account.

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

    Nota

    A instrução REPLICATION SLAVE concede uma permissão global. Não utilize essa instrução para conceder permissões em uma tabela específica do banco de dados de destino à conta de sincronização.

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 entender o significado de cada parâmetro ao adicionar uma fonte de dados.

Apêndice: Exemplo de script TiDB e descrições de 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 pelo editor de código, defina os parâmetros relacionados no script conforme os requisitos unificados de formato. Para obter mais informações, consulte Configuração no modo script. As informações a seguir detalham os parâmetros obrigatórios para fontes de dados ao configurar uma tarefa de sincronização em lote via editor de código.

Exemplo de script do Reader

O código a seguir apresenta um exemplo de script para leitura de dados:

Nota

Os comentários no exemplo JSON abaixo servem apenas para fins de demonstração. Remova-os ao configurar o script.

{
  "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

Nome do parâmetro do script

Descrição

Obrigatório

Valor padrão

datasource

Nome da fonte de dados. O editor de código permite adicionar fontes de dados. O valor deste parâmetro deve ser idêntico ao nome da fonte de dados adicionada.

Sim

Nenhum

table

Nome da tabela de onde os dados serão sincronizados.

Os exemplos a seguir mostram usos avançados do parâmetro table para configurar um intervalo:

  • É possível ler dados de tabelas fragmentadas configurando um intervalo. Por exemplo, 'table_[0-99]' especifica que a leitura ocorre de 'table_0', 'table_1', 'table_2', até 'table_99'.

  • Se os sufixos numéricos dos nomes das tabelas tiverem o mesmo comprimento, como 'table_000', 'table_001', 'table_002', até 'table_999', defina o parâmetro como '"table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"]'.

Sim

Nenhum

column

Colunas a sincronizar da tabela especificada. Use um array JSON para descrever os campos. Para sincronizar todas as colunas, defina este parâmetro como ["*"].

  • Seleção de colunas: selecione colunas específicas para exportação.

  • Reordenação de colunas: exporte as colunas em uma ordem diferente do esquema da tabela.

  • Configuração de constantes: siga a sintaxe SQL do MySQL. Exemplo: ["id","table","1","'test_constant'","'null'","to_char(a+1)","2,3","true"] .

    • id é um nome de coluna comum.

    • table é um nome de coluna que também é uma palavra reservada.

    • 1 é uma constante inteira.

    • 'test_constant' é uma constante de string. Observe que ela deve estar entre aspas simples.

    • Sobre valores nulos:

      • "" indica uma string vazia.

      • null indica um valor nulo.

      • 'null' indica a string "null".

    • A função to_char(a+1) calcula o comprimento da string.

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

    • true é um valor booleano.

  • O parâmetro column deve especificar explicitamente o conjunto de colunas a sincronizar. Ele não pode estar vazio.

Sim

Nenhum

splitPk

Ao extrair dados, se você especificar splitPk, o TiDB Reader usa o campo indicado para particionar os dados. Isso habilita tarefas simultâneas de sincronização e aumenta a eficiência.

  • Use a chave primária da tabela para splitPk. Chaves primárias geralmente têm distribuição uniforme, o que ajuda a evitar pontos críticos de dados nos shards resultantes.

  • Atualmente, splitPk oferece suporte apenas a particionamento de dados baseado em inteiros. Outros tipos, como strings, números de ponto flutuante ou datas, não são compatíveis. Se um tipo incompatível for especificado, o recurso splitPk será ignorado e a sincronização ocorrerá por um único canal.

  • Caso splitPk não seja especificado ou seu valor esteja vazio, a sincronização da tabela ocorrerá por um único canal.

Não

Nenhum

where

Condição de filtro. Em muitos cenários de negócios, pode ser necessário sincronizar apenas os dados do dia atual. Para isso, defina a condição where como gmt_create>$bizdate.

  • A condição where permite uma sincronização incremental eficiente. Sem uma cláusula where válida (chave ou valor ausentes), todos os dados serão sincronizados.

  • A sintaxe limit não é compatível com a condição where.

Não

Nenhum