DRDS到MaxCompute(原ODPS)數據歸檔性能優化測試

摘要: cdp同步基本原理 數據集成(Data Integration)是阿里巴巴集團提供的數據同步平臺。該平臺具有可跨異構數據存儲系統、可靠、安全、低成本、可彈性擴展等特色,可爲 20 多種數據源提供不一樣網絡環境下的離線(全量/增量)數據進出通道。mysql

 

1、cdp同步基本原理sql

 

數據集成(Data Integration)是阿里巴巴集團提供的數據同步平臺。該平臺具有可跨異構數據存儲系統、可靠、安全、低成本、可彈性擴展等特色,可爲 20 多種數據源提供不一樣網絡環境下的離線(全量/增量)數據進出通道。數據源類型的詳情請參見 支持數據源類型。數據庫

 

數據集成的原理:安全

數據集成在阿里雲上提供一套分佈式離線數據同步平臺,同時提供一套抽象化的數據抽取插件(稱之爲Reader)、數據寫入插件(稱之爲Writer),並基於此框架設計一套簡化版的中間數據傳輸格式,從而達到任意結構化、半結構化數據源之間數據傳輸之目的。從用戶角度來看,一個數據集成同步任務運行Job示意圖以下所示:服務器

 

上述中,紅色虛箭頭是表明經過collector狀態收集器監控數據返回到髒數據管理服務器進行數據分析,灰色方向箭頭表明數據流向。DI Service主要是包含資源管理器、Job管理器、髒數據管理器、分佈式服務、鑑權服務等。Job Container主要是將數據集成運行任務分紅若干個task,而後經過scheduler調度管理。TaskGroup Container主要是數據抽取經過數據通道(channel)將數據寫入。網絡

 

• 使用數據集成Job啓動API,向數據集成服務端發起調用,提交一個離線數據同步Job。併發

• 數據集成收到Job API請求後,將負責作必要的安全和權限校驗,待校驗經過後,數據集成會下發相應的Job到執行集羣節點啓動離線數據同步任務。框架

• Job啓動後,根據您提供的源端(Reader)、目的端(Writer)的配置信息,加載並初始化相關插件,鏈接兩端數據源,開始數據同步工做。分佈式

• Job運行過程當中,將隨心跳向數據集成彙報當前進度、速度、數據量等關鍵運行指標,可根據Job的狀態API實時獲取該Job運行狀態,直至Job運行結束(成功或者失敗)。測試

 

流程概述

 

步驟1:數據源端新建表。

步驟2:新增數據源。

步驟3:嚮導模式或腳本模式配置同步任務。

步驟4:運行同步任務,檢查目標端的數據質量。

 

由於DRDS不支持存儲過程,造一張實際生產的表有些複雜,因此採用經過RDS建立表數據,再導入到DRDS的方式

 

2、測試表準備:

 

經過RDS新建一張實際生產的表,數據量爲一億行左右(主鍵爲自增)

經過存儲結構插入數據(業務只須要天數是隨機的):

delimiter

dropprocedurehuayu2;CREATEPROCEDUREhuayu2()begindeclarevarint;setvar

delimiter

 

3、測試要求

 

經過mysqldump在DRDS新建導入的表,以天爲分表鍵,分表鍵的值是隨機分佈在3月1日-3月31日的。

 

將源表按分表鍵作拆分,1天拆成1個任務,併發向目標表裏進行同步,同時目標表按天作分區,找到最佳併發量。

 

注意:分庫鍵的選擇爲自增主鍵,不能是固定,不然hash的時候只落在一個庫裏面,分表鍵也是隨機的日期,這樣數據就能均衡的分佈在各個庫裏面

 

4、具體實施步驟

 

一、將RDS的表導入到測試環境DRDS

mysqldump –urds_xncs_qps8 –p –P3306 –h 10.1.1.1 database test1 –t > /home/hy.sql

 

這裏加上了-t參數,目的是不備份表的結構,這樣作的好處是,導入到DRDS的時候,在DRDS端建一個相同名字的數據庫,而且能夠自定義分庫分表鍵,這樣就省略了再次去修改備份的.sql文件而達到分庫分表的目的。固然,若是隻是須要一個單表,那就複製表結構跟數據就行了

二、 將複製的表數據導入到DRDS

 

2.一、 經過mysql -udrds_uat_pcs –P3306 –h10.3.3.3 drds_uat_pcs -p < /home/hy.slq

 

2.二、 進入到目標表所在的數據庫,執行source /home/hy.sql

這兩種方式大同小異,第一種稍微快些,第二種會有過程在屏幕上展現。習慣用第二種

在剛開始導入的時候會一些報錯,可是對實際的導入不會影響

 

三、具體測試

數據量:

mysql> select count(*) from t_pcs_bill_recieve_huayutest ;
count(*)
78322075

 

一、 一個工做流,分十個同步任務執行,

每一個同步任務where條件對應3天,每個同步任務對應一個分區,共10個分區

最大速率上線10M/s,

結構圖:

各個任務耗時:

一、========================================================================

任務啓動時刻 : 2018-03-28 11:47:15 任務結束時刻 : 2018-03-28 11:57:28 任務總計耗時 : 612s 任務平均流量 : 1.69MB/s 記錄寫入速度 : 20753rec/s 讀出記錄總數 : 12638734 讀寫失敗總數 : 0

二、========================================================================

任務啓動時刻 : 2018-03-28 11:47:15 任務結束時刻 : 2018-03-28 11:56:18 任務總計耗時 : 543s 任務平均流量 : 1.14MB/s 記錄寫入速度 : 14038rec/s 讀出記錄總數 : 7580943 讀寫失敗總數 : 0

三、========================================================================

任務啓動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:56:23 任務總計耗時 : 545s 任務平均流量 : 1.14MB/s 記錄寫入速度 : 14004rec/s 讀出記錄總數 : 7576202 讀寫失敗總數 : 0

四、========================================================================

任務啓動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:56:26 任務總計耗時 : 548s 任務平均流量 : 1.13MB/s 記錄寫入速度 : 13933rec/s 讀出記錄總數 : 7579645 讀寫失敗總數 : 0

五、========================================================================

任務啓動時刻 : 2018-03-28 11:47:10 任務結束時刻 : 2018-03-28 11:56:17 任務總計耗時 : 546s 任務平均流量 : 1.14MB/s 記錄寫入速度 : 13979rec/s 讀出記錄總數 : 7576799 讀寫失敗總數 : 0

六、========================================================================

任務啓動時刻 : 2018-03-28 11:47:15 任務結束時刻 : 2018-03-28 11:56:28 任務總計耗時 : 553s 任務平均流量 : 1.12MB/s 記錄寫入速度 : 13774rec/s 讀出記錄總數 : 7575981 讀寫失敗總數 : 0

七、========================================================================

任務啓動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:56:18 任務總計耗時 : 541s 任務平均流量 : 1.15MB/s 記錄寫入速度 : 14115rec/s 讀出記錄總數 : 7579924 讀寫失敗總數 : 0

八、========================================================================

任務啓動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:56:18 任務總計耗時 : 541s 任務平均流量 : 1.15MB/s 記錄寫入速度 : 14115rec/s 讀出記錄總數 : 7579924 讀寫失敗總數 : 0

九、========================================================================

任務啓動時刻 : 2018-03-28 11:47:15 任務結束時刻 : 2018-03-28 11:56:27 任務總計耗時 : 551s 任務平均流量 : 1.13MB/s 記錄寫入速度 : 13856rec/s 讀出記錄總數 : 7579604 讀寫失敗總數 : 0

十、========================================================================

任務啓動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:55:20 任務總計耗時 : 482s 任務平均流量 : 877.38KB/s 記錄寫入速度 : 10522rec/s 讀出記錄總數 : 5050713 讀寫失敗總數 : 0

總體耗時:630秒

 

![image](https://yqfile.alicdn.com/8d8f3acb4098f6860aa698d56277bcdbf9c4f975.png)

 

二、 一個工做流,分五個同步任務執行,

每一個同步任務where條件對應6天,每個同步任務對應一個分區,共5個分區

最大速率上線10M/s,

 

結構圖:

任務同步耗時:

一、========================================================================

任務啓動時刻 : 2018-03-28 14:27:49 任務結束時刻 : 2018-03-28 14:37:42 任務總計耗時 : 593s 任務平均流量 : 2.09MB/s 記錄寫入速度 : 25605rec/s 讀出記錄總數 : 15158472 讀寫失敗總數 : 0

二、========================================================================

任務啓動時刻 : 2018-03-28 14:27:53 任務結束時刻 : 2018-03-28 14:37:36 任務總計耗時 : 583s 任務平均流量 : 2.12MB/s 記錄寫入速度 : 26093rec/s 讀出記錄總數 : 15160230 讀寫失敗總數 : 0

三、========================================================================

任務啓動時刻 : 2018-03-28 14:27:43 任務結束時刻 : 2018-03-28 14:37:33 任務總計耗時 : 589s 任務平均流量 : 2.10MB/s 記錄寫入速度 : 25775rec/s 讀出記錄總數 : 15156082 讀寫失敗總數 : 0

四、========================================================================

任務啓動時刻 : 2018-03-28 14:27:45 任務結束時刻 : 2018-03-28 14:37:36 任務總計耗時 : 591s 任務平均流量 : 2.10MB/s 記錄寫入速度 : 25729rec/s 讀出記錄總數 : 15154873 讀寫失敗總數 : 0

五、========================================================================

任務啓動時刻 : 2018-03-28 14:27:43 任務結束時刻 : 2018-03-28 14:38:01 任務總計耗時 : 617s 任務平均流量 : 2.34MB/s 記錄寫入速度 : 28768rec/s 讀出記錄總數 : 17692418 讀寫失敗總數 : 0

總體耗時:629秒

三、 一個工做流,分十五個同步任務執行,

每一個同步任務where條件對應2天,每個同步任務對應一個分區,共15個分區

最大速率上線10M/s,

結構圖:

![image](https://yqfile.alicdn.com/068c1c56b16baa1c3cc270eb286f7d46ff1a8990.png)

 

整體耗時:623秒

 

四、 一個工做流,分一個同步任務執行

最大速率上線10M/s,

結構圖:

同步任務耗時:

任務啓動時刻 : 2018-03-28 15:42:05 任務結束時刻 : 2018-03-28 15:57:16 任務總計耗時 : 910s 任務平均流量 : 7.02MB/s 記錄寫入速度 : 86257rec/s 讀出記錄總數 : 78322075 讀寫失敗總數 : 0

總耗時:928秒

 

五、 一個工做流,分三個同步任務執行

最大速率上線10M/s,

結構圖:

總耗時:699秒

 

六、 一個工做流,分四個同步任務執行

最大速率上線10M/s,

結構圖:

總耗時:672秒

測試結果:

併發數 10 5 15 1 3 4 總耗時 630秒 629秒 623秒 928秒 699秒 672秒 併發數 1 3 4 5 10 15 總耗時 928秒 699秒 672秒 629秒 630秒 623秒

初步結論:

在併發爲五、十、15的狀況下,同步數據的速率基本沒有變化630秒左右,在併發爲一、二、三、4的狀況下,速率由930秒提高到630秒左右,從而能夠得出結論,在併發爲5的狀況下,同步速率已經達到最大,再增長併發對於速率的增長效果不明顯。

 

原文連接

閱讀更多幹貨好文,請關注掃描如下二維碼:

相關文章
相關標籤/搜索