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.
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:
(Opcional) Crie uma conta. Para mais detalhes, consulte Gerenciamento de Contas de Usuário do TiDB.
-
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'@'%';.NotaA instrução
REPLICATION SLAVEconcede 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:
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:
|
Sim |
Nenhum |
|
column |
Colunas da tabela de origem a serem sincronizadas, especificadas como um array JSON. Para ler todas as colunas, use
|
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.
|
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
|
Não |
Nenhum |