天天看點

【最佳實踐】DTS輕松實作RDS for MySQL與阿裡雲Elasticsearch資料實時同步

簡介:

本文介紹如何使用 DTS 快速建立RDS for MySQL->阿裡雲Elasticsearch的實時同步作業,實作RDS for MySQL資料到阿裡雲Elasticsearch的實時同步。

本文字數: 2239

閱讀時間: 5~8分鐘

您将了解

1、支援實時同步的類型

2、支援SQL操作的類型

3、配置步驟

以下是正文

資料傳輸服務 DTS

(以下簡稱 DTS)

支援RDS for MySQL與阿裡雲Elasticsearch實時同步資料,通過 DTS 提供的 RDS for MySQL->阿裡雲Elasticsearch實時同步功能,可以将企業線上RDS for MySQL中的生産資料實時同步到阿裡雲Elasticsearch中進行搜尋。

支援實時同步類型

同一個阿裡雲賬号下 RDS for MySQL->阿裡雲Elasticsearch執行個體。

支援SQL操作類型

主要支援的SQL操作類型如下:

  • Inset
  • Delete
  • Update
說明 目前暫不支援 DDL同步,如果同步過程中遇到DDL操作,DTS會忽略掉。

如果後續遇到DDL某個表,則對應表的DML操作可能失敗,修複方法為:

  1. 參考減少同步對象先将這個對象從同步清單中摘除。
  2. 删除阿裡雲Elasticsearch中這個表對應的索引。
  3. 參考 新增同步對象, 修改這個同步作業,将這個表重新添加到同步對象中,進行重新初始化。

如果是修改表、新增列的DDL,建議DDL的操作順序為:

  1. 先在阿裡雲Elasticsearch中手動修改對應表的mapping,新增列。
  2. 再在源RDS for MySQL執行個體中手動修改表結構,新增列。
  3. 暫停DTS同步執行個體,重新開機DTS同步執行個體讓DTS重新加載阿裡雲Elasticsearch中修改後的mapping關系。

配置步驟

下面詳細介紹建立RDS for MySQL執行個體到阿裡雲Elasticsearch執行個體同步鍊路的具體步驟。

  1. 購買同步鍊路

    進入

    資料傳輸服務 DTS控制台 ,進入資料同步界面,點選控制台右上角建立同步作業先購買一個同步鍊路,購買完同步鍊路後傳回DTS控制台,進行配置同步鍊路。
說明:在配置同步鍊路之前需要先購買一個同步鍊路,同步鍊路目前支援包年包月及按量付費兩種付費模式,可以根據需要選擇不同的付費模式。
購買界面參數
  • 功能

    選擇資料同步

  • 源執行個體

    選擇MySQL

  • 源執行個體地域

    本示例為RDS for MySQL,需選擇RDS for MySQL執行個體所在地域。

  • 目标執行個體

    選擇Elasticsearch

  • 地域阿裡雲Elasticsearch執行個體所在地域,訂閱後不支援更換地域,請謹慎選擇。
  • 同步拓撲

    選擇單項同步

  • 網絡類型

    預設為專線,目前僅支援專線模式

  • 同步鍊路規格

    同步鍊路規格影響了鍊路的同步性能,同步鍊路規格跟性能之間的對應關系詳見

    資料同步規格說明。
  • 訂購時長

    如果是預付費,預設為1個月,支援勾選開啟自動續費功能。

  • 購買數量

    預設為1,根據業務實際需要進行選擇。

說明 DTS控制台的同步執行個體按照地域展示,剛才購買的同步執行個體所屬的地域為同步執行個體的目标地域。例如上面購買的是 杭州RDS for MySQL->杭州阿裡雲Elasticsearch的同步執行個體,那麼這個同步執行個體在DTS的杭州地區。進入杭州區域的執行個體清單,查找剛才購買的同步執行個體,然後點選新購執行個體右側的 配置同步作業開始配置執行個體。
  1. 配置同步鍊路
    【最佳實踐】DTS輕松實作RDS for MySQL與阿裡雲Elasticsearch資料實時同步

同步作業名稱

同步作業名稱沒有唯一性要求,為了更友善識别具體的作業,建議選擇一個有業務意義的作業名稱,友善後續的鍊路查找及管理。、

源執行個體資訊

本示例采用資料源為 RDS for MySQL,需要配置RDS執行個體的ID、資料庫賬号、資料庫密碼。

【最佳實踐】DTS輕松實作RDS for MySQL與阿裡雲Elasticsearch資料實時同步

目标執行個體資訊

目标執行個體資訊中需要配置阿裡雲Elasticsearch的執行個體ID,及通路阿裡雲ES執行個體賬号密碼

【最佳實踐】DTS輕松實作RDS for MySQL與阿裡雲Elasticsearch資料實時同步

以上内容配置完成後,點選授權白名單并進入下一步進行RDS for MySQL及阿裡雲Elasticsearch的白名單添加。

  1. 授權執行個體白名單
說明 如果是RDS for MySQL,DTS會自動添加白名單或安全組。

如果源執行個體為RDS for MySQL,那麼DTS将自身的IP段添加到RDS執行個體的白名單的安全組中,避免因為RDS執行個體設定了白名單,DTS伺服器連接配接不上資料庫導緻同步作業建立失敗。為了保證同步作業的穩定性,在同步過程中,請勿将這些伺服器 IP 從 RDS執行個體的白名單的安全組中删除。

當白名單授權後,點選下一步,進入同步賬号建立。

  1. 選擇同步對象

    當白名單授權完成後,即進入同步對象的選擇步驟。在這個步驟可以配置需要同步的表列,以及索引的命名規則。

  2. 索引名稱命名規則可以選擇:表名、庫名_表名。
  • 如果選擇了表名,那麼索引名稱同表名。
  • 如果選擇了庫名表名,那麼索引名稱的命名格式為:庫名表名。例如,庫名為:dbtest,表名為:sbtest1,那麼這張表同步到阿裡雲Elasticsearch後,對應的索引名稱為:dbtest_sbtest1。
  • 如果需要同步的不同庫中存在相同名稱的表名,建議索引名稱命名規則選擇:庫名_表名。
  1. 選擇具體需要同步的庫表列,實時同步的同步對象的選擇粒度可以支援到表級别,即使用者可以選擇同步某些庫或某幾張表。

    實時同步的同步對象的選擇粒度可以支援到表級别,即使用者可以選擇同步某些庫或某幾張表。

【最佳實踐】DTS輕松實作RDS for MySQL與阿裡雲Elasticsearch資料實時同步
  1. 預設所有表的docid為表的主鍵,如果部分表沒有主鍵,那麼對于這部配置設定置docid 對應的源表的列。在右側-已選擇對象 框中,将滑鼠挪到對應表上,點選右側的 編輯 入口,進入這個表的進階設定界面。
【最佳實踐】DTS輕松實作RDS for MySQL與阿裡雲Elasticsearch資料實時同步
  1. 在進階配置中可以設定:

    索引名稱、Type名稱、分區列及分區數定義、_id取值列。其中 _id 取值如果選擇 業務主鍵,那麼需要選擇對應的業務主鍵列。

e.配置完同步對象後,進入進階配置步驟。

  1. 進階配置

    主要配置

a. 同步初始化類型,建議選擇 結構初始化+全量資料初始化,由DTS自動進行索引的建立及全量資料的初始化。如果不選擇結構初始化,那麼需要在同步建立之前,先手動在阿裡雲Elasticsearch中完成索引mapping的定義。如果不選擇全量資料初始化,那麼DTS同步增量資料的起始時間點為:啟動同步的時間點。

b. 索引分片配置,預設為5個分片,1個副本。可以根據業務需要進行調整,一旦調整後,所有的索引按照這個配置定義分片。

c.字元串analyzer定義,可以選擇字元串的analyzer,預設為Standard Analyzer。取值包括:Standard Analyzer、Simple Analyzer、Whitespace Analyzer、Stop Analyzer、Keyword Analyzer、English Analyzer、Fingerprint Analyzer,所有索引的字元串字段按照這個配置定義Analyzer。

【最佳實踐】DTS輕松實作RDS for MySQL與阿裡雲Elasticsearch資料實時同步

d. 時區,可以配置同步到阿裡雲Elasticsearch中的時間字段存儲的時區,預設為東八區。

  1. 預檢查同步作業配置完成後,DTS會進行預檢查,當預檢查通過後,可以點選 啟動 按鈕,啟動同步作業。

    同步作業啟動後,即進入同步作業清單,此時剛啟動的作業處于同步初始化狀态。初始化的時間長度取決于源執行個體中同步對象的資料量大小,初始化完成後,同步鍊路即進入同步中的狀态,此時源跟目标執行個體的同步鍊路才真正建立。

  2. 資料效驗以上任務完執行成後,登入阿裡雲ES控制台,确認對應阿裡雲ES執行個體中有無建立對應索引,及同步的資料是否符合預期。

加入我們

【最佳實踐】DTS輕松實作RDS for MySQL與阿裡雲Elasticsearch資料實時同步

【雲上ELK雙11限時優惠】

  • 新購使用者,預付首月 75折
  • 新購/續購/更新使用者,預付6個月85折
  • 新購/續購/更新使用者,預付12個月8折

2019年阿裡雲雲栖大會上,Elasticsearch背後的商業公司Elastic與阿裡雲Elasticsearch确定戰略合作更新,在100%相容開源的基礎上,完成了ELK的完整生态雲上閉環,歡迎開通使用。

點選了解更多産品資訊