数据订阅库表到本地

最近更新时间:2019-08-05 10:00:50

本文将以一个简单案例来说明数据订阅中拉取对应表到本地文件的功能,并且提供简易 LocalDemo 下载 。以下操作将在 Centos 操作系统中完成。

配置环境

获取密钥

登录 访问管理控制台 获取密钥。

选择数据订阅

  1. 登录 DTS 控制台,选择左侧的【数据订阅】,进入数据订阅页面。

  2. 选择需同步的 TencentDB 实例名,然后单击启动,再返回数据订阅,单击您所创建的数据订阅。详细介绍请参考 如何获取数据订阅

  3. 查看对应的 DTS 通道、IP 和 port,然后结合之前的密钥填写到对应 LocalDemo.java 里面。

    // 从云API获取密钥,填写到此处
         context.setSecretId("AKIDfdsfdsfsdt1331431sdfds"); 请填写您从云API获取的secretID
         context.setSecretKey("test111usdfsdfsddsfRkeT"); 请填写
         您从云API获取的secretKey
     // 在数据迁移服务里面通过数据订阅获取到对应的ip,port,填写到此处
         context.setServiceIp("10.66.112.181"); 请填写您从数据订阅配置获取到的IP
         context.setServicePort(7507);
         请填写您从数据订阅配置获取到的PORT
         final DefaultSubscribeClient client = new DefaultSubscribeClient(context);
     // 填写对应要同步的数据库和表名,并修改对应要落地存储的文件名.
         final String targetDatabase = "test"; 填写您所要订阅的库名
         final String targetTable = "alantest"; 填写您所要订阅的表名
    
         final String fileName = "test.alan.txt"; 填写您希望落在本地的文件名
    
           client.addClusterListener(listener);
     // 通过数据迁移订阅的配置选项获取到dts-channel的配置信息,填写到此处
     client.askForGUID("dts-channel-e4FQxtYV3It4test"); 请填写您从数据订阅获取的通道dts的名称
         client.start();

编译操作和检验

  1. [root@VM_71_10_centos ~]# javac -classpath binlogsdk-2.6.0-release.jar -encoding UTF-8 LocalDemo.java
  2. 然后执行启动,如果没有异常报错就是正常在服务了,然后查看对应之前设置的落地文件。
    java -XX:-UseGCOverheadLimit -Xms2g -Xmx2g -classpath .:binlogsdk-2.6.0-release.jar LocalDemo
  3. 查看对应之前我们设置的 test.alan.txt 能看到已经有数据拉取到了本地。
    [root@VM_71_10_centos ~]# cat test.alan.txt  
    checkpoint:144251@3@357589@317713
    record_id:000001000000000004D9110000000000000001
    record_encoding:utf8
    fields_enc:latin1,utf8
    gtid:4f21864b-3bed-11e8-a44c-5cb901896188:1562
    source_category:full_recorded
    source_type:mysql
    table_name:alantest
    record_type:INSERT
    db:test
    timestamp:1523356039
    primary:
    Field name: id
    Field type: 3
    Field length: 2
    Field value: 26
    Field name: name
    Field type: 253
    Field length: 4
    Field value: alan