概述

DataHub数据同步功能

DataHub提供数据Sink/Source功能,即数据同步功能,DataHub支持将对应Topic中的数据实时/准实时的同步到第三方阿里云产品中,打通阿里云产品间的数据流通。目前支持MaxCompute(原ODPS)、分析型数据库MySQL(ADS)、云数据库RDS、表格存储TableStore、对象存储OSS、ElasticSearch以及函数计算服务等。用户只需向DataHub服务中写入一次数据,并且在DataHub服务中配置数据同步功能,便可以在所支持的各个云产品中使用该数据,提供完整的数据闭环。

DataHub支持云产品

注意

  • 使用Maxcomputebatch数据量达到64M或者5min同步一次

  • 使用TableStore/OSS/ElasticSearch/函数计算/Hologresbatch数据量达到4M或 者20s会同步一次

  • 同步MySQL/RDS/ADS3.0 当batch数据量达到512kb或者20s会进行一次同步

目标服务

支持Topic类型

时效性

是否支持VPC

MaxCompute

TUPLE / BLOB

准实时,5分钟时延

分析型数据库MySQL

TUPLE

实时

云数据库RDS

TUPLE

实时

表格存储TableStore

TUPLE

实时

对象存储OSS

TUPLE / BLOB

实时

ElasticSearch

TUPLE

实时

函数计算

TUPLE / BLOB

实时

Hologres

TUPLE

实时

使用说明

  1. 用户使用数据同步时尽可能的进行同一Region的云产品之间的数据同步,一方面避免跨Region网络不通问题,另一方面也减少不同Region之间数据同步的网络时延。

  2. 由于阿里云的网络隔离原因,用户配置目标服务的Endpoint时请使用对应服务的内网地址(经典网络),不支持使用公网地址同步。

  3. DataHub数据同步仅支持at least once语义,在网络服务异常等小概率场景下可能会导致目标端的数据产生少量重复,用户使用时请注意进行去重处理。

  4. 用户在创建数据同步时,DataHub会自动为该同步任务绑定SubscriptionId用于记录从DataHub读取数据的读取点位(非同步点位),该SubscriptionId请用户不要操作。

  5. 目前只有DataHub topicOwner/Creator账号才具备创建connector(数据同步)的权限。

IP白名单

重要

IP白名单会发生变动,非固定IP。 如按照文档添加IP白名单后仍有以下报错 'xxx' is not in white list , 请提交工单获取最新IP白名单。

Region

经典网白名单

VPC白名单

华东1(杭州)

10.130.203.0/24

10.130.208.0/24

10.130.210.0/24

10.130.213.0/24

10.186.213.0/24

10.32.103.0/24

10.32.104.0/24

10.32.177.0/24

10.32.94.0/24

10.32.95.0/24

10.32.96.0/24

10.32.97.0/24

10.32.98.0/24

10.32.99.0/24

10.5.35.0/24

11.115.89.0/24

11.194.216.0/24

11.194.217.0/24

11.194.247.0/24

11.194.248.0/24

11.197.14.0/24

11.223.199.0/24

100.104.191.0/24

华东2(上海)

11.199.218.0/24

11.199.219.0/24

26.76.154.0/24

26.76.155.0/24

100.104.136.0/24

华北2(北京)

11.204.155.0/24

11.204.158.0/24

11.204.161.0/24

11.204.162.0/24

11.218.245.0/24

11.220.203.0/24

11.220.204.0/24

11.220.216.0/24

11.220.217.0/24

11.220.237.0/24

11.220.238.0/24

11.220.240.0/24

11.220.242.0/24

11.223.107.0/24

100.104.33.0/24

华南1(深圳)

10.58.213.0/24

10.58.219.0/24

11.114.243.0/24

26.41.109.0/24

26.41.119.0/24

26.74.38.0/24

100.104.55.0/24

亚太东南1(新加坡)

11.112.208.0/24

11.195.209.0/24

11.197.63.0/24

26.53.11.0/24

26.59.42.0/24

26.77.111.0/24

26.79.102.0/24

26.79.92.0/24

100.104.163.0/24

政务云(北京)

11.199.246.0/24

11.199.247.0/24

100.104.254.0/24

华北 3(张家口)

10.2.165.0/24

10.93.87.0/24

11.113.55.0/24

11.114.126.0/24

11.196.52.0/24

11.196.53.0/24

11.207.155.0/24

11.57.215.0/24

100.104.195.0/24

亚太东南 3(吉隆坡-马来西亚)

11.204.39.0/24

11.204.40.0/24

11.204.41.0/24

11.48.249.0/24

11.48.250.0/24

100.104.13.0/24

中国香港

11.119.176.0/24

26.49.143.0/24

26.49.144.0/24

26.53.105.0/24

26.53.112.0/24

26.55.135.0/24

26.73.76.0/24

100.104.166.0/24

上海金融云

10.0.4.0/24

10.0.5.0/24

10.130.163.0/24

11.197.111.0/24

11.197.120.0/24

100.104.220.0/24

欧洲中部1(法兰克福)

10.250.235.0/24

10.254.223.0/24

10.254.224.0/24

10.71.0.0/24

11.195.132.0/24

26.78.19.0/24

100.104.100.0/24

亚太东南3(吉隆坡)

11.194.226.0/24

11.194.44.0/24

11.195.105.0/24

11.48.249.0/24

100.104.13.0/24

美国硅谷

11.199.218.0/24

11.199.219.0/24

26.76.154.0/24

26.76.155.0/24

100.104.235.0/24

服务白名单

目前MaxCompute支持配置project级别的ip白名单,如果设置ip白名单之后DataHub将无法正常同步MaxCompute。为了解决该问题,MaxCompute添加了服务白名单,可以将DataHub的服务名称添加到MaxCompute的服务白名单中,此时DataHub便可以正常将数据同步至MaxCompute。

DataHub的服务名称当前定义为DataHub,可以通过SDK或者odpscmd进行设置。

SDK设置方式参考以下示例:

public static void setServiceName() throws OdpsException {
    String endpoint = "";
    String project = "";
    String accessId = "";
    String accessKey = "";

    Account account = new AliyunAccount(accessId, accessKey);
    Odps odps = new Odps(account);
    odps.setEndpoint(endpoint);
    odps.setDefaultProject(project);

    Map<String, String> prop = new HashMap<>();
    //将DataHub的服务名称添加到MaxCompute的服务白名单,如果添加多个需要以逗号隔开,每次设置会覆盖之前的设置
    prop.put("odps.security.ip.whitelist.services", "DataHub");
    Group group = new Groups(odps).get("groupName");
    group.updateProject(project, null, null, prop);

    //检查当前MaxCompute服务白名单是否服务预期
    prop = odps.projects().get(project).getAllProperties();
    System.out.println("current service list: " + prop.get("odps.security.ip.whitelist.services"));
}

odpscmd设置参考以下示例:

启动odpscmd之后,输入以下命令 进行设置。

setproject odps.security.ip.whitelist.services=DataHub;

设置完成之后,可以通过以下是否设置成功

setproject;
## 结果有 odps.security.ip.whitelist.services=DataHub配置项则说明设置成功