Puede usar el origen de datos TiDB en DataWorks para lecturas de datos por lotes. Este tema describe las capacidades de sincronización de datos compatibles con TiDB.
Versiones de TiDB compatibles
Lectura de datos por lotes: se admiten TiDB 7.x y 8.x.
Escritura de datos por lotes: no compatible.
Lectura y escritura de datos en tiempo real: no compatible.
TiDB es altamente compatible con el protocolo MySQL, así como con las funciones y la sintaxis comunes de MySQL 5.7 y MySQL 8.0. DataWorks usa el protocolo MySQL para la sincronización de datos por lotes desde TiDB. Para obtener más información sobre la compatibilidad entre TiDB y MySQL, consulte MySQL Compatibility.
Tipos de datos compatibles
Para consultar una lista completa de los tipos de datos de TiDB, véase Data Types. La siguiente tabla muestra la compatibilidad con los principales tipos de datos.
|
Tipo |
Lectura de datos por lotes (TiDB Reader) |
|
TINYINT |
Compatible |
|
SMALLINT |
Compatible |
|
MEDIUMINT |
Compatible |
|
INTEGER |
Compatible |
|
BIGINT |
Compatible |
|
FLOAT |
Compatible |
|
DOUBLE |
Compatible |
|
DECIMAL |
Compatible |
|
CHAR |
Compatible |
|
VARCHAR |
Compatible |
|
JSON |
Compatible |
|
TEXT |
Compatible |
|
TINYTEXT |
Compatible |
|
MEDIUMTEXT |
Compatible |
|
LONGTEXT |
Compatible |
|
VARBINARY |
Compatible |
|
BINARY |
Compatible |
|
BLOB |
Compatible |
|
TINYBLOB |
Compatible |
|
MEDIUMBLOB |
Compatible |
|
LONGBLOB |
Compatible |
|
ENUM |
Compatible |
|
SET |
Compatible |
|
BOOLEAN |
Compatible |
|
BIT |
Compatible |
|
DATE |
Compatible |
|
DATETIME |
Compatible |
|
TIMESTAMP |
Compatible |
|
TIME |
Compatible |
|
YEAR |
Compatible |
Preparar el entorno de TiDB
Antes de sincronizar datos en DataWorks, prepare su entorno de TiDB tal como se describe en esta sección para garantizar que las tareas de sincronización de datos se ejecuten correctamente.
Confirmar la versión de TiDB
Data Integration requiere TiDB 7.x o 8.x. Confirme que su versión de TiDB cumple con este requisito. Ejecute la siguiente instrucción en su base de datos TiDB para comprobar la versión actual.
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)
Configurar permisos de cuenta
Cree una cuenta dedicada de TiDB para que DataWorks acceda al origen de datos siguiendo estos pasos:
(Opcional) Cree una cuenta. Para obtener más información, consulte TiDB User Account Management.
-
Configure los permisos.
Para lecturas de datos por lotes desde TiDB, la cuenta debe tener permiso de lectura (
SELECT) sobre las tablas de origen.Ejecute los siguientes comandos para otorgar permisos a la cuenta, o bien otorgue directamente el permiso
SUPER. Al ejecutar las instrucciones, reemplace'sync_account'con el nombre de su cuenta.-- 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.La sintaxis
*.*otorga los permisos especificados sobre todas las tablas en todas las bases de datos. También puede otorgar permisos sobre tablas específicas en una base de datos destino. Por ejemplo, para otorgar el permiso SELECT sobre la tabla user en la base de datos test, ejecute la siguiente instrucción:GRANT SELECT ON test.user TO 'sync_account'@'%';.NotaLa instrucción
REPLICATION SLAVEotorga un permiso global y no se puede asignar a una tabla específica dentro de una base de datos.
Agregar un origen de datos
Antes de desarrollar una tarea de sincronización en DataWorks, agregue el origen de datos requerido a DataWorks siguiendo las instrucciones en Data source configuration. Consulte las descripciones de parámetros en la consola de DataWorks para comprender el significado de cada parámetro al agregar un origen de datos.
Apéndice: Ejemplo de script y parámetros
Configurar una tarea de sincronización por lotes mediante el editor de código
Si desea configurar una tarea de sincronización por lotes mediante el editor de código, defina los parámetros correspondientes en el script según los requisitos unificados de formato de scripts. Para obtener más información, consulte Script mode configuration. A continuación se describen los parámetros que debe configurar para los orígenes de datos al usar el editor de código en una tarea de sincronización por lotes.
Ejemplo de script del lector
El siguiente código proporciona un ejemplo de configuración para el lector:
Los comentarios en el siguiente ejemplo JSON tienen únicamente fines explicativos. Elimínelos antes de ejecutar la tarea.
{
"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 del script del lector
|
Parámetro |
Descripción |
Obligatorio |
Predeterminado |
|
datasource |
Debe coincidir con el nombre del origen de datos que configuró en DataWorks. |
Sí |
Ninguna |
|
table |
Nombre de la tabla de origen. Los siguientes ejemplos muestran usos avanzados para configurar un rango en este parámetro:
|
Sí |
Ninguna |
|
column |
Columnas de la tabla de origen que se van a sincronizar, especificadas como una matriz JSON. Para leer todas las columnas, use
|
Sí |
Ninguna |
|
splitPk |
Especifica una columna para usar en la fragmentación de datos. Esto permite que las tareas paralelas se ejecuten durante la extracción de datos, lo cual mejora la eficiencia de la sincronización.
|
No |
Ninguna |
|
where |
Condición de filtro para los datos de origen. Se usa frecuentemente para sincronizaciones incrementales. Por ejemplo, para sincronizar solo los datos del día actual, establezca la condición en
|
No |
Ninguna |