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.
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.
(Opcional) Crie uma conta. Para obter mais informações, consulte Gerenciamento de contas de usuário.
-
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çãoGRANT SELECT ON test.user TO 'sync_account'@'%';.NotaA instrução
REPLICATION SLAVEconcede 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:
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:
| 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
| 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.
| 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
| Não | Nenhum |