全部產品
Search
文件中心

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

更新時間:Aug 29, 2024

AnalyticDB for MySQL提供無感整合(Zero-ETL)功能,支援建立PolarDB 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叢集僅允許建立2條Zero-ETL鏈路。超過Zero-ETL鏈路限制時,將無法再建立新Zero-ETL鏈路。您可以使用DTS建立新的同步鏈路,或刪除不再使用的Zero ETL鏈路以建立新的鏈路。

準備工作

建立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使用者授權的操作,請參見建立自訂權限原則

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

為所有PolarDB for MySQL執行個體和AnalyticDB for MySQL叢集授權

{
    "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 for MySQL執行個體和AnalyticDB for MySQL叢集授權

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

操作步驟

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

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

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

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

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

    • 配置源庫資訊:

      源庫資訊

      說明

      任務名稱

      Zero-ETL任務名稱。

      資料庫類型

      選擇PolarDB for MySQL

      接入方式

      僅支援雲執行個體接入

      執行個體地區

      PolarDB for MySQL執行個體所屬地區。

      執行個體ID

      PolarDB for MySQL執行個體ID。

      資料庫帳號

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

      資料庫密碼

      PolarDB for MySQL執行個體資料庫帳號的密碼。

      串連方式

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

      說明

      如果設定為SSL安全連線,您需要提前開啟PolarDB 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任務的名稱源/目標運行狀態等資訊。