DataHub資料同步功能
DataHub提供資料Sink/Source功能,即資料同步功能,DataHub支援將對應Topic中的資料即時/准即時的同步到第三方阿里雲產品中,打通阿里雲產品間的資料流通。目前支援MaxCompute(原ODPS)、AnalyticDBMySQL(ADS)、雲資料庫RDS、Table Store、Object Storage Service、Elasticsearch以及Function Compute服務等。使用者只需向DataHub服務中寫入一次資料,並且在DataHub服務中配置資料同步功能,便可以在所支援的各個雲產品中使用該資料,提供完整的資料閉環。
DataHub支援雲產品
注意:
使用Maxcompute當batch資料量達到64M或者5min同步一次
使用TableStore/OSS/Elasticsearch/Function Compute/Hologres當batch資料量達到4M或 者20s會同步一次
同步MySQL/RDS/ADS3.0 當batch資料量達到512kb或者20s會進行一次同步
目標服務 | 支援Topic類型 | 時效性 | 是否支援VPC |
MaxCompute | TUPLE / BLOB | 准即時,5分鐘時延 | 否 |
AnalyticDBMySQL | TUPLE | 即時 | 否 |
雲資料庫RDS | TUPLE | 即時 | 是 |
Table Store | TUPLE | 即時 | 否 |
Object Storage Service | TUPLE / BLOB | 即時 | 否 |
Elasticsearch | TUPLE | 即時 | 是 |
Function Compute | TUPLE / BLOB | 即時 | 否 |
Hologres | TUPLE | 即時 | 否 |
使用說明
使用者使用資料同步時儘可能的進行同一Region的雲產品之間的資料同步,一方面避免跨Region網路不通問題,另一方面也減少不同Region之間資料同步的網路時延。
由於阿里雲的網路隔離原因,使用者配置目標服務的Endpoint時請使用對應服務的內網地址(傳統網路),不支援使用公網地址同步。
DataHub資料同步僅支援at least once語義,在網路服務異常等小機率情境下可能會導致目標端的資料產生少量重複,使用者使用時請注意進行去重處理。
使用者在建立資料同步時,DataHub會自動為該同步任務綁定SubscriptionId用於記錄從DataHub讀取資料的讀取點位(非同步點位),該SubscriptionId請使用者不要操作。
目前只有DataHub topic的Owner/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配置項則說明設定成功