全部產品
Search
文件中心

AnalyticDB:通過無感整合(Zero-ETL)同步資料

更新時間:Oct 18, 2024

AnalyticDB for MySQL提供無感整合(Zero-ETL)功能,支援建立RDS for MySQLAnalyticDB 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叢集中,構建全域分析視角。

支援的同步鏈路

前提條件

費用說明

同步鏈路不收取費用。

注意事項

  • 僅部分地區支援無感整合(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服務關聯角色

  1. 前往RAM控制台角色列表。

  2. 檢查角色列表中,是否已存在名為AliyunServiceRoleForAnalyticDBForMySQL的服務關聯角色。若不存在,則需建立相關角色。

  3. 單擊左側建立角色

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

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

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

授予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:*:*:*"
        }
    ]
}

操作步驟

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單。在集群清單上方,選擇產品系列,然後單擊目的地組群ID。

  2. 進入無感整合(Zero-ETL)功能頁面,不同的產品系列功能入口不同。

    • 湖倉版叢集:在左側導覽列,選擇資料接入 > DB資料同步

    • 數倉版叢集:在左側導覽列,選擇Data Transmission Service > 無感Data Integration

  3. 單擊建立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叢集資料庫帳號的密碼。

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

    設定項目

    說明

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

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

    源庫對象和已選擇對象

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

    進階配置(選填)

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

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

    庫表欄位配置

    說明

    資料庫名稱

    選擇已有的資料庫。

    表名稱

    選擇已有的資料表。

    主鍵列

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

    分布鍵

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

    類型

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

    定義狀態

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

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

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

    您可以在無感Data Integration頁面,查看目標Zero-ETL任務的名稱源/目標運行狀態等資訊。

Zero-ETL任務監控與警示

建立並啟動Zero-ETL任務後,您可以在CloudMonitor控制台設定Zero-ETL任務警示規則,即時監控Zero-ETL任務的運行情況。具體操作如下。

  1. 登入CloudMonitor控制台

  2. 查看監控資訊。

    1. 在左側導覽列,選擇雲資源監控 > 雲產品監控

    2. 滑鼠懸浮在雲原生資料倉儲AnalyticDB MySQL版卡片上,單擊雲原生資料倉儲AnalyticDB MySQL版3.0 - ZeroETL延遲

    3. 叢集列表頁,單擊叢集ID,查看每個叢集下Zero-ETL任務的監控資訊。

  3. 建立警示規則。

    1. 在左側導覽列,單擊警示服務 > 警示規則

    2. 單擊建立警示規則,在彈出的建立警示規則面板,配置Zero-ETL任務警示規則。具體操作,請參見建立警示規則

      說明

      產品需選擇為雲原生資料倉儲AnalyticDB MySQL版3.0 - ZeroETL延遲

  4. 建立訂閱策略。

    1. 在左側導覽列,單擊事件中心 > 事件訂閱

    2. 單擊建立訂閱策略,在建立訂閱策略頁面,配置Zero-ETL任務訂閱策略。具體操作,請參見建立事件訂閱

      說明
      • 產品:選擇AnalyticDB for MySQL3.0

      • 事件類型:選擇異常Restore

      • 事件名稱:選擇ZeroETL任務異常ZeroETL任務恢複