通過無感集成(Zero-ETL)同步數據
云原生數據倉庫 AnalyticDB MySQL 版提供無感集成(Zero-ETL)功能,支持創建RDS for MySQL至AnalyticDB for MySQL的數據同步鏈路,幫助您一站式完成數據同步和管理,實現事務處理和數據分析一體化。
方案概述
在大數據時代,企業面臨著大量分散在不同的系統和平臺上的業務數據,為了有效地管理和利用這些數據,企業往往需要依賴于ETL工具對數據進行集中式管理。
ETL是將上層業務系統的數據經過提?。‥xtract)、轉換清洗(Transform)、加載(Load)到數據倉庫的處理過程,目的是將上游分散的數據整合到目標端數倉,通過在數倉中做進一步的計算分析,來為業務做有效的商業決策。
傳統的ETL流程通常會面臨以下挑戰:
資源成本增加:不同的數據源可能需要不同的ETL工具,搭建ETL鏈路會產生額外的資源成本。
系統復雜度增加:用戶需要自行維護ETL工具,增加了運維難度,無法專注于業務應用的開發。
數據實時性降低:部分ETL流程涉及周期性的批量更新,在近實時的應用場景中,無法快速產出分析結果。
為了解決這些問題,阿里云瑤池數據庫提供了無感集成(Zero-ETL)功能,可以快速構建業務系統(OLTP)和數據倉庫(OLAP)之間的數據同步鏈路,將業務系統(OLTP)的數據自動進行提取、轉換清洗和加載到數據倉庫(OLAP),從而一站式完成數據同步和管理,實現事務處理和數據分析一體化,幫助客戶專注于數據分析業務。
方案優勢
簡單易用:用戶無需創建和維護執行ETL(提取、轉換、加載操作)的復雜數據管道,僅需選擇源端數據和目標端實例,自動創建實時數據同步鏈路,減少構建和管理數據管道所帶來的挑戰,專注于上層應用開發。
零成本:Zero-ETL鏈路不額外收費,可免費實現在AnalyticDB for MySQL中對上游數據進行分析。
多源匯聚:通過Zero-ETL鏈路將多個實例中的數據實時同步至一個AnalyticDB for MySQL集群中,構建全局分析視角。
支持的同步鏈路
RDS for MySQL至AnalyticDB for MySQL的同步鏈路。
PolarDB for MySQL至AnalyticDB for MySQL的同步鏈路。詳情請參見通過無感集成(Zero-ETL)同步數據。
前提條件
AnalyticDB for MySQL集群與RDS for MySQL實例位于同一地域。具體操作,請參見快速創建RDS MySQL實例。
已為AnalyticDB for MySQL集群和RDS for MySQL實例創建數據庫賬號。具體操作,請參見創建數據庫賬號和創建賬號。
費用說明
同步鏈路不收取費用。
注意事項
僅部分地域支持無感集成(Zero-ETL)功能:華北2(北京)、華東1(杭州)、華東2(上海)、華南1(深圳)。
AnalyticDB for MySQL集群Zero-ETL鏈路數超過限制時,將無法創建新Zero-ETL鏈路。您可以使用DTS創建新的同步鏈路,或刪除不再使用的Zero ETL鏈路以創建新的鏈路。Zero-ETL鏈路條數限制信息如下:
集群預留資源的ACU總數小于24 ACU,可創建1條Zero-ETL鏈路。
集群預留資源的ACU總數大于等于24 ACU,可創建
3+3*[(總ACU數-24)/50]
條Zero-ETL鏈路。[(總ACU數-24)/50]
計算時向下取整,例如集群總ACU數為48,計算結果為0.48,取整后為0,允許創建3條Zero-ETL鏈路。
說明湖倉版預留資源的ACU總數指計算預留資源和存儲預留資源的ACU總和。
數倉版,1核等于1ACU。彈性模式的預留資源ACU總數指計算資源和彈性IO資源的核數總和。預留模式的預留資源ACU總數指計算資源的核數。
準備工作
創建AnalyticDB for MySQL服務關聯角色
前往RAM控制臺的角色列表。
檢查角色列表中,是否已存在名為AliyunServiceRoleForAnalyticDBForMySQL的服務關聯角色。若不存在,則需創建相關角色。
單擊左側創建角色。
在彈出的創建角色對話框中,選擇阿里云服務,并單擊下一步。
選擇角色類型為服務關聯角色,并選擇AnalyticDB for MySQL。
單擊完成,返回角色列表,確保已成功創建服務關聯角色。
授予RAM用戶管理權限
RAM用戶創建和管理Zero-ETL鏈路需要下列兩種權限。
授予RAM用戶AnalyticDB for MySQL管理權限
RAM用戶必須擁有AnalyticDB for MySQL的管理權限AliyunADBFullAccess,才可以創建和管理AnalyticDB for MySQL的Zero-ETL鏈路。操作步驟,請參見為RAM用戶授權。
授予RAM用戶Zero-ETL管理權限
RAM用戶需要具備為數據源實例與目標實例(AnalyticDB for MySQL)創建鏈路的權限,才能創建和管理Zero-ETL鏈路。您可以自定義權限策略,允許為數據源和AnalyticDB for MySQL的所有實例創建鏈路或僅為指定實例創建鏈路,并將自定義權限策略授權給RAM用戶。創建自定義權限策略與RAM用戶授權的操作,請參見創建自定義權限策略。
自定義權限策略的腳本如下:
為所有RDS for MySQL實例和AnalyticDB for 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"
],
"Resource": [
"acs:dts:*:*:*"
]
}
]
}
為指定RDS for MySQL實例和AnalyticDB for MySQL集群授權
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
"acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****",
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": "acs:dts:*:*:*"
}
]
}
操作步驟
登錄云原生數據倉庫AnalyticDB MySQL控制臺,在左上角選擇集群所在地域。在左側導航欄,單擊集群列表。在集群列表上方,選擇產品系列,然后單擊目標集群ID。
進入無感集成(Zero-ETL)功能頁面,不同的產品系列功能入口不同。
企業版、基礎版或湖倉版集群:在左側導航欄,選擇 。
數倉版集群:在左側導航欄,選擇 。
單擊創建Zero-ETL任務,在創建Zero-ETL任務頁面配置源庫信息和目標庫信息。
配置源庫信息:
源庫信息
說明
任務名稱
Zero-ETL任務名稱。
數據庫類型
選擇RDS for MySQL。
接入方式
僅支持云實例接入。
實例地區
RDS for MySQL實例所屬地域。
實例ID
RDS for MySQL實例ID。
數據庫賬號
RDS for MySQL實例的數據庫賬號。
數據庫密碼
RDS for MySQL實例數據庫賬號的密碼。
連接方式
連接RDS for MySQL實例的方式。包括非加密鏈接和SSL安全鏈接。
說明如果設置為SSL安全連接,您需要提前開啟RDS for MySQL實例的SSL加密功能,詳情請參見使用云端證書快速開啟SSL鏈路加密。
配置目標庫信息:
目標庫信息
說明
數據庫類型
當前目標庫僅支持AnalyticDB MySQL 3.0。
接入方式
僅支持云實例接入。
實例地區
AnalyticDB for MySQL集群所屬的地域。
實例ID
AnalyticDB for MySQL的集群ID。
數據庫賬號
AnalyticDB for MySQL集群的數據庫賬號。
數據庫密碼
AnalyticDB for MySQL集群數據庫賬號的密碼。
上述參數配置完成后,單擊測試連接以進行下一步,進入配置Zero-ETL頁面,配置如下參數:
配置項目
說明
實例級別選擇所需同步的DDL和DML
勾選所需同步的DML操作(insert、update和delete)和DDL操作(create、alter、drop、和truncate),默認全部勾選。
源庫對象和已選擇對象
數據庫中源庫對象和同步對象。
高級配置(選填)
設置源庫、目標庫無法連接后的重試時間和源庫、目標庫出現其他問題后的重試時間。
上述參數配置完成后,單擊配置庫表字段,配置信息如下:
庫表字段配置
說明
數據庫名稱
選擇已有的數據庫。
表名稱
選擇已有的數據表。
主鍵列
已選數據表中的主鍵所在字段。
分布鍵
已選數據表中的分布鍵所在字段。
類型
數據表類型,包括分區表和復制表。
定義狀態
定義完庫表字段配置狀態后,即從未定義變為已定義。
配置完上述所有參數后,請單擊下一步保存任務并預檢查。
預檢查通過,單擊啟動,啟動Zero-ETL任務。
您可以在無感數據集成頁面,查看目標Zero-ETL任務的名稱、源/目標、運行狀態等信息。
Zero-ETL任務監控與告警
創建并啟動Zero-ETL任務后,您可以在云監控控制臺設置Zero-ETL任務報警規則,實時監控Zero-ETL任務的運行情況。具體操作如下。
登錄云監控控制臺。
查看監控信息。
在左側導航欄,選擇
。鼠標懸浮在云原生數據倉庫AnalyticDB MySQL版卡片上,單擊云原生數據倉庫AnalyticDB MySQL版3.0 - ZeroETL延遲。
在集群列表頁,單擊集群ID,查看每個集群下Zero-ETL任務的監控信息。
創建報警規則。
在左側導航欄,單擊
。單擊創建報警規則,在彈出的創建報警規則面板,配置Zero-ETL任務報警規則。具體操作,請參見創建報警規則。
說明產品需選擇為云原生數據倉庫AnalyticDB MySQL版3.0 - ZeroETL延遲。
創建訂閱策略。
在左側導航欄,單擊
。單擊創建訂閱策略,在創建訂閱策略頁面,配置Zero-ETL任務訂閱策略。具體操作,請參見創建事件訂閱。
說明產品:選擇分析型數據庫MySQL版3.0。
事件類型:選擇異常或Restore。
事件名稱:選擇ZeroETL任務異常或ZeroETL任務恢復。