AnalyticDB for MySQL提供無感整合(Zero-ETL)功能,支援建立RDS for MySQL至AnalyticDB for MySQL的資料同步鏈路,協助您一站式完成資料同步和管理,實現交易處理和資料分析一體化。
方案概述
在巨量資料時代,企業面臨著大量分散在不同的系統和平台上的業務資料,為了有效地管理和利用這些資料,企業往往需要依賴於ETL工具對資料進行集中式管理。
ETL是將上層業務系統的資料經過提取(Extract)、轉換清洗(Transform)、載入(Load)到資料倉儲的處理過程,目的是將上遊分散的資料整合到目標端數倉,通過在數倉中做進一步的計算分析,來為業務做有效商業決策。
傳統的ETL流程通常會面臨以下挑戰:
資源成本增加:不同的資料來源可能需要不同的ETL工具,搭建ETL鏈路會產生額外的資源成本。
系統複雜度增加:使用者需要自我維護ETL工具,增加了營運難度,無法專註於業務應用的開發。
資料即時性降低:部分ETL流程涉及周期性的批次更新,在近即時的應用情境中,無法快速產出分析結果。
為瞭解決這些問題,阿里雲Business Foundation System資料庫提供了無感整合(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任務。
您可以在無感Data Integration頁面,查看目標Zero-ETL任務的名稱、源/目標、運行狀態等資訊。
Zero-ETL任務監控與警示
建立並啟動Zero-ETL任務後,您可以在CloudMonitor控制台設定Zero-ETL任務警示規則,即時監控Zero-ETL任務的運行情況。具體操作如下。
查看監控資訊。
在左側導覽列,選擇
。滑鼠懸浮在雲原生資料倉儲AnalyticDB MySQL版卡片上,單擊雲原生資料倉儲AnalyticDB MySQL版3.0 - ZeroETL延遲。
在叢集列表頁,單擊叢集ID,查看每個叢集下Zero-ETL任務的監控資訊。
建立警示規則。
在左側導覽列,單擊
。單擊建立警示規則,在彈出的建立警示規則面板,配置Zero-ETL任務警示規則。具體操作,請參見建立警示規則。
說明產品需選擇為雲原生資料倉儲AnalyticDB MySQL版3.0 - ZeroETL延遲。
建立訂閱策略。
在左側導覽列,單擊
。單擊建立訂閱策略,在建立訂閱策略頁面,配置Zero-ETL任務訂閱策略。具體操作,請參見建立事件訂閱。
說明產品:選擇AnalyticDB for MySQL3.0。
事件類型:選擇異常或Restore。
事件名稱:選擇ZeroETL任務異常或ZeroETL任務恢複。