Tous les produits
Search
Centre de documentation

DataWorks:Source de données TiDB

Dernière mise à jour :Aug 24, 2026

Utilisez la source de données TiDB dans DataWorks pour lire des données par lots. Cette rubrique décrit les capacités de synchronisation des données prises en charge pour TiDB.

Versions de TiDB prises en charge

  • Lecture de données par lots : TiDB 7.x et 8.x sont pris en charge.

  • Écriture de données par lots : non prise en charge.

  • Lecture et écriture de données en temps réel : non prises en charge.

Remarque

TiDB est hautement compatible avec le protocole MySQL ainsi qu'avec les fonctionnalités et la syntaxe courantes de MySQL 5.7 et MySQL 8.0. DataWorks utilise le protocole MySQL pour la synchronisation des données par lots depuis TiDB. Pour plus d'informations sur la compatibilité entre TiDB et MySQL, consultez Compatibilité MySQL.

Types de données pris en charge

Pour obtenir la liste complète des types de données TiDB, consultez Types de données. Le tableau suivant répertorie la prise en charge des principaux types de données.

Type

Lecture de données par lots (TiDB Reader)

TINYINT

Pris en charge

SMALLINT

Pris en charge

MEDIUMINT

Pris en charge

INTEGER

Pris en charge

BIGINT

Pris en charge

FLOAT

Pris en charge

DOUBLE

Pris en charge

DECIMAL

Pris en charge

CHAR

Pris en charge

VARCHAR

Pris en charge

JSON

Pris en charge

TEXT

Pris en charge

TINYTEXT

Pris en charge

MEDIUMTEXT

Pris en charge

LONGTEXT

Pris en charge

VARBINARY

Pris en charge

BINARY

Pris en charge

BLOB

Pris en charge

TINYBLOB

Pris en charge

MEDIUMBLOB

Pris en charge

LONGBLOB

Pris en charge

ENUM

Pris en charge

SET

Pris en charge

BOOLEAN

Pris en charge

BIT

Pris en charge

DATE

Pris en charge

DATETIME

Pris en charge

TIMESTAMP

Pris en charge

TIME

Pris en charge

YEAR

Pris en charge

Préparation de l'environnement TiDB

Avant de synchroniser des données dans DataWorks, préparez votre environnement TiDB comme décrit dans cette section afin de garantir le bon déroulement de vos tâches de synchronisation.

Vérification de la version de TiDB

Data Integration requiert TiDB 7.x ou 8.x. Vérifiez que votre version de TiDB répond à cette exigence. Exécutez l'instruction suivante dans votre base de données TiDB pour vérifier la version actuelle.

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)

Configuration des autorisations du compte

Créez un compte TiDB dédié pour permettre à DataWorks d'accéder à la source de données en suivant ces étapes :

  1. (Facultatif) Créez un compte. Pour plus d'informations, consultez Gestion des comptes utilisateur TiDB.

  2. Configurez les autorisations.

    Pour les lectures de données par lots depuis TiDB, le compte doit disposer de l'autorisation de lecture (SELECT) sur les tables source.

    Exécutez les commandes suivantes pour accorder des autorisations au compte, ou accordez directement l'autorisation SUPER. Lors de l'exécution des instructions, remplacez 'sync_account' par le nom de votre compte.

    -- 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 syntaxe *.* accorde les autorisations spécifiées sur toutes les tables de toutes les bases de données. Vous pouvez également accorder des autorisations sur des tables spécifiques d'une base de données cible. Par exemple, pour accorder l'autorisation SELECT sur la table user de la base de données test, exécutez l'instruction suivante : GRANT SELECT ON test.user TO 'sync_account'@'%';.

    Remarque

    L'instruction REPLICATION SLAVE accorde une autorisation globale et ne peut pas être accordée sur une table spécifique d'une base de données.

Ajout d'une source de données

Avant de développer une tâche de synchronisation dans DataWorks, ajoutez la source de données requise à DataWorks en suivant les instructions de la rubrique Configuration de la source de données. Consultez les descriptions des paramètres dans la console DataWorks pour comprendre la signification des paramètres lors de l'ajout d'une source de données.

Annexe : Exemple de script et paramètres

Configuration d'une tâche de synchronisation par lots à l'aide de l'éditeur de code

Si vous souhaitez configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code, configurez les paramètres associés dans le script selon les exigences de format de script unifié. Pour plus d'informations, consultez Configuration en mode script. Les informations suivantes décrivent les paramètres à configurer pour les sources de données lors de la configuration d'une tâche de synchronisation par lots à l'aide de l'éditeur de code.

Exemple de script Reader

Le code suivant fournit un exemple de configuration pour le lecteur :

Remarque

Les commentaires dans l'exemple JSON suivant sont fournis à titre explicatif uniquement. Supprimez-les avant d'exécuter la tâche.

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

Paramètres du script Reader

Paramètre

Description

Obligatoire

Valeur par défaut

datasource

Ce paramètre doit correspondre au nom de la source de données configuré dans DataWorks.

Oui

Aucune

table

Nom de la table source.

Les exemples suivants illustrent une utilisation avancée pour la configuration d'une plage pour ce paramètre :

  • Vous pouvez configurer une plage pour lire des données à partir de bases de données et de tables fragmentées. Par exemple, 'table_[0-99]' spécifie les tables de 'table_0' à 'table_99'.

  • Si les noms de vos tables comportent des suffixes numériques de longueur fixe, tels que de 'table_000' à 'table_999', définissez le paramètre sur "table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"].

Oui

Aucune

column

Colonnes de la table source à synchroniser, spécifiées sous forme de tableau JSON. Pour lire toutes les colonnes, utilisez ["*"].

  • Élagage des colonnes : sélectionnez un sous-ensemble de colonnes à lire.

  • Réorganisation des colonnes : exportez les colonnes dans un ordre différent du schéma de la table.

  • Constantes : respectez la syntaxe SQL MySQL. Exemple : ["id","table","1","'test_constant'","null","'null'","expr(a+1)","2.3","true"] .

    • id est un nom de colonne standard.

    • table est un nom de colonne qui est également un mot clé réservé.

    • 1 est une constante entière.

    • 'test_constant' est une constante de chaîne. Elle doit être entourée de guillemets simples.

    • Gestion des valeurs nulles :

      • "" indique une chaîne vide.

      • null indique une valeur NULL.

      • 'null' indique la chaîne « null ».

    • expr(a+1) est un exemple d'expression.

    • 2,3 est un nombre à virgule flottante.

    • true est une valeur booléenne.

  • Spécifiez explicitement les colonnes à synchroniser dans le paramètre column. Ce paramètre ne peut pas être vide.

Oui

Aucune

splitPk

Spécifie une colonne à utiliser pour le fractionnement des données. Cela permet l'exécution parallèle des tâches lors de l'extraction des données, ce qui améliore l'efficacité de la synchronisation.

  • Utilisez la clé primaire de la table pour le paramètre splitPk. Les valeurs de clé primaire sont généralement distribuées de manière uniforme, ce qui aide à prévenir les points chauds de données.

  • Actuellement, splitPk prend en charge le fractionnement des données uniquement pour les types entiers. Il ne prend pas en charge les types de données chaîne, à virgule flottante, date ou autres. Si vous spécifiez un type de données non pris en charge, cette fonctionnalité est ignorée et la synchronisation s'exécute sur un seul thread.

  • Si ce paramètre n'est pas configuré, les données sont synchronisées sur un seul thread.

Non

Aucune

where

Condition de filtre pour les données source. Elle est souvent utilisée pour la synchronisation incrémentielle. Par exemple, pour synchroniser uniquement les données du jour en cours, définissez la condition sur gmt_create>$bizdate.

  • La clause WHERE permet une synchronisation efficace des données incrémentielles. Si vous ne spécifiez pas de clause WHERE, ou si vous en fournissez une sans clé ni valeur, l'opération est traitée comme une synchronisation complète des données.

  • La clause WHERE ne prend pas en charge la syntaxe LIMIT.

Non

Aucune