有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
说明:
当前旧版本数据订阅功能已停止售卖,如果用户需要新建订阅任务,请使用 Kafka 版数据订阅功能,参考 数据订阅(Kafka 版)
本文将以一个简单案例来说明数据订阅中拉取对应表到本地文件的功能,并且提供简易 LocalDemo 下载 。以下操作将在 CentOS 操作系统中完成。

配置环境

Java 环境配置
yum install java-1.8.0-openjdk-devel

获取密钥

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

选择数据订阅

1. 登录 DTS 控制台,选择左侧的数据订阅,进入数据订阅页面。
2. 选择需同步的 TencentDB 实例名,然后单击启动,再返回数据订阅,单击您所创建的数据订阅。详细介绍请参考 如何获取数据订阅
3. 查看对应的 DTS 通道、IP 和 port,然后结合之前的密钥填写到对应 LocalDemo.java 里面。
// 从云API获取密钥,填写到此处
context.setSecretId("AKIDfdsfdxxxxxx1sdfds"); 请填写您从云 API 获取的 secretID
context.setSecretKey("test111usdxxxxxxfRkeT"); 请填写您从云 API 获取的 secretKey
// 在数据迁移服务里面通过数据订阅获取到对应的ip,port,填写到此处
context.setServiceIp("10.xx.xx.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. 使用 javac 命令进行编译。
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