無感集成(Zero-ETL)
云原生數據倉庫 AnalyticDB PostgreSQL 版提供無感集成(Zero-ETL)功能,可以幫助您一站式完成數據同步和管理,實現事務處理和數據分析一體化,專注于數據分析業務。
公測時間
2024年4月1日至6月30日。
公測地域
華北2(北京)、華東1(杭州)、華東2(上海)和華南1(深圳)。
方案概述
在大數據時代,企業面臨著大量分散在不同的系統和平臺上的業務數據,為了有效地管理和利用這些數據,企業往往需要依賴于ETL工具對數據進行集中式管理。
ETL是將上層業務系統的數據經過提取(Extract)、轉換清洗(Transform)、加載(Load)到數據倉庫的處理過程,目的是將上游分散的數據整合到目標端數倉,通過在數倉中做進一步的計算分析,來為業務做有效的商業決策。
傳統的ETL流程通常會面臨以下挑戰:
資源成本增加:不同的數據源可能需要不同的ETL工具,搭建ETL鏈路會產生額外的資源成本。
系統復雜度增加:用戶需要自行維護ETL工具,增加了運維難度,無法專注于業務應用的開發。
數據實時性降低:部分ETL流程涉及周期性的批量更新,在近實時的應用場景中,無法快速產出分析結果。
為了解決這些問題,阿里云瑤池數據庫提供了無感集成(Zero-ETL)功能,可以快速構建業務系統(OLTP)和數據倉庫(OLAP)之間的數據同步鏈路,將業務系統(OLTP)的數據自動進行提取、轉換清洗和加載到數據倉庫(OLAP),從而一站式完成數據同步和管理,實現事務處理和數據分析一體化,幫助客戶專注于數據分析業務。
云原生數據倉庫 AnalyticDB PostgreSQL 版僅支持以下Zero-ETL鏈路:
云原生數據庫 PolarDB PostgreSQL 版至云原生數據倉庫 AnalyticDB PostgreSQL 版的數據同步鏈路。
云原生數據庫 PolarDB MySQL 版至云原生數據倉庫 AnalyticDB PostgreSQL 版的數據同步鏈路。
云數據庫 RDS PostgreSQL 版至云原生數據倉庫 AnalyticDB PostgreSQL 版的數據同步鏈路。
云數據庫 RDS MySQL 版至云原生數據倉庫 AnalyticDB PostgreSQL 版的數據同步鏈路。
方案優勢
簡單易用:用戶無需創建和維護執行ETL(提取、轉換、加載操作)的復雜數據管道,僅需選擇源端數據和目標端實例,自動創建實時數據同步鏈路,減少構建和管理數據管道所帶來的挑戰,專注于上層應用開發。
零成本:Zero-ETL鏈路不額外收費,可免費實現在云原生數據倉庫 AnalyticDB PostgreSQL 版中對上游數據進行分析。
多源匯聚:通過Zero-ETL鏈路將多個實例中的數據實時同步至一個云原生數據倉庫 AnalyticDB PostgreSQL 版實例中,構建全局分析視角。
注意事項
數據同步鏈路注意事項:
云原生數據庫 PolarDB PostgreSQL 版鏈路的注意事項,請參見PolarDB PostgreSQL版同步至云原生數據倉庫 AnalyticDB PostgreSQL版。
云原生數據庫 PolarDB MySQL 版鏈路的注意事項,請參見PolarDB MySQL版同步至云原生數據倉庫 AnalyticDB PostgreSQL版。
云數據庫 RDS PostgreSQL 版鏈路的注意事項,請參見RDS PostgreSQL同步至云原生數據倉庫 AnalyticDB PostgreSQL版。
云數據庫 RDS MySQL 版鏈路的注意事項,請參見RDS MySQL同步至云原生數據倉庫 AnalyticDB PostgreSQL 版。
費用說明
不收取額外費用,僅收取云數據庫 RDS PostgreSQL 版、云原生數據庫 PolarDB MySQL 版、云原生數據庫 PolarDB PostgreSQL 版、云數據庫 RDS MySQL 版實例與云原生數據倉庫 AnalyticDB PostgreSQL 版實例的費用。
前提條件
已創建實例:
已創建云原生數據倉庫 AnalyticDB PostgreSQL 版實例。具體操作,請參見創建實例。
已創建云數據庫 RDS PostgreSQL 版、云數據庫 RDS MySQL 版、云原生數據庫 PolarDB PostgreSQL 版或云原生數據庫 PolarDB MySQL 版實例。具體操作,請參見創建RDS PostgreSQL實例,快速創建RDS MySQL實例,創建PolarDB PostgreSQL版實例和創建PolarDB MySQL版集群。
已將云數據庫 RDS PostgreSQL 版、云數據庫 RDS MySQL 版、云原生數據庫 PolarDB MySQL 版或云原生數據庫 PolarDB PostgreSQL 版實例的wal_level參數值設置為logical。具體操作,請參見RDS PostgreSQL同步至AnalyticDB for PostgreSQL。
云原生數據倉庫 AnalyticDB PostgreSQL 版的可用存儲空間需要大于云數據庫 RDS PostgreSQL 版、云數據庫 RDS MySQL 版、云原生數據庫 PolarDB MySQL 版或云原生數據庫 PolarDB PostgreSQL 版實例已使用的存儲空間。
準備工作
創建云原生數據倉庫 AnalyticDB PostgreSQL 版服務關聯角色
前往RAM控制臺的角色列表。
檢查角色列表中,是否已存在名為
AliyunServiceRoleForADBPG
的服務關聯角色。若不存在,則需創建相關角色。單擊左側創建角色。
在彈出的創建角色對話框中,選擇阿里云服務,并單擊下一步。
選擇角色類型為服務關聯角色,并選擇云服務云原生數據倉庫 AnalyticDB PostgreSQL 版。
單擊完成,返回角色列表,確保已成功創建服務關聯角色。
授予RAM用戶管理權限
RAM用戶創建和管理Zero-ETL鏈路需要下列兩種權限
授予RAM用戶云原生數據倉庫 AnalyticDB PostgreSQL 版管理權限
RAM用戶必須擁有云原生數據倉庫 AnalyticDB PostgreSQL 版的管理權限:AliyunGPDBFullAccess
,才可以創建和管理云原生數據倉庫 AnalyticDB PostgreSQL 版的Zero-ETL鏈路。操作步驟,請參見為RAM用戶授權。
授予RAM用戶Zero-ETL管理權限
RAM用戶需要具備為數據源實例與目標實例(云原生數據倉庫 AnalyticDB PostgreSQL 版)創建鏈路的權限,才能創建和管理Zero-ETL鏈路。您可以自定義權限策略,允許為數據源和云原生數據倉庫 AnalyticDB PostgreSQL 版的所有實例創建鏈路或僅為指定實例創建鏈路,并將自定義權限策略授權給RAM用戶。
授予所有的云數據庫 RDS PostgreSQL 版、云數據庫 RDS MySQL 版、云原生數據庫 PolarDB MySQL 版、云原生數據庫 PolarDB PostgreSQL 版、云原生數據倉庫 AnalyticDB PostgreSQL 版實例權限,具體腳本如下:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:gpdb:*:*:*", "acs:rds:*:*:*", "acs:polardb:*:*:*" ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig" ], "Resource": [ "acs:gpdb:*:*:*" ] } ] }
授予指定的云數據庫 RDS PostgreSQL 版、云數據庫 RDS MySQL 版、云原生數據庫 PolarDB MySQL 版、云原生數據庫 PolarDB PostgreSQL 版、云原生數據倉庫 AnalyticDB PostgreSQL 版實例權限,具體腳本如下:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:gpdb:*:*:dbinstanc****", "acs:rds:*:*:dbinstance****", "acs:polardb:*:*:dbclus****" ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig" ], "Resource": "acs:dts:*:*:*" } ] }
操作步驟
在控制臺左上角,選擇實例所在地域。
找到目標實例,單擊實例ID。
在左側導航欄,選擇無感集成(Zero-ETL),然后單擊左上角創建Zero-ETL任務。
在創建Zero-ETL任務頁面,創建一個Zero-ETL任務,配置源庫信息和目標庫信息:
配置源庫信息:
源庫信息
說明
示例值
任務名稱
Zero-ETL任務名稱。
Zeroetltest
數據庫類型
當前源庫支持云數據庫 RDS PostgreSQL 版、云數據庫 RDS MySQL 版、云原生數據庫 PolarDB MySQL 版和云原生數據庫 PolarDB PostgreSQL 版四種類型。
云數據庫 RDS PostgreSQL 版
接入方式
僅支持云實例接入。
云實例
實例地區
選擇源實例所在的地域。
華東2(上海)
實例ID
源實例的ID。
pgm-2ze****
數據庫名稱
源實例中數據庫的名稱。
testdb
數據庫賬號
源實例中數據庫的賬號。
test
數據庫密碼
源實例中數據庫賬號的密碼。
password****
連接方式
SSL安全連接或非加密連接。
說明SSL鏈接增加了一層證書加密,在傳輸數據的過程中,會對數據加密,即使有人在網絡層獲取了數據也無法得知具體內容。
SSL安全連接
配置目標庫信息:
目標庫信息
說明
示例值
數據庫類型
當前目標庫僅支持云原生數據倉庫 AnalyticDB PostgreSQL 版。
云原生數據倉庫 AnalyticDB PostgreSQL 版
接入方式
僅支持云實例接入。
云實例
實例地區
云原生數據倉庫 AnalyticDB PostgreSQL 版規劃的實例地域。
華東2(上海)
實例ID
云原生數據倉庫 AnalyticDB PostgreSQL 版實例的ID。
gp-2zeod****
數據庫名稱
云原生數據倉庫 AnalyticDB PostgreSQL 版數據庫的名稱。
testdb
數據庫賬號
云原生數據倉庫 AnalyticDB PostgreSQL 版數據庫的賬號。
test
數據庫密碼
云原生數據倉庫 AnalyticDB PostgreSQL 版數據庫賬號的密碼。
password****
測試連接以進行下一步,進入配置Zero-ETL頁面,配置信息如下:
配置項目
說明
示例值
實例級別選擇所需同步的DDL和DML
勾選所需同步的DML操作(insert、update和delete)
和DDL操作(create、alter、drop、rename和truncate)。
DML操作(insert、update和delete)。
DDL操作(create、alter、drop、rename和truncate)。
源庫對象和已選擇對象
數據庫中源庫對象和同步對象。
public
高級配置(選填)
設置源庫、目標庫無法連接后的重試時間以及源庫、目標庫出現其他問題后的重試時間。
源庫、目標庫無法連接后的重試時間:10分鐘。
源庫、目標庫出現其他問題后的重試時間:10分鐘。
配置庫表字段,配置信息如下:
庫表字段配置
說明
示例值
數據庫名稱
選擇已有的數據庫。
public
表名稱
選擇已有的數據表。
table1
主鍵字段
已選數據表中的主鍵所在字段。
id
分布鍵
數據表中的一個或多個字段,用來確定數據在分布式環境下的存儲位置。
id
類型
數據分區類型。
哈希分布表
定義狀態
定義完庫表字段配置狀態后,即從未定義變為已定義。
已定義
配置完所有資源后,請單擊下一步保存任務并預檢查。
預檢查通過后,系統自動啟動Zero-ETL任務,在任務列表可查看任務進度。
Zero-ETL任務監控與告警
創建并啟動Zero-ETL任務后,您可以在云監控控制臺設置Zero-ETL任務報警規則,實時監控Zero-ETL任務的運行情況。具體操作如下。