全部產品
Search
文件中心

ApsaraDB RDS:無感Data Integration(Zero-ETL)

更新時間:Mar 11, 2025

RDS提供無感Data Integration(Zero-ETL)功能,將資料同步至資料倉儲(AnalyticDB MySQL、AnalyticDB PostgreSQL或ClickHouse),無需搭建或維護同步鏈路,且同步鏈路不收費,減少資料轉送和營運成本。

支援地區

華北2(北京)、華東1(杭州)、華東2(上海)和華南1(深圳)

說明

後續將支援更多地區,具體以RDS控制台為準。

方案概述

在巨量資料時代,企業資料分散在不同系統和平台中,如何高效管理和利用這些資料成為關鍵挑戰。傳統上,企業依賴ETL工具(提取、轉換、載入)將分散的資料整合到資料倉儲,以支援業務決策。然而,傳統的ETL流程通常面臨以下問題:

  • 系統複雜度增加:使用者需要自我維護ETL工具,增加了營運難度,難以專註於核心業務開發。

  • 資源成本增加:不同的資料來源可能需要不同的ETL工具,搭建ETL鏈路會產生額外的資源成本。

  • 資料即時性降低:部分ETL流程涉及周期性的批次更新,在近即時情境下無法快速產生分析結果。

為瞭解決這些問題,阿里雲Business Foundation System資料庫提供了無感Data Integration(Zero-ETL)功能,能夠快速構建OLTP(線上交易處理)與OLAP(線上分析處理)之間的資料同步鏈路。通過自動化的資料擷取、轉換和下載,Zero-ETL實現了交易處理與資料分析的一體化,協助企業專註於資料分析業務,提升效率。

功能優勢

  • 簡單易用:使用者無需建立和維護複雜的ETL資料管道,只需選擇源端資料和目標端執行個體,即可自動構建即時資料同步鏈路。大幅降低資料管道的構建和管理難度,讓使用者專註於上層應用開發。

  • 零成本:Zero-ETL鏈路不額外收費,可免費實現對上遊資料的即時分析,協助企業節省資源成本。

  • 多源匯聚:支援將多個執行個體中的資料即時同步至一個目標資料倉儲(如 AnalyticDB MySQL、AnalyticDB PostgreSQL或ClickHouse),構建全域分析視角。

    說明

    多個執行個體中的資料即時同步至一個ClickHouse執行個體,僅支援不同任務的同步對象不重疊。

支援鏈路

  • RDS MySQL->ClickHouse

  • RDS MySQL->AnalyticDB MySQL 3.0

  • RDS MySQL->AnalyticDB PostgreSQL

費用說明

無感Data Integration(Zero-ETL)同步鏈路免費。

前提條件

準備工作

建立服務關聯角色並授予RAM使用者對應的系統管理權限。

RDS MySQL->ClickHouse

  1. 建立服務關聯角色AliyunServiceRoleForClickHouseZeroETL

    說明

    在建立鏈路時,系統會自動建立該角色,無需手動建立。

  2. 授予RAM使用者系統管理權限。

    RAM使用者必須具備以下三種許可權,才可以成功建立Zero鏈路。具體操作,請參見建立自訂權限原則

    • 源端RDS MySQL許可權:AliyunRDSFullAccess。

    • 目標端ClickHouse許可權:ClickHouse的自訂策略指令碼如下。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "clickhouse:*",
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": "ram:CreateServiceLinkedRole",
                  "Resource": "*",
                  "Effect": "Allow",
                  "Condition": {
                      "StringEquals": {
                          "ram:ServiceName": "clickhouse.aliyuncs.com"
                      }
                  }
              }
          ]
      }
    • DTS的許可權:DTS的自訂策略指令碼如下。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "dts:*",
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": "ram:PassRole",
                  "Resource": "*",
                  "Effect": "Allow",
                  "Condition": {
                      "StringEquals": {
                          "acs:Service": "dts.aliyuncs.com"
                      }
                  }
              }
          ]
      }

RDS MySQL->AnalyticDB MySQL 3.0

  1. 建立服務關聯角色AliyunServiceRoleForAnalyticDBForMySQL

    1. 前往RAM控制台並選擇左側導覽列的角色列表。檢查角色列表中,是否已存在名為AliyunServiceRoleForAnalyticDBForMySQL的服務關聯角色。若不存在,則需建立相關角色。

    2. 單擊左上方建立角色。

    3. 在彈出的建立角色對話方塊中,選擇阿里雲服務,並單擊下一步

    4. 選擇角色類型為服務關聯角色,並選擇AnalyticDB MySQL。

    5. 單擊完成,返回角色列表,確保已成功建立服務關聯角色。

  2. 授予RAM使用者系統管理權限。

    RAM使用者支援為所有或指定RDS MySQL執行個體和AnalyticDB MySQL叢集授權。具體操作,請參見建立自訂權限原則

    自訂權限原則的指令碼如下:

    為所有RDS MySQL和AnalyticDB 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",
                    "dts:DescribeConciseJobStatics",
                    "dts:ListUserAuthorizationLogs",
                    "dts:CreateUserAuthorization"
                ],
                "Resource": [
                    "acs:dts:*:*:*"
                ]
            }
        ]
    }

    為指定RDS MySQL和AnalyticDB MySQL叢集授權

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "dts:*",
                "Resource": [
                    "acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****", 替換為需要同步的AnalyticDB MySQL叢集ID
                    "acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****" 替換為需要同步的RDS MySQL執行個體ID
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "dts:DescribeRegions",
                    "dts:DescribeConfigRelations",
                    "dts:DescribeSrcLinkConfig",
                    "dts:DescribeDestLinkConfig",
                    "dts:DescribeLinkConfig",
                    "dts:DescribeConciseJobStatics",
                    "dts:ListUserAuthorizationLogs",
                    "dts:CreateUserAuthorization"
                ],
                "Resource": "acs:dts:*:*:*"
            }
        ]
    }

RDS MySQL->AnalyticDB PostgreSQL

  1. 建立服務關聯角色AliyunServiceRoleForADBPG

    1. 前往RAM控制台並選擇左側導覽列的角色列表。檢查角色列表中,是否已存在名為AliyunServiceRoleForADBPG的服務關聯角色。若不存在,則需建立相關角色。

    2. 單擊左上方建立角色。

    3. 在彈出的建立角色對話方塊中,選擇阿里雲服務,並單擊下一步

    4. 選擇角色類型為服務關聯角色,並選擇AnalyticDB PostgreSQL。

    5. 單擊完成,返回角色列表,確保已成功建立服務關聯角色。

  2. 授予RAM使用者系統管理權限。

    RAM使用者支援為所有或指定RDS MySQL執行個體和AnalyticDB PostgreSQL執行個體授權。具體操作,請參見建立自訂權限原則

    自訂權限原則的指令碼如下:

    為所有RDS MySQL和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"
                ],
                "Resource": [
                    "acs:gpdb:*:*:*"
                ]
            }
        ]
    }

    為指定RDS MySQL和AnalyticDB PostgreSQL執行個體授權

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "dts:*",
                "Resource": [
                    "acs:gpdb:*:*:dbinstanc/gp-bp1a740l3zx4****", 替換為需要同步的AnalyticDB PostgreSQL執行個體ID
                    "acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****"  替換為需要同步的RDS MySQL執行個體ID
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "dts:DescribeRegions",
                    "dts:DescribeConfigRelations",
                    "dts:DescribeSrcLinkConfig",
                    "dts:DescribeDestLinkConfig",
                    "dts:DescribeLinkConfig"
                ],
                "Resource": "acs:dts:*:*:*"
            }
        ]
    }

操作步驟

  1. 登入RDS管理主控台,單擊左側導覽列Data Integration

  2. 無感Data Integration (Zero-ETL)頁簽,單擊建立Zero-ETL任務

  3. 建立Zero-ETL任務頁面配置源庫資訊和目標庫資訊。

    • 配置源庫資訊:

      源庫資訊

      說明

      任務名稱

      Zero-ETL任務名稱。

      資料庫類型

      選擇RDS MySQL

      接入方式

      僅支援雲執行個體接入

      執行個體地區

      選擇源執行個體所屬地區。

      執行個體ID

      RDS MySQL執行個體ID。

      資料庫名稱

      RDS MySQL執行個體資料庫名稱。

      資料庫帳號

      RDS MySQL執行個體的資料庫帳號。

      資料庫密碼

      RDS MySQL資料庫帳號的密碼。

      串連方式

      串連RDS MySQL執行個體的方式。包括非加密連結和SSL安全連結。

      說明

      如果設定為SSL安全連線,您需要提前使用雲端認證快速開啟SSL鏈路加密

    • 配置目標庫資訊:

      目標庫資訊

      說明

      資料庫類型

      當前目標庫支援AnalyticDB MySQL 3.0AnalyticDB PostgreSQLClickHouse

      接入方式

      僅支援雲執行個體接入

      執行個體地區

      目標庫所屬的地區。

      執行個體ID

      目標庫的執行個體ID。

      資料庫帳號

      目標庫執行個體的資料庫帳號。

      資料庫密碼

      目標庫執行個體的資料庫帳號的密碼。

  4. 上述參數配置完成後,單擊測試連接以進行下一步,進入配置Zero-ETL頁面,配置如下參數:

    設定項目

    說明

    同步類型

    實現資料來源之間的資料即時同步。

    同步類型分為:庫表結構同步、全量同步、增量同步處理。

    說明

    同步任務固定勾選增量資料同步,將源庫產生的增量資料即時同步至目標庫。

    不需要增量同步處理時,請使用資料移轉

    執行個體層級選擇所需同步的DDL和DML

    勾選所需同步的DML操作(insertupdatedelete)和DDL操作(createalterdroprenametruncate),預設全部勾選。

    源庫對象和已選擇對象

    資料庫中源庫對象和同步對象。

    進階配置(選填)

    設定源庫、目標庫無法串連後的重試時間和源庫、目標庫出現其他問題後的重試時間。

  5. 上述參數配置完成後,單擊配置庫表欄位,配置資訊如下:

    庫表欄位配置

    說明

    資料庫名稱

    選擇已有的資料庫。

    表名稱

    選擇已有的資料表。

    主鍵列

    已選資料表中的主鍵所在欄位。

    分布鍵

    已選資料表中的分布鍵所在欄位。

    類型

    資料表類型,包括分區表和複製表。

    定義狀態

    定義完庫表欄位配置狀態後,即從未定義變為已定義。

  6. 配置完上述所有參數後,單擊下一步儲存任務並預檢查

  7. 預檢查通過,單擊啟動,啟動Zero-ETL任務。

說明

您可以在免費資料同步頁面,查看目標Zero-ETL任務的名稱源/目標運行狀態等資訊。