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