無感數(shù)據(jù)集成(Zero-ETL)
AnalyticDB for MySQL提供無感集成(Zero-ETL)功能,支持創(chuàng)建PolarDB MySQL版集群至AnalyticDB for MySQL集群的數(shù)據(jù)同步鏈路,幫助您一站式完成數(shù)據(jù)同步和管理,實(shí)現(xiàn)事務(wù)處理和數(shù)據(jù)分析一體化。
方案概述
在大數(shù)據(jù)時代,企業(yè)面臨著大量分散在不同的系統(tǒng)和平臺上的業(yè)務(wù)數(shù)據(jù),為了有效地管理和利用這些數(shù)據(jù),企業(yè)往往需要依賴于ETL工具對數(shù)據(jù)進(jìn)行集中式管理。
ETL是將上層業(yè)務(wù)系統(tǒng)的數(shù)據(jù)經(jīng)過提取(Extract)、轉(zhuǎn)換清洗(Transform)、加載(Load)到數(shù)據(jù)倉庫的處理過程,目的是將上游分散的數(shù)據(jù)整合到目標(biāo)端數(shù)倉,通過在數(shù)倉中做進(jìn)一步的計算分析,來為業(yè)務(wù)做有效的商業(yè)決策。
傳統(tǒng)的ETL流程通常會面臨以下挑戰(zhàn):
資源成本增加:不同的數(shù)據(jù)源可能需要不同的ETL工具,搭建ETL鏈路會產(chǎn)生額外的資源成本。
系統(tǒng)復(fù)雜度增加:用戶需要自行維護(hù)ETL工具,增加了運(yùn)維難度,無法專注于業(yè)務(wù)應(yīng)用的開發(fā)。
數(shù)據(jù)實(shí)時性降低:部分ETL流程涉及周期性的批量更新,在近實(shí)時的應(yīng)用場景中,無法快速產(chǎn)出分析結(jié)果。
為了解決這些問題,阿里云瑤池數(shù)據(jù)庫提供了無感集成(Zero-ETL)功能,可以快速構(gòu)建業(yè)務(wù)系統(tǒng)(OLTP)和數(shù)據(jù)倉庫(OLAP)之間的數(shù)據(jù)同步鏈路,將業(yè)務(wù)系統(tǒng)(OLTP)的數(shù)據(jù)自動進(jìn)行提取、轉(zhuǎn)換清洗和加載到數(shù)據(jù)倉庫(OLAP),從而一站式完成數(shù)據(jù)同步和管理,實(shí)現(xiàn)事務(wù)處理和數(shù)據(jù)分析一體化,幫助客戶專注于數(shù)據(jù)分析業(yè)務(wù)。
方案優(yōu)勢
簡單易用:用戶無需創(chuàng)建和維護(hù)執(zhí)行ETL(提取、轉(zhuǎn)換、加載操作)的復(fù)雜數(shù)據(jù)管道,僅需選擇源端數(shù)據(jù)和目標(biāo)端實(shí)例,自動創(chuàng)建實(shí)時數(shù)據(jù)同步鏈路,減少構(gòu)建和管理數(shù)據(jù)管道所帶來的挑戰(zhàn),專注于上層應(yīng)用開發(fā)。
零成本:Zero-ETL鏈路不額外收費(fèi),可免費(fèi)實(shí)現(xiàn)在AnalyticDB for MySQL中對上游數(shù)據(jù)進(jìn)行分析。
多源匯聚:通過Zero-ETL鏈路將多個實(shí)例中的數(shù)據(jù)實(shí)時同步至一個AnalyticDB for MySQL集群中,構(gòu)建全局分析視角。
支持的同步鏈路
PolarDB MySQL版集群至AnalyticDB for MySQL集群的同步鏈路。
前提條件
AnalyticDB for MySQL集群與PolarDB MySQL版集群位于同一地域。具體操作,請參見購買集群。
已為PolarDB MySQL版集群創(chuàng)建數(shù)據(jù)庫賬號。具體操作,請參見創(chuàng)建數(shù)據(jù)庫賬號。
PolarDB MySQL版集群已開啟Binlog。
使用限制
僅部分地域支持無感集成(Zero-ETL)功能:華北2(北京)、華東1(杭州)、華東2(上海)、華南1(深圳)。
費(fèi)用說明
同步鏈路不收取費(fèi)用。
準(zhǔn)備工作
創(chuàng)建AnalyticDB for MySQL服務(wù)關(guān)聯(lián)角色
前往RAM控制臺的角色列表。
檢查角色列表中,是否已存在名為AliyunServiceRoleForAnalyticDBForMySQL的服務(wù)關(guān)聯(lián)角色。若不存在,則需創(chuàng)建相關(guān)角色。
單擊左側(cè)創(chuàng)建角色。
在彈出的創(chuàng)建角色對話框中,選擇阿里云服務(wù),并單擊下一步。
選擇角色類型為服務(wù)關(guān)聯(lián)角色,并選擇AnalyticDB for MySQL。
單擊完成,返回角色列表,確保已成功創(chuàng)建服務(wù)關(guān)聯(lián)角色。
授予RAM用戶管理權(quán)限
RAM用戶創(chuàng)建和管理Zero-ETL鏈路需要下列兩種權(quán)限。
授予RAM用戶AnalyticDB for MySQL管理權(quán)限
RAM用戶必須擁有AnalyticDB for MySQL的管理權(quán)限AliyunADBFullAccess,才可以創(chuàng)建和管理AnalyticDB for MySQL的Zero-ETL鏈路。操作步驟,請參見為RAM用戶授權(quán)。
授予RAM用戶Zero-ETL管理權(quán)限
RAM用戶需要具備為數(shù)據(jù)源實(shí)例與目標(biāo)實(shí)例(AnalyticDB for MySQL)創(chuàng)建鏈路的權(quán)限,才能創(chuàng)建和管理Zero-ETL鏈路。您可以自定義權(quán)限策略,允許為數(shù)據(jù)源和AnalyticDB for MySQL的所有實(shí)例創(chuàng)建鏈路或僅為指定實(shí)例創(chuàng)建鏈路,并將自定義權(quán)限策略授權(quán)給RAM用戶。創(chuàng)建自定義權(quán)限策略與RAM用戶授權(quán)的操作,請參見創(chuàng)建自定義權(quán)限策略。
自定義權(quán)限策略的腳本如下:
為所有PolarDB MySQL版集群和AnalyticDB for MySQL集群授權(quán)
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:*",
"acs:polardb:*:*:*"
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": [
"acs:dts:*:*:*"
]
}
]
}
為指定PolarDB MySQL版集群和AnalyticDB for MySQL集群授權(quán)
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
"acs:polardb:*:*:dbcluster/pc-bp13jqn4a26b0****"
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": "acs:dts:*:*:*"
}
]
}
請將am-2zeod8ax4b9a****
與pc-bp13jqn4a26b0****
替換成您的集群ID。
操作步驟
登錄PolarDB控制臺。
在左側(cè)導(dǎo)航欄單擊數(shù)據(jù)集成。
在數(shù)據(jù)集成頁面中的無感數(shù)據(jù)集成 (Zero-ETL)頁簽,單擊創(chuàng)建Zero-ETL任務(wù)。
在創(chuàng)建Zero-ETL任務(wù)頁面配置源庫及目標(biāo)庫。
配置源庫信息:
源庫信息
說明
任務(wù)名稱
Zero-ETL任務(wù)名稱。
數(shù)據(jù)庫類型
選擇PolarDB for MySQL。
接入方式
僅支持云實(shí)例。
實(shí)例地區(qū)
PolarDB MySQL版集群所屬地域。
PolarDB實(shí)例ID
PolarDB MySQL版集群ID。
數(shù)據(jù)庫賬號
PolarDB MySQL版集群數(shù)據(jù)庫賬號。
數(shù)據(jù)庫密碼
PolarDB MySQL版集群數(shù)據(jù)庫賬號的密碼。
連接方式
連接PolarDB MySQL版集群的方式。包括非加密鏈接和SSL安全鏈接。
說明如果設(shè)置為SSL安全連接,您需要提前開啟PolarDB MySQL版集群的SSL加密功能,詳情請參見設(shè)置SSL加密。
配置目標(biāo)庫信息:
目標(biāo)庫信息
說明
數(shù)據(jù)庫類型
當(dāng)前目標(biāo)庫僅支持AnalyticDB MySQL 3.0。
接入方式
僅支持云實(shí)例。
實(shí)例地區(qū)
AnalyticDB for MySQL集群所屬的地域。
實(shí)例ID
AnalyticDB for MySQL集群ID。
數(shù)據(jù)庫賬號
AnalyticDB for MySQL集群的數(shù)據(jù)庫賬號。
數(shù)據(jù)庫密碼
AnalyticDB for MySQL集群數(shù)據(jù)庫賬號的密碼。
上述參數(shù)配置完成后,單擊測試連接以進(jìn)行下一步,進(jìn)入配置Zero-ETL頁面,配置如下參數(shù):
配置項目
說明
實(shí)例級別選擇所需同步的DDL和DML
勾選所需同步的DML操作(insert、update和delete)和DDL操作(create、alter、drop和truncate),默認(rèn)全部勾選。
源庫對象
PolarDB MySQL版集群中需進(jìn)行同步的對象。
已選擇對象
PolarDB MySQL版集群中已選擇需要進(jìn)行同步的對象。
說明您可以通過單擊右上角的批量編輯來對同步對象進(jìn)行重命名,或者配置DML和DDL操作,詳情請參見庫表列名映射。
高級配置(選填)
設(shè)置源庫、目標(biāo)庫無法連接后的重試時間和源庫、目標(biāo)庫出現(xiàn)其他問題后的重試時間。
上述參數(shù)配置完成后,單擊下一步配置庫表字段,配置信息如下:
庫表字段配置
說明
數(shù)據(jù)庫名稱
已選數(shù)據(jù)庫。
表名稱
已選數(shù)據(jù)表。
主鍵列
已選數(shù)據(jù)表中的主鍵所在字段。
分布鍵
已選數(shù)據(jù)表中的分布鍵所在字段。
類型
數(shù)據(jù)表類型,包括分區(qū)表和維度表。
定義狀態(tài)
定義完庫表字段配置狀態(tài)后,即從未定義變?yōu)?b data-tag="uicontrol" id="23f589ae05uoy" class="uicontrol">已定義。
配置完上述所有參數(shù)后,請單擊下一步保存任務(wù)并預(yù)檢查。
等待預(yù)檢查通過,單擊啟動,啟動Zero-ETL任務(wù)。
說明您可以在數(shù)據(jù)集成-無感數(shù)據(jù)集成 (Zero-ETL)頁面,查看目標(biāo)Zero-ETL任務(wù)的名稱、源/目標(biāo)、運(yùn)行狀態(tài)等信息。