全部產品
Search
文件中心

:配置資料來源(輸入為MySQL)

更新時間:Jun 19, 2024

即時同步單表資料時,當輸入資料來源為MySQL時,執行同步任務前,您需要參考本文在資料來源中配置好網路、白名單等配置,為後續的資料同步做好網路環境和帳號許可權的準備。

前提條件

配置資料來源之前,請確保已完成以下規劃與準備工作。
  • 準備資料來源:已購買輸入資料來源MySQL、輸出資料來源。輸出資料來源可以為MaxCompute、Hologres、Elasticsearch、DataHub及Kafka。
  • 資源規劃與準備:已購買獨享Data Integration資源群組,並完成資源配置。詳情可參見資源規劃與配置
  • 網路環境評估與規劃:進行Data Integration前,您需根據業務情況,打通資料來源、獨享Data Integration資源群組之間的網路,網路聯通後參考本文進行交換器、白名單等網路環境下的訪問配置。
    • 如果資料來源和獨享Data Integration資源群組均處於同地區的同一VPC網路中,資料來源與資源群組間的網路天然聯通。
    • 如果資料來源和獨享Data Integration資源群組均處於不同的網路環境中,您需要通過VPN網關等方式,將資料來源與資源群組間的網路打通。

背景資訊

同步輸入資料來源的資料至輸出資料來源時,您需要保障資料來源與DataWorks的獨享Data Integration資源群組在網路上是聯通的,且不存在帳號許可權的訪問限制。
  • 以下以使用同一VPC網路環境為例,您需要將Data Integration資源群組所在的VPC網段添加至白名單中,保障Data Integration資源群組可訪問資料來源。即時同步單表資料(MySQL)
  • 帳號許可權

    您需要規劃一個可訪問資料來源的帳號,用於後續Data Integration過程中訪問資料來源並進行資料提取、寫入的同步操作。

  • 其他訪問限制。

    來來源資料源為MySQL時,您需要開啟Binlog。Binlog是記錄所有資料庫表結構變更(例如執行CREATE、ALTER操作)以及表資料修改(例如執行INSERT、UPDATE、DELETE等)的日誌。方便您可以通過Binlog日誌中的內容,查看資料庫的變更歷史、進行資料庫增量備份和恢複以及主從資料庫的複製。

    Binlog日誌的格式如下:
    • Statement:基於SQL語句的複製。Binlog中會儲存每條修改資料的SQL語句。
    • Row:基於行的複製。Binlog中不儲存SQL語句內容相關的相關資訊,僅儲存被修改的記錄。
    • Mixed:混合模式複製。Statement與Row的結合,一般的語句修改使用Statement格式(例如函數),Statement無法完成複製的操作,則採用Row格式儲存Binlog。MySQL會根據執行的每條SQL語句自主識別使用哪種格式。

使用限制

  • DataWorks的Data Integration即時同步MySQL資料是基於即時訂閱MySQL實現的,即時同步MySQL資料目前僅支援配置MySQL資料來源為RDS的5.x8.x版本的MySQL,請不要將DRDS的MySQL配置為MySQL資料來源,您可以參考配置DRDS資料來源文檔直接將其配置為DRDS資料來源。
  • 不支援XA ROLLBACK,針對已經XA PREPARE的交易資料,即時同步會將其同步到目標端,如果XA ROLLBACK,即時同步不會針對XA PREPARE的資料做復原寫入的操作。若要處理XA ROLLBACK情境,需要手動將XA ROLLBACK的表從即時同步任務中移除,再添加表後重新進行全量資料初始化以及增量即時同步。
  • 在添加MySQL資料來源時,若添加了其他阿里雲帳號下的MySQL執行個體,後續同步任務配置該資料來源時,僅支援使用獨享Data Integration資源群組運行該同步任務,公用資源群組無法訪問該資料來源中的資料。

操作步驟

  1. 配置白名單。
    將獨享資料資源群組所在的VPC網段添加至MySQL的白名單中,操作如下:
    1. 查看並記錄獨享資料資源群組所在的VPC網路。
      1. 登入DataWorks控制台
      2. 在左側導覽列,單擊資源群組列表
      3. 獨享資源群組頁簽下,單擊目標Data Integration資源群組後的查看資訊
      4. 複製對話方塊中的EIP地址網段至資料庫白名單。查看EIP地址和網段
      5. 獨享資源群組頁簽下,單擊目標Data Integration資源群組後的網路設定
      6. 專用網路綁定頁簽,查看交換器網段並將其添加至資料庫的白名單中。查看交換器網段
    2. 將上述步驟中記錄的獨享Data Integration資源群組的EIP地址和網段添加至MySQL叢集的白名單中。
  2. 建立帳號並配置帳號許可權。
    您需要規劃一個資料庫的登入帳號用於後續執行操作,此帳號需要擁有資料庫的 SELECT, REPLICATION SLAVE, REPLICATION CLIENT許可權。
    1. 建立帳號。
      操作詳情請參見建立MySQL帳號
    2. 配置許可權。
      您可以參考以下命令為帳號添加此許可權,或直接給帳號賦予SUPER許可權。如下執行語句在實際使用時,請替換'同步帳號'為上述建立的帳號。
      -- CREATE USER '同步帳號'@'%' IDENTIFIED BY '密碼'; //建立同步帳號並設定密碼,使其可以通過任意主機登入資料庫。%表示任意主機。
      GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '同步帳號'@'%'; //授權同步帳號資料庫的 SELECT, REPLICATION SLAVE, REPLICATION CLIENT許可權。
      *.*表示授權同步帳號對所有資料庫的所有表擁有上述許可權。您也可以指定授權同步帳號對目標資料庫的指定表擁有上述許可權。例如,授權同步帳號對test資料庫的user表擁有上述許可權,則可以使用GRANT SELECT, REPLICATION CLIENT ON test.user TO '同步帳號'@'%';語句。
      說明 REPLICATION SLAVE語句為全域許可權,不能指定授權同步帳號對目標資料庫的指定表擁有相關許可權。
  3. 開啟MySQL的Binlog。
    檢查Binlog是否開啟並查詢Binlog格式,操作如下:
    • 使用如下語句檢查Binlog是否開啟。
      show variables like "log_bin";

      返回結果為ON時,表明已開啟Binlog。

    • 如果您使用備用庫同步資料,則還可以通過如下語句檢查Binlog是否開啟。
      show variables like "log_slave_updates";

      返回結果為ON時,表明備用庫已開啟Binlog。

    如果返回的結果與上述結果不符,請參考《MySQL官方文檔》開啟Binlog。
    使用如下語句查詢Binlog的使用格式。
    show variables like "binlog_format";
    返回結果說明:
    • 返回ROW,表明開啟的Binlog格式為ROW
    • 返回STATEMENT,表明開啟的Binlog格式為STATEMENT
    • 返回MIXED,表明開啟的Binlog格式為MIXED

後續步驟

配置完成資料來源後,輸入資料來源、資源執行個體、輸出資料來源彼此間已可網路聯通,且不存在訪問限制。您可將輸入資料來源和輸出資料來源添加至DataWorks的資料來源列表中,便於後續建立資料同步方案時關聯輸入和輸出資料來源。添加資料來源操作可參見添加資料來源