准备工作
1.准备ADS实例和表结构使用ADS管控台新建ADS集群DataHub同步时,会根据DataHub Field的数据类型同步到对应的ADS数据类型中,对应的类型映射关系如下所示:
DataHub | MySQL |
TINYINT | TINYINT |
SMALLINT | SMALLINT |
INTEGER | INT |
BIGINT | BIGINT |
STRING | VARCHAR |
BOOLEAN | BOOLEAN / TINYINT |
FLOAT | FLOAT |
DOUBLE | DOUBLE |
TIMESTAMP | TIMESTAMP / BIGINT |
DECIMAL | DECIMAL |
DataHub 中的 TINYINT , SMALLINT , INTEGER , FLOAT 类型从 java sdk 2.16.1-public 开始支持。2.同步说明1)目前DataHub仅支持将TUPLE数据同步到ADS服务中2)ReplaceInto与IgnoreInto: ReplaceInto模式下,会使用replace into语句将数据插入,反之,IgnoreInto会使用insert方式插入数据库(replace into将根据主键覆盖记录,ignore into将忽略冲突进行写入)3)数据同步的时效性正常情况为秒级,即数据写入DataHub中后若干秒内将会同步到ADS,网络异常的情况可能造成重复数据Update,但是保证数据At least once语义。4)ADS的写入性能直接影响同步的性能,若ADS实例性能过低,可能导致DataHub同步较慢,数据堆积,严重情况可能因为同步延迟超过生命周期从而丢失数据。
创建同步任务
依次进入
项目列表/Project详情/Topic详情页面点击右上角的
+ 同步按钮进行同步任务创建
在新建Connector对话框中,配置以下参数:
参数 | 说明 |
Host | ADS Host 地址,请务必填写内网地址以确保网络联通性 |
Port | 默认为 |
Database | ADS Database 名称 |
Table | ADS Table 名称 |
User | 访问 ADS 的用户名 |
Password | 访问 ADS 的用户密码 |
写入模式 | 选择 |
导入字段 | 选择需要同步的字段 |
起始时间 | 选择数据同步的起始时间 |
配置完成后单击创建。
下面罗列了部分管控台创建同步任务的配置说明,更多更灵活的操作请参考SDK使用。
HostADS服务地址,请务必填写
内网地址以确保服务联通性导入字段DataHub可以根据用户设置将部分column内容同步到ADS中
写入模式包括IGNORE和OVERWRITE两种模式
IGNORE: 忽略重复数据,即
INSERT IGNORE INTO写入OVERWRITE: 更新重复数据,即
REPLACE INTO写入
同步示例
创建ADS实例和表结构在ADS管控台中创建ADS实例和数据表
建立DataHub Topic在DataHub中建立Topic,示例中为TUPLE类型topic,schema如下所示:
Topic 的 Schema 定义包含 3 个字段:
字段名 | 类型 | 是否允许为空 |
| STRING | 否 |
| BIGINT | 否 |
| DOUBLE | 否 |
3 建立同步任务这里写入模式选择IGNORE,导入所有字段
4 向DataHub中写入TUPLE数据,数据内容如下所示,共 4 条数据
Sequence | field1 | field2 | field3 |
47502 | f_1 | 1 | 1 |
47503 | f_2 | 2 | 2 |
47504 | f_1 | 1 | 1 |
47505 | f_2 | 2 | 2 |
5 . 确认同步数据客户端连接ADS服务查看数据,数据结果如下所示:
mysql> select * from wurao_tuple_test_001;
+--------+--------+--------+
| field1 | field2 | field3 |
+--------+--------+--------+
| f_1 | 1 | 1.00 |
| f_2 | 2 | 2.00 |
| f_1 | 1 | 1.00 |
| f_2 | 2 | 2.00 |
+--------+--------+--------+
4 rows in set (0.00 sec)
mysql>同步ADS3.0
同步ADS3.0请参考:创建同步RDS/MySQL/ADS3.0