RDS提供無感Data Integration(Zero-ETL)功能,將資料同步至資料倉儲(AnalyticDB MySQL、AnalyticDB PostgreSQL或ClickHouse),無需搭建或維護同步鏈路,且同步鏈路不收費,減少資料轉送和營運成本。
支援地區
華北2(北京)、華東1(杭州)、華東2(上海)和華南1(深圳)
後續將支援更多地區,具體以RDS控制台為準。
方案概述
在巨量資料時代,企業資料分散在不同系統和平台中,如何高效管理和利用這些資料成為關鍵挑戰。傳統上,企業依賴ETL工具(提取、轉換、載入)將分散的資料整合到資料倉儲,以支援業務決策。然而,傳統的ETL流程通常面臨以下問題:
系統複雜度增加:使用者需要自我維護ETL工具,增加了營運難度,難以專註於核心業務開發。
資源成本增加:不同的資料來源可能需要不同的ETL工具,搭建ETL鏈路會產生額外的資源成本。
資料即時性降低:部分ETL流程涉及周期性的批次更新,在近即時情境下無法快速產生分析結果。
為瞭解決這些問題,阿里雲Business Foundation System資料庫提供了無感Data Integration(Zero-ETL)功能,能夠快速構建OLTP(線上交易處理)與OLAP(線上分析處理)之間的資料同步鏈路。通過自動化的資料擷取、轉換和下載,Zero-ETL實現了交易處理與資料分析的一體化,協助企業專註於資料分析業務,提升效率。
功能優勢
簡單易用:使用者無需建立和維護複雜的ETL資料管道,只需選擇源端資料和目標端執行個體,即可自動構建即時資料同步鏈路。大幅降低資料管道的構建和管理難度,讓使用者專註於上層應用開發。
零成本:Zero-ETL鏈路不額外收費,可免費實現對上遊資料的即時分析,協助企業節省資源成本。
多源匯聚:支援將多個執行個體中的資料即時同步至一個目標資料倉儲(如 AnalyticDB MySQL、AnalyticDB PostgreSQL或ClickHouse),構建全域分析視角。
說明多個執行個體中的資料即時同步至一個ClickHouse執行個體,僅支援不同任務的同步對象不重疊。
支援鏈路
RDS MySQL->ClickHouse
RDS MySQL->AnalyticDB MySQL 3.0
RDS MySQL->AnalyticDB PostgreSQL
費用說明
無感Data Integration(Zero-ETL)同步鏈路免費。
前提條件
準備工作
建立服務關聯角色並授予RAM使用者對應的系統管理權限。
RDS MySQL->ClickHouse
建立服務關聯角色AliyunServiceRoleForClickHouseZeroETL。
說明在建立鏈路時,系統會自動建立該角色,無需手動建立。
授予RAM使用者系統管理權限。
RAM使用者必須具備以下三種許可權,才可以成功建立Zero鏈路。具體操作,請參見建立自訂權限原則。
源端RDS MySQL許可權:AliyunRDSFullAccess。
目標端ClickHouse許可權:ClickHouse的自訂策略指令碼如下。
{ "Version": "1", "Statement": [ { "Action": "clickhouse:*", "Resource": "*", "Effect": "Allow" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "clickhouse.aliyuncs.com" } } } ] }DTS的許可權:DTS的自訂策略指令碼如下。
{ "Version": "1", "Statement": [ { "Action": "dts:*", "Resource": "*", "Effect": "Allow" }, { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "dts.aliyuncs.com" } } } ] }
RDS MySQL->AnalyticDB MySQL 3.0
建立服務關聯角色AliyunServiceRoleForAnalyticDBForMySQL。
前往RAM控制台並選擇左側導覽列的角色列表。檢查角色列表中,是否已存在名為AliyunServiceRoleForAnalyticDBForMySQL的服務關聯角色。若不存在,則需建立相關角色。
單擊左上方建立角色。
在彈出的建立角色對話方塊中,選擇阿里雲服務,並單擊下一步。
選擇角色類型為服務關聯角色,並選擇AnalyticDB MySQL。
單擊完成,返回角色列表,確保已成功建立服務關聯角色。
授予RAM使用者系統管理權限。
RAM使用者支援為所有或指定RDS MySQL執行個體和AnalyticDB MySQL叢集授權。具體操作,請參見建立自訂權限原則。
自訂權限原則的指令碼如下:
為所有RDS MySQL和AnalyticDB MySQL叢集授權
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:adb:*:*:*", "acs:rds:*:*:*" ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig", "dts:DescribeConciseJobStatics", "dts:ListUserAuthorizationLogs", "dts:CreateUserAuthorization" ], "Resource": [ "acs:dts:*:*:*" ] } ] }為指定RDS MySQL和AnalyticDB MySQL叢集授權
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****", 替換為需要同步的AnalyticDB MySQL叢集ID "acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****" 替換為需要同步的RDS MySQL執行個體ID ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig", "dts:DescribeConciseJobStatics", "dts:ListUserAuthorizationLogs", "dts:CreateUserAuthorization" ], "Resource": "acs:dts:*:*:*" } ] }
RDS MySQL->AnalyticDB PostgreSQL
建立服務關聯角色AliyunServiceRoleForADBPG。
前往RAM控制台並選擇左側導覽列的角色列表。檢查角色列表中,是否已存在名為AliyunServiceRoleForADBPG的服務關聯角色。若不存在,則需建立相關角色。
單擊左上方建立角色。
在彈出的建立角色對話方塊中,選擇阿里雲服務,並單擊下一步。
選擇角色類型為服務關聯角色,並選擇AnalyticDB PostgreSQL。
單擊完成,返回角色列表,確保已成功建立服務關聯角色。
授予RAM使用者系統管理權限。
RAM使用者支援為所有或指定RDS MySQL執行個體和AnalyticDB PostgreSQL執行個體授權。具體操作,請參見建立自訂權限原則。
自訂權限原則的指令碼如下:
為所有RDS MySQL和AnalyticDB PostgreSQL執行個體授權
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:gpdb:*:*:*", "acs:rds:*:*:*" ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig" ], "Resource": [ "acs:gpdb:*:*:*" ] } ] }為指定RDS MySQL和AnalyticDB PostgreSQL執行個體授權
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:gpdb:*:*:dbinstanc/gp-bp1a740l3zx4****", 替換為需要同步的AnalyticDB PostgreSQL執行個體ID "acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****" 替換為需要同步的RDS MySQL執行個體ID ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig" ], "Resource": "acs:dts:*:*:*" } ] }
操作步驟
登入RDS管理主控台,單擊左側導覽列Data Integration。
在無感Data Integration (Zero-ETL)頁簽,單擊建立Zero-ETL任務。
在建立Zero-ETL任務頁面配置源庫資訊和目標庫資訊。
配置源庫資訊:
源庫資訊
說明
任務名稱
Zero-ETL任務名稱。
資料庫類型
選擇RDS MySQL
接入方式
僅支援雲執行個體接入。
執行個體地區
選擇源執行個體所屬地區。
執行個體ID
RDS MySQL執行個體ID。
資料庫名稱
RDS MySQL執行個體資料庫名稱。
資料庫帳號
RDS MySQL執行個體的資料庫帳號。
資料庫密碼
RDS MySQL資料庫帳號的密碼。
串連方式
串連RDS MySQL執行個體的方式。包括非加密連結和SSL安全連結。
說明如果設定為SSL安全連線,您需要提前使用雲端認證快速開啟SSL鏈路加密。
配置目標庫資訊:
目標庫資訊
說明
資料庫類型
當前目標庫支援AnalyticDB MySQL 3.0、AnalyticDB PostgreSQL和ClickHouse。
接入方式
僅支援雲執行個體接入。
執行個體地區
目標庫所屬的地區。
執行個體ID
目標庫的執行個體ID。
資料庫帳號
目標庫執行個體的資料庫帳號。
資料庫密碼
目標庫執行個體的資料庫帳號的密碼。
上述參數配置完成後,單擊測試連接以進行下一步,進入配置Zero-ETL頁面,配置如下參數:
設定項目
說明
同步類型
實現資料來源之間的資料即時同步。
同步類型分為:庫表結構同步、全量同步、增量同步處理。
說明同步任務固定勾選增量資料同步,將源庫產生的增量資料即時同步至目標庫。
不需要增量同步處理時,請使用資料移轉。
執行個體層級選擇所需同步的DDL和DML
勾選所需同步的DML操作(insert、update和delete)和DDL操作(create、alter、drop、rename和truncate),預設全部勾選。
源庫對象和已選擇對象
資料庫中源庫對象和同步對象。
進階配置(選填)
設定源庫、目標庫無法串連後的重試時間和源庫、目標庫出現其他問題後的重試時間。
上述參數配置完成後,單擊配置庫表欄位,配置資訊如下:
庫表欄位配置
說明
資料庫名稱
選擇已有的資料庫。
表名稱
選擇已有的資料表。
主鍵列
已選資料表中的主鍵所在欄位。
分布鍵
已選資料表中的分布鍵所在欄位。
類型
資料表類型,包括分區表和複製表。
定義狀態
定義完庫表欄位配置狀態後,即從未定義變為已定義。
配置完上述所有參數後,單擊下一步儲存任務並預檢查。
預檢查通過,單擊啟動,啟動Zero-ETL任務。
您可以在免費資料同步頁面,查看目標Zero-ETL任務的名稱、源/目標、運行狀態等資訊。