日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DRDS到MaxCompute(原ODPS)数据归档性能优化测试

發布時間:2024/8/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

dropprocedurehuayu2;CREATEPROCEDUREhuayu2()begindeclarevarint;setvar=0;whilevar<100000000doinsertintotpcsbillrecievehuayutestselectnull,1234567,210025002110010114117029000016,0,null,0,null,null,null,0,0,null,null,0,null,null,null,21100101,null,null,null,null,null,null,null,21002500,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,CONCAT(2018,?,03,?,LPAD(FLOOR(1+(RAND()?31)),2,0),′′,14:54:04),null,null,2017?11?1014:54:04,null,null,null,2,4,null,null,null,null,null,0,null,null,null,null,null;setvar=var+1;endwhile;enddropprocedurehuayu2;CREATEPROCEDUREhuayu2()begindeclarevarint;setvar=0;whilevar<100000000doinsertintotpcsbillrecievehuayutestselectnull,1234567,210025002110010114117029000016,0,null,0,null,null,null,0,0,null,null,0,null,null,null,21100101,null,null,null,null,null,null,null,21002500,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,CONCAT(2018,′?′,′03′,′?′,LPAD(FLOOR(1+(RAND()?31)),2,0),″,′14:54:04′),null,null,′2017?11?1014:54:04′,null,null,null,2,4,null,null,null,null,null,0,null,null,null,null,null;setvar=var+1;endwhile;end

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

這里加上了-t參數,目的是不備份表的結構,這樣做的好處是,導入到DRDS的時候,在DRDS端建一個相同名字的數據庫,并且可以自定義分庫分表鍵,這樣就省略了再次去修改備份的.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、具體測試
數據量:

mysql> select count(*) from t_pcs_bill_recieve_huayutest ;
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秒

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


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,
結構圖:

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

總體耗時: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)数据归档性能优化测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。