DRDS到MaxCompute(原ODPS)数据归档性能优化测试
摘要:?cdp同步基本原理 數據集成(Data Integration)是阿里巴巴集團提供的數據同步平臺。該平臺具備可跨異構數據存儲系統、可靠、安全、低成本、可彈性擴展等特點,可為 20 多種數據源提供不同網絡環境下的離線(全量/增量)數據進出通道。
一、cdp同步基本原理
數據集成(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的方式
二、測試表準備:
通過RDS新建一張實際生產的表,數據量為一億行左右(主鍵為自增)
通過存儲結構插入數據(業務只需要天數是隨機的):
delimiter
delimiter
三、測試要求
通過mysqldump在DRDS新建導入的表,以天為分表鍵,分表鍵的值是隨機分布在3月1日-3月31日的。
將源表按分表鍵做拆分,1天拆成1個任務,并發向目標表里進行同步,同時目標表按天做分區,找到最佳并發量。
注意:分庫鍵的選擇為自增主鍵,不能是固定,否則hash的時候只落在一個庫里面,分表鍵也是隨機的日期,這樣數據就能均衡的分布在各個庫里面
四、具體實施步驟
1、將RDS的表導入到測試環境DRDS
mysqldump –urds_xncs_qps8 –p –P3306 –h 10.1.1.1 database test1 –t > /home/hy.sql
2、 將復制的表數據導入到DRDS
2.1、 通過mysql -udrds_uat_pcs –P3306 –h10.3.3.3 drds_uat_pcs -p < /home/hy.slq
2.2、 進入到目標表所在的數據庫,執行source /home/hy.sql
這兩種方式大同小異,第一種稍微快些,第二種會有過程在屏幕上展示。習慣用第二種
在剛開始導入的時候會一些報錯,但是對實際的導入不會影響
3、具體測試
數據量:
| count(*) |
| 78322075 |
1、 一個工作流,分十個同步任務執行,
每個同步任務where條件對應3天,每一個同步任務對應一個分區,共10個分區
最大速率上線10M/s,
結構圖:
各個任務耗時:
1、========================================================================
任務啟動時刻 : 2018-03-28 11:47:15 任務結束時刻 : 2018-03-28 11:57:28 任務總計耗時 : 612s 任務平均流量 : 1.69MB/s 記錄寫入速度 : 20753rec/s 讀出記錄總數 : 12638734 讀寫失敗總數 : 0
2、========================================================================
任務啟動時刻 : 2018-03-28 11:47:15 任務結束時刻 : 2018-03-28 11:56:18 任務總計耗時 : 543s 任務平均流量 : 1.14MB/s 記錄寫入速度 : 14038rec/s 讀出記錄總數 : 7580943 讀寫失敗總數 : 0
3、========================================================================
任務啟動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:56:23 任務總計耗時 : 545s 任務平均流量 : 1.14MB/s 記錄寫入速度 : 14004rec/s 讀出記錄總數 : 7576202 讀寫失敗總數 : 0
4、========================================================================
任務啟動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:56:26 任務總計耗時 : 548s 任務平均流量 : 1.13MB/s 記錄寫入速度 : 13933rec/s 讀出記錄總數 : 7579645 讀寫失敗總數 : 0
5、========================================================================
任務啟動時刻 : 2018-03-28 11:47:10 任務結束時刻 : 2018-03-28 11:56:17 任務總計耗時 : 546s 任務平均流量 : 1.14MB/s 記錄寫入速度 : 13979rec/s 讀出記錄總數 : 7576799 讀寫失敗總數 : 0
6、========================================================================
任務啟動時刻 : 2018-03-28 11:47:15 任務結束時刻 : 2018-03-28 11:56:28 任務總計耗時 : 553s 任務平均流量 : 1.12MB/s 記錄寫入速度 : 13774rec/s 讀出記錄總數 : 7575981 讀寫失敗總數 : 0
7、========================================================================
任務啟動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:56:18 任務總計耗時 : 541s 任務平均流量 : 1.15MB/s 記錄寫入速度 : 14115rec/s 讀出記錄總數 : 7579924 讀寫失敗總數 : 0
8、========================================================================
任務啟動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:56:18 任務總計耗時 : 541s 任務平均流量 : 1.15MB/s 記錄寫入速度 : 14115rec/s 讀出記錄總數 : 7579924 讀寫失敗總數 : 0
9、========================================================================
任務啟動時刻 : 2018-03-28 11:47:15 任務結束時刻 : 2018-03-28 11:56:27 任務總計耗時 : 551s 任務平均流量 : 1.13MB/s 記錄寫入速度 : 13856rec/s 讀出記錄總數 : 7579604 讀寫失敗總數 : 0
10、========================================================================
任務啟動時刻 : 2018-03-28 11:47:17 任務結束時刻 : 2018-03-28 11:55:20 任務總計耗時 : 482s 任務平均流量 : 877.38KB/s 記錄寫入速度 : 10522rec/s 讀出記錄總數 : 5050713 讀寫失敗總數 : 0
整體耗時:630秒
2、 一個工作流,分五個同步任務執行,
每個同步任務where條件對應6天,每一個同步任務對應一個分區,共5個分區
最大速率上線10M/s,
結構圖:
任務同步耗時:
1、========================================================================
任務啟動時刻 : 2018-03-28 14:27:49 任務結束時刻 : 2018-03-28 14:37:42 任務總計耗時 : 593s 任務平均流量 : 2.09MB/s 記錄寫入速度 : 25605rec/s 讀出記錄總數 : 15158472 讀寫失敗總數 : 0
2、========================================================================
任務啟動時刻 : 2018-03-28 14:27:53 任務結束時刻 : 2018-03-28 14:37:36 任務總計耗時 : 583s 任務平均流量 : 2.12MB/s 記錄寫入速度 : 26093rec/s 讀出記錄總數 : 15160230 讀寫失敗總數 : 0
3、========================================================================
任務啟動時刻 : 2018-03-28 14:27:43 任務結束時刻 : 2018-03-28 14:37:33 任務總計耗時 : 589s 任務平均流量 : 2.10MB/s 記錄寫入速度 : 25775rec/s 讀出記錄總數 : 15156082 讀寫失敗總數 : 0
4、========================================================================
任務啟動時刻 : 2018-03-28 14:27:45 任務結束時刻 : 2018-03-28 14:37:36 任務總計耗時 : 591s 任務平均流量 : 2.10MB/s 記錄寫入速度 : 25729rec/s 讀出記錄總數 : 15154873 讀寫失敗總數 : 0
5、========================================================================
任務啟動時刻 : 2018-03-28 14:27:43 任務結束時刻 : 2018-03-28 14:38:01 任務總計耗時 : 617s 任務平均流量 : 2.34MB/s 記錄寫入速度 : 28768rec/s 讀出記錄總數 : 17692418 讀寫失敗總數 : 0
整體耗時:629秒
3、 一個工作流,分十五個同步任務執行,
每個同步任務where條件對應2天,每一個同步任務對應一個分區,共15個分區
最大速率上線10M/s,
結構圖:
總體耗時:623秒
4、 一個工作流,分一個同步任務執行
最大速率上線10M/s,
結構圖:
同步任務耗時:
任務啟動時刻 : 2018-03-28 15:42:05 任務結束時刻 : 2018-03-28 15:57:16 任務總計耗時 : 910s 任務平均流量 : 7.02MB/s 記錄寫入速度 : 86257rec/s 讀出記錄總數 : 78322075 讀寫失敗總數 : 0
總耗時:928秒
5、 一個工作流,分三個同步任務執行
最大速率上線10M/s,
結構圖:
總耗時:699秒
6、 一個工作流,分四個同步任務執行
最大速率上線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秒初步結論:
在并發為5、10、15的情況下,同步數據的速率基本沒有變化630秒左右,在并發為1、2、3、4的情況下,速率由930秒提升到630秒左右,從而可以得出結論,在并發為5的情況下,同步速率已經達到最大,再增加并發對于速率的增加效果不明顯。
原文鏈接
干貨好文,請關注掃描以下二維碼:
總結
以上是生活随笔為你收集整理的DRDS到MaxCompute(原ODPS)数据归档性能优化测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云OCR证件识别商业化发布,减少人工
- 下一篇: 2018年云栖社区值得订阅的11个精选技