Tous les produits
Search
Centre de documentation

Data Transmission Service:Consommer les données de suivi à l'aide de flink-dts-connector

Dernière mise à jour :Aug 10, 2026

Utilisez le connecteur flink-dts-connector pour créer un programme Flink qui consomme les données de suivi depuis une instance de suivi des modifications Data Transmission Service (DTS).

Remarques sur l'utilisation

  • Le connecteur prend en charge les programmes Flink utilisant l'API DataStream, ainsi que l'API Table et SQL.

  • Si votre programme Flink utilise l'API Table et SQL, vous ne pouvez le configurer que pour consommer les données d'une seule table à la fois. Pour consommer les données de plusieurs tables, vous devez configurer et exécuter une tâche distincte pour chaque table.

Procédure

L'exemple suivant utilise IntelliJ IDEA Community Edition 2020.1 pour Windows afin d'illustrer la consommation de données de suivi avec le connecteur flink-dts-connector.

  1. Créez une instance de suivi des modifications. Pour plus d'informations, consultez Créer une instance de suivi des modifications pour une instance ApsaraDB RDS for MySQL, Créer une instance de suivi des modifications pour un cluster PolarDB for MySQL, ou Créer une instance de suivi des modifications pour une instance ApsaraDB for Oracle.

  2. Créez un ou plusieurs groupes de consommateurs. Pour plus d'informations, consultez Créer un groupe de consommateurs.

  3. Téléchargez le fichier flink-dts-connector et décompressez-le.

  4. Démarrez IntelliJ IDEA et cliquez sur Open or Import.

  5. Dans la boîte de dialogue qui s'affiche, accédez au répertoire dans lequel vous avez décompressé le fichier flink-dts-connector. Développez les dossiers pour trouver le fichier Project Object Model (POM) : pom.xml.

  6. Dans la boîte de dialogue qui s'affiche, sélectionnez Open as Project.

  7. Ajoutez la dépendance suivante au fichier pom.xml :

    <dependency>
          <groupId>com.alibaba.flink</groupId>
          <artifactId>flink-dts-connector</artifactId>
          <version>1.1.1-SNAPSHOT</version>
          <classifier>jar-with-dependencies</classifier>
    </dependency>
  8. Dans IntelliJ IDEA, développez les dossiers du projet et sélectionnez le fichier Java approprié en fonction du type d'API Flink utilisé par votre programme.

    • Si votre programme Flink utilise l'API DataStream, double-cliquez sur le fichier flink-dts-connector-master\src\test\java\com\alibaba\flink\connectors\dts\datastream\DtsExample.java et effectuez les étapes suivantes :

      1. Dans la barre de menus supérieure, choisissez Run > Run....

      2. Dans la fenêtre contextuelle, cliquez sur Edit > DtsExample.

      3. Dans le champ Program arguments, saisissez les paramètres et leurs valeurs comme indiqué dans l'exemple suivant. Cliquez ensuite sur Run pour démarrer le connecteur flink-dts-connector.

        Remarque

        Pour plus de détails sur les paramètres et la manière de trouver leurs valeurs, consultez la section Paramètres.

        --broker-url dts-cn-******.******.***:****** --topic cn_hangzhou_rm_**********_dtstest_version2 --sid dts****** --user dtstest --password Test123456 --checkpoint 1624440043
      4. La sortie indique que le programme suit avec succès les modifications de données de la base de données source. Après le démarrage, les enregistrements de modification de données dans le DataStream ressemblent à l'exemple suivant.

        LazyParseRecord {operationType [HEARTBEAT], checkpoint [0@12006303@289540@2688@1625045211000]}
        LazyParseRecord {operationType [HEARTBEAT], checkpoint [0@12006307@290047@2688@1625045212000]}
        LazyParseRecord {operationType [UPDATE], checkpoint [0@12006305@290016@2688@1625045212000]}
        LazyParseRecord {operationType [HEARTBEAT], checkpoint [0@12006308@290047@2688@1625045214000]}
        LazyParseRecord {operationType [HEARTBEAT], checkpoint [0@12006309@290047@2688@1625045215000]}
        LazyParseRecord {operationType [HEARTBEAT], checkpoint [0@12006310@290047@2688@1625045216000]}
        LazyParseRecord {operationType [HEARTBEAT], checkpoint [0@12006311@290047@2688@1625045217000]}
        Remarque

        Pour afficher les détails des enregistrements de modification de données, connectez-vous à l'interface utilisateur Task Manager de votre programme Flink.

    • Si votre programme Flink utilise l'API Table et SQL, double-cliquez sur le fichier flink-dts-connector-master\src\test\java\com\alibaba\flink\connectors\dts\sql\DtsTableISelectTCaseTest.java et effectuez les étapes suivantes :

      Remarque

      Un seul fichier DtsTableISelectTCaseTest.java permet de configurer et de consommer les données de suivi d'une seule table. Pour consommer les données de plusieurs tables, vous devez configurer et exécuter une tâche distincte pour chaque table.

      1. Mettez en commentaire la ligne properties.load en ajoutant le préfixe //.

        /*Loads the parameter values that you set on the platform page into the Properties object.*/
        //properties.load(new StringReader(new String(Files.readAllBytes(Paths.get(configFilePath)), StandardCharsets.UTF_8)));
      2. Définissez la table unique à partir de laquelle vous souhaitez consommer les données.

      3. Définissez les paramètres de l'instance de suivi des modifications. Pour plus de détails sur les paramètres et la manière de trouver leurs valeurs, consultez la section Paramètres.

        public static void main(String[] args) throws Exception {
            setup(args);
            final String createTable =
                    "create table `dts` (\n"
                    + " `ts` TIMESTAMP(3) METADATA FROM 'timestamp',\n"
                    + " `id` bigint,\n"
                    + " `name` varchar,\n"
                    + " `age` bigint,\n"
                    + " WATERMARK FOR ts AS ts - INTERVAL '5' SECOND"
                    + ") with (\n"
                    + "'connector' = 'dts',"
                    + "'dts.server' = 'dts-cn-xxx:18001',"
                    + "'topic' = 'cn_hangzhou_rm_xxx_dtstest_version2',"
                    + "'dts.sid' = 'dtsxxx', "
                    + "'dts.user' = 'dtstest', "
                    + "'dts.password' = 'xxx',"
                    + "'dts.checkpoint' = '1624440043', "
                    + "'dts-cdc.table.name' = 'dtstestdata.order',"
                    + "'format' = 'dts-cdc')";
        }
      4. En haut de l'interface IntelliJ IDEA, cliquez sur Run'DtsTableISelectTCaseTest' pour démarrer le connecteur flink-dts-connector.

      5. La sortie indique que le programme suit avec succès les modifications de données de la base de données source. Après le démarrage, le terminal affiche les journaux de modifications (changelog). Les événements de mise à jour apparaissent par paires : la valeur avant la mise à jour (-U) et la valeur après la mise à jour (+U).

        ######> (false,-U(2021-06-23T20:32:17.391,null,null,null))
        ######> (true,+U(2021-06-23T20:32:17.391,null,null,null))
        ######> (false,-U(2021-06-23T20:32:45.604,null,null,null))
        ######> (true,+U(2021-06-23T20:32:45.604,null,null,null))
        ######> (false,-U(2021-06-30T17:26:52.201,null,null,null))
        ######> (true,+U(2021-06-30T17:26:52.201,null,null,null))
        ######> (false,-U(2021-06-30T19:19:26.975,null,null,null))
        ######> (true,+U(2021-06-30T19:19:26.975,null,null,null))
        Remarque

        Pour afficher les détails des enregistrements de modification de données, connectez-vous à l'interface utilisateur Task Manager de votre programme Flink.

Paramètres

Paramètre DataStream API

Paramètre Table API

Description

Comment l'obtenir

broker-url

dts.server

L'endpoint et le port de l'instance de suivi des modifications.

Remarque
  • Pour minimiser la latence réseau, utilisez l'endpoint interne si l'instance ECS de votre programme Flink et l'instance de suivi des modifications se trouvent dans le même VPC ou le même réseau classique.

  • Nous vous déconseillons d'utiliser un endpoint public en raison d'une instabilité potentielle du réseau.

Dans la console DTS, cliquez sur l'ID de l'instance de suivi des modifications cible. Sur la page View Task Settings, vous trouverez le Topic, l'endpoint et le port.

topic

topic

Le sujet de suivi de l'instance de suivi des modifications.

sid

dts.sid

L'ID du groupe de consommateurs.

Dans la console DTS, cliquez sur l'ID de l'instance de suivi des modifications cible, puis cliquez sur Consume Data. Vous trouverez l'ID et le Account du groupe de consommateurs.

Remarque

Le mot de passe du nom d'utilisateur du groupe de consommateurs est celui que vous avez spécifié lors de la création du groupe de consommateurs.

user

dts.user

Le nom d'utilisateur du groupe de consommateurs.

Avertissement

Le connecteur flink-dts-connector fourni dans cette rubrique gère automatiquement le formatage requis du nom d'utilisateur. Si vous utilisez un client différent, vous devez formater manuellement le nom d'utilisateur sous la forme <username>-<consumer group ID> (par exemple, dtstest-dtsaebpv) pour éviter les échecs de connexion.

password

dts.password

Le mot de passe du nom d'utilisateur.

checkpoint

dts.checkpoint

L'horodatage Unix à partir duquel le connecteur flink-dts-connector commence à consommer les données, par exemple 1624440043.

Remarque

Le décalage du consommateur (consumer offset) est utile dans les scénarios suivants :

  • Si le programme consommateur est interrompu, utilisez le dernier décalage traité pour reprendre la consommation et éviter toute perte de données.

  • Lors du démarrage du programme consommateur, fournissez un décalage spécifique pour commencer à consommer les données à partir d'un point temporel souhaité.

Le décalage du consommateur doit se situer dans la plage de données de l'instance de suivi des modifications. Sur la page View Task Settings de l'instance de suivi des modifications DTS, vous pouvez trouver les heures de début et de fin dans le champ Data Range. Vous devez définir le décalage du consommateur sur une heure comprise dans cette plage et la convertir en horodatage Unix.

Remarque

Utilisez un moteur de recherche en ligne pour trouver un convertisseur d'horodatage Unix.

S/O

dts-cdc.table.name

La table dont il faut suivre les modifications. Une seule table est prise en charge par tâche. Utilisez le format suivant :

  • Pour les bases de données MySQL, PolarDB for MySQL, PolarDB-X 1.0 et PolarDB-X 2.0, utilisez le format <Database name>.<Table name>.

  • Pour les autres types de bases de données, utilisez le format <Schema name>.<Table name>.

Dans la console DTS, cliquez sur l'ID de l'instance de suivi des modifications cible. Sur la page View Task Settings, cliquez sur View Objects en haut à droite pour trouver les noms de base de données et de table des objets.

FAQ

Message d'erreur

Cause possible

Solution

Cluster changed from *** to ***, consumer require restart.

Le module DStore, utilisé par DTS pour lire les données incrémentielles, a basculé. Cela entraîne la perte du décalage du consommateur du programme Flink.

Ne redémarrez pas le programme. Trouvez plutôt le dernier décalage du consommateur connu et transmettez-le en tant que paramètre checkpoint ou dts.checkpoint dans votre fichier DtsExample.java ou DtsTableISelectTCaseTest.java pour reprendre la consommation.