閱讀906 返回首頁    go 小米MIX


RDS到DataHub數據實時同步__實時同步_用戶指南_數據傳輸-阿裏雲

本小節介紹如何使用數據傳輸服務DTS快速配置RDS實例到DataHub實例間的數據實時同步作業,讓數據可以進入流計算等大數據產品進行數據實時分析。

支持功能

  • 支持同一個阿裏雲賬號下RDS MySQL實例到DataHub實例的數據實時同步。
  • 支持不同阿裏雲賬號下的RDS MySQL實例到DataHub實例的數據實時同步。
  • 支持的RDS實例包括,經典網絡和VPC網絡兩種網絡模式。

同步對象

  • 隻支持表的同步,不支持其他非表對象的同步。

同步原理

技術原理

如上圖所示,RDS->DataHub數據實時同步,是將RDS MySQL產生的增量數據數據實時同步到Datahub中的topic。增量日誌DataHub中存儲的表名默認同RDS表同名。topic名稱可以根據業務需要修改,您可以在配置任務時,修改表在DataHub中對應的topic名稱。

topic除了存儲更新數據,它還會存儲一些元信息,topic的結構定義如下:

dts_record_id dts_instance_id dts_db_name dts_table_name dts_operation_flag dts_utc_timestamp dts_before_flag dts_after_flag dts_col1 …. dts_colN
1 234 db1 sbtest1 I 1476258462 N Y 1 ….. JustInsert
2 234 db1 sbtest1 U 1476258463 Y N 1 ….. JustInsert
2 234 db1 sbtest1 U 1476258463 N Y 1 ….. JustUpdate
3 234 db1 sbtest1 D 1476258464 Y N 1 ….. JustUpdate

其中:
dts_record_id: 這條增量日誌的唯一標識,唯一遞增。如果變更類型為update,那麼增量更新會被拆分成2條,一條Insert,一條Delete。那麼這兩條記錄的record_id相同。
dts_instance_id: 這條增量日誌所對應的數據庫的server id。
dts_db_name: 這條增量更新日誌更新的表所在的數據庫庫名。
dts_table_name:這條增量更新日誌更新的表。
dts_operation_flag: 標示這條增量日誌的操作類型。取值包括:
I : insert 操作
D : delete 操作
U : update 操作

dts_utc_timestamp: 這條增量日誌的操作時間戳,為這個更新操作記錄binlog的時間戳。這個時間戳為UTC時間。
dts_before_flag: 表示這條增量日誌後麵帶的各個column值是否更新前的值。取值包括:Y 和 N。當後麵的column為更新前的值時,dts_before_flag=Y, 當後麵的column值為更新後的值時,dts_before_flag=N.
dts_after_flag:表示這條增量日誌後麵帶的各個column值是否更新後的值。取值包括:Y 和 N。 當後麵的column為更新前的值時,dts_after_flag=N,當後麵的column值為更新後的值時,dts_after_flag=Y.

對於不同的操作類型,增量日誌中的dts_before_flag和dts_after_flag定義如下:

1) 操作類型為:insert

dts_record_id dts_instance_id dts_db_name dts_table_name dts_operation_flag dts_utc_timestamp dts_before_flag dts_after_flag dts_col1 …. dts_colN
1 234 db1 sbtest1 I 1476258462 N Y 1 ….. JustInsert

當操作類型為insert時,後麵的所有column值為新插入的記錄值,即為更新後的值。所以before_flag=N, after_flag=Y

2) 操作類型為:update

dts_record_id dts_instance_id dts_db_name dts_table_name dts_operation_flag dts_utc_timestamp dts_before_flag dts_after_flag dts_col1 …. dts_colN
2 234 db1 sbtest1 I 1476258463 Y N 1 ….. JustInsert
2 234 db1 sbtest1 I 1476258463 N Y 1 ….. JustUpdate

當操作類型為update時,會將update操作拆為2條增量日誌。這兩條增量日誌的dts_record_id ,dts_operation_flag 及dts_utc_timestamp相同。
第一條日誌記錄了更新前的值,所以dts_before_flag=Y, dts_after_flag=N
第二條日誌記錄了更新後的值,所以dts_before_flag=N, dts_after_flag=Y

3) 操作類型為:delete

dts_record_id dts_instance_id dts_db_name dts_table_name dts_operation_flag dts_utc_timestamp dts_before_flag dts_after_flag dts_col1 …. dts_colN
3 234 db1 sbtest1 D 1476258464 Y N 1 ….. JustUpdate

當操作類型為delete時,後麵的所有column值為被刪除的記錄值,即為更新前的值。所以dts_before_flag=Y, dts_after_flag=N

下麵詳細介紹RDS到Datahub數據實時同步作業的配置流程。

同步作業配置流程

下麵詳細介紹RDS到Datahub數據實時同步作業的配置流程。

1.購買同步鏈路

進入數據傳輸服務控製台,進入數據同步頁麵,點擊控製台右上角“創建同步作業” 開始作業配置。

在鏈路配置之前需要購買一個同步鏈路。同步鏈路目前支持包年包月及按量付費兩種付費模式,可以根據需要選擇不同的付費模式。

在購買頁麵需要配置的參數包括:

  • 源實例
    同步作業的源實例類型,目前隻支持RDS For MySQL.
  • 源地域
    源地域為同步實例的源RDS實例所在地域。
  • 目標實例
    目標實例為同步作業的目標實例類型,目前支持 RDS For MySQL, MaxCompute(原ODPS),DataHub。配置RDS->MaxCompute同步鏈路時,目標實例選擇:Datahub 即可。
  • 目標地域
    由於Datahub目前隻在上海地區售賣,所以目標地域選擇杭州。
  • 實例規格
    實例規格影響了鏈路的同步性能,可以根據業務性能選擇合適的規則。
  • 網絡類型
    RDS->Datahub支持通過公網、私網 同步數據。如果源RDS沒有公網連接地址,那麼網絡類型隻能選擇 私網
  • 數量
    數量為一次性購買的同步鏈路的數量,如果購買的是按量付費實例,一次最多購買99條鏈路。

當購買完同步實例,返回數據傳輸控製台,點擊新購鏈路右側的“配置同步作業” 開始鏈路配置。

2.同步鏈路連接信息配置。

在這一步主要配置:

  • 同步作業名稱
    同步作業名稱沒有唯一性要求,主要為了更方便識別具體的作業,建議選擇一個有業務意義的作業名稱,方便後續的鏈路查找及管理。

  • 實例ID配置

在這個步驟中需要配置源RDS實例的實例ID,及目標Datahub實例的project。配置的Datahub project 必須屬於登錄DTS的阿裏雲賬號的資源。

步驟1

當這些內容配置完成後,可以點擊授權白名單並進入下一步

2.授權RDS實例白名單。

這個步驟,主要是將給DTS服務器IP地址添加到RDS實例白名單中,讓DTS能夠訪問RDS實例。
當授權完成後,即進入同步對象選擇。

3.選擇同步對象

當RDS實例白名單添加完成後,即進入同步表及同步初始化的相關配置。

配置步驟2

在這個步驟中,需要配置 同步初始化 和 同步表。其中:
(1)同步初始化
同步初始化選項包括: 結構初始化
結構初始化是指對於待同步的表,在Datahub中創建對應的topic,完成topic schema定義。建議選擇結構初始化。

(2) 同步表選擇

同步表隻能選擇某些表,不能直接選擇整個庫。對於同步的表,可以修改topic名稱,選擇對應的shard key。如需修改,可以點擊右邊已選擇對象後麵的編輯按鈕,進入修改界麵。

當配置完同步對象後,進入同步啟動前的預檢查階段。

5.預檢查

當上麵所有選項配置完成後,即進入啟動之前的預檢查。具體檢查項內容詳見本文最後的 預檢查內容 一節
當同步作業配置完成後,數據傳輸服務會進行限製預檢查,當預檢查通過後,可以點擊 確定 按鈕,啟動同步作業。

當同步作業啟動之後,即進入同步作業列表。此時剛啟動的作業處於同步初始化狀態。初始化的時間依賴於同步表的數量大小。當初始化完成後同步鏈路即進入同步中的狀態,此時源跟目標實例的同步鏈路才真正建立完成。

當同步任務進入 同步中 時,可以在Datahub中可以查詢出同步表對應的topic:

至此,完成RDS->Datahub數據實時同步作業的配置。
當同步作業建立成功後,可以到流式計算中注冊Datahub topic,同時創建流式源表,對於同步到Datahub中的數據進行後續的實時數據計算分析。

最後更新:2016-11-23 16:27:32

  上一篇:go 創建RDS到MaxCompute數據實時同步作業__實時同步_用戶指南_數據傳輸-阿裏雲
  下一篇:go 新增同步對象__實時同步_用戶指南_數據傳輸-阿裏雲