Todos los productos
Search
Centro de documentos

DataWorks:Origen de datos TiDB

Última actualización: Sep 04, 2026

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.

Nota

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:

  1. (Opcional) Cree una cuenta. Para obtener más información, consulte TiDB User Account Management.

  2. 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'@'%';.

    Nota

    La instrucción REPLICATION SLAVE otorga 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:

Nota

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:

  • Configure un rango para leer datos de bases de datos y tablas fragmentadas. Por ejemplo, 'table_[0-99]' especifica las tablas desde 'table_0' hasta 'table_99'.

  • Si los nombres de sus tablas tienen sufijos numéricos de longitud fija, como de 'table_000' a 'table_999', establezca el parámetro en "table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"].

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 ["*"].

  • Reducción de columnas: seleccione un subconjunto de columnas para leer.

  • Reordenamiento de columnas: exporte columnas en un orden diferente al esquema de la tabla.

  • Constantes: siga la sintaxis SQL de MySQL. Ejemplo: ["id","table","1","'test_constant'","null","'null'","expr(a+1)","2.3","true"] .

    • id es un nombre de columna regular.

    • table es un nombre de columna que también es una palabra clave reservada.

    • 1 es una constante entera.

    • 'test_constant' es una constante de cadena. Debe ir entre comillas simples.

    • Manejo de valores nulos:

      • "" indica una cadena vacía.

      • null indica un valor NULL.

      • 'null' indica la cadena "null".

    • expr(a+1) es un ejemplo de expresión.

    • 2.3 es un número de punto flotante.

    • true es un valor booleano.

  • Especifique explícitamente las columnas a sincronizar en el parámetro column. El parámetro no puede estar vacío.

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.

  • Use la clave principal de la tabla para el parámetro splitPk. Los valores de clave principal suelen distribuirse uniformemente, lo que ayuda a prevenir puntos críticos de datos.

  • Actualmente, splitPk admite la fragmentación de datos solo para tipos enteros. No es compatible con cadenas, números de punto flotante, fechas u otros tipos de datos. Si especifica un tipo de dato no compatible, esta función se ignora y la sincronización se ejecuta en un solo hilo.

  • Si no se configura este parámetro, los datos se sincronizan en un solo hilo.

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 gmt_create>$bizdate.

  • La cláusula WHERE permite realizar sincronizaciones incrementales de datos de manera eficaz. Si no especifica una cláusula WHERE, o si proporciona una sin clave ni valor, la operación se trata como una sincronización completa de datos.

  • La cláusula WHERE no admite la sintaxis LIMIT.

No

Ninguna