[發(fā)明專(zhuān)利]一種流式數(shù)據(jù)處理自適應(yīng)速率控制方法有效
| 申請(qǐng)?zhí)枺?/td> | 201710011464.6 | 申請(qǐng)日: | 2017-01-09 |
| 公開(kāi)(公告)號(hào): | CN106648904B | 公開(kāi)(公告)日: | 2020-06-12 |
| 發(fā)明(設(shè)計(jì))人: | 申彥明;李曉東 | 申請(qǐng)(專(zhuān)利權(quán))人: | 大連理工大學(xué) |
| 主分類(lèi)號(hào): | G06F9/50 | 分類(lèi)號(hào): | G06F9/50;G06F16/2455;G06F16/182 |
| 代理公司: | 大連理工大學(xué)專(zhuān)利中心 21200 | 代理人: | 梅洪玉 |
| 地址: | 116024 遼*** | 國(guó)省代碼: | 遼寧;21 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù)處理 自適應(yīng) 速率 控制 方法 | ||
1.一種流式數(shù)據(jù)處理自適應(yīng)速率控制方法,其特征在于,包括如下步驟:
第一步,數(shù)據(jù)接收和分區(qū)緩存
流式數(shù)據(jù)處理系統(tǒng)接收的數(shù)據(jù),將一條完整的數(shù)據(jù)視為一行,或者使用無(wú)歧義的特殊分隔符對(duì)數(shù)據(jù)進(jìn)行分割;使用消息隊(duì)列作為數(shù)據(jù)源對(duì)數(shù)據(jù)進(jìn)行匯總,并對(duì)數(shù)據(jù)按照分區(qū)規(guī)則將數(shù)據(jù)保存到消息隊(duì)列中的某個(gè)分區(qū)中;
第二步,數(shù)據(jù)預(yù)分片
從消息隊(duì)列中讀取數(shù)據(jù)前,將消息隊(duì)列中單個(gè)數(shù)據(jù)分片映射到多個(gè)流式數(shù)據(jù)處理集群的分片中,映射的數(shù)量根據(jù)集群虛擬核心數(shù)量進(jìn)行設(shè)置;
第三步,處理速率實(shí)時(shí)反饋控制
從消息隊(duì)列中讀取數(shù)據(jù),并根據(jù)當(dāng)前的數(shù)據(jù)處理速率上限確定最多可以從消息隊(duì)列中讀取的數(shù)據(jù)數(shù)量,避免讀取的數(shù)據(jù)數(shù)量超過(guò)計(jì)算集群的最大處理能力;實(shí)時(shí)速率控制器的處理速率上限計(jì)算方法如下:
3.1)通過(guò)慢啟動(dòng)的方式開(kāi)始進(jìn)行調(diào)整,初始的數(shù)據(jù)處理速率上限設(shè)置為消息隊(duì)列的每個(gè)分片每秒獲讀取n條數(shù)據(jù),50n1000;
3.2)第一批完成后,對(duì)以后每一批按照以下的步驟對(duì)數(shù)據(jù)處理速率上限進(jìn)行計(jì)算;
3.2.1)在批次開(kāi)始時(shí),提交當(dāng)前批次的開(kāi)始時(shí)間t_batchst給速率控制器;
3.2.2)在批次完成時(shí),提交當(dāng)前批次的處理結(jié)束時(shí)間t_batched,處理該批次用時(shí)t_proclast,該批次在批次隊(duì)列中的等待時(shí)間t_waitlast,該批次處理數(shù)據(jù)的數(shù)量elemnumlast;
3.2.3)在當(dāng)前批次提交時(shí),對(duì)當(dāng)前批次的數(shù)據(jù)處理速率上限進(jìn)行計(jì)算,分為以下三種情況:第一種情況,在當(dāng)前批次提交時(shí),上一批次執(zhí)行完成,且上一批次數(shù)據(jù)的處理時(shí)間與流式數(shù)據(jù)批處理集群的批次間隔t_interval相差大于松弛參數(shù)prelx;第二種情況,當(dāng)前批次提交時(shí),上一批次執(zhí)行完成,且上一批次數(shù)據(jù)的處理時(shí)間位于t_interval-prelx和t_interval之間;prelx=min(50,t_interval×0.05);第三種情況,當(dāng)前批次提交時(shí),上一批次尚未完成;
第一種情況和第三種情況都基于PID控制算法對(duì)數(shù)據(jù)處理速率上限計(jì)算:
newRate=latestRate-Kp×error-Ki×historicalError-Kd×dError (1)
其中,latestRate為最新處理完成批次的數(shù)據(jù)處理速率上限;Kp為比例系數(shù),取值為1;error為數(shù)據(jù)處理速率的估計(jì)誤差;Ki為積分系數(shù),取值為0.2;historicalError為數(shù)據(jù)處理速率的累積誤差;Kd為微分系數(shù),為了減小噪聲數(shù)據(jù)對(duì)系統(tǒng)的影響,取值為0;dError為偏差速率變化率;
數(shù)據(jù)處理速率的估計(jì)誤差error為:
其中,elemnumlast為最新處理完成的批次處理數(shù)據(jù)的數(shù)量;t_proclast為最新處理完成的批次處理的時(shí)間;Kblock為阻塞系數(shù),阻塞系數(shù)取值0.3;blockTime為估計(jì)的處理時(shí)間增加值;當(dāng)為第一種情況時(shí),blockTime取值為0,此時(shí)由公式(2)計(jì)算得到的結(jié)果為數(shù)據(jù)處理速率的估計(jì)誤差;當(dāng)為第三種情況時(shí),blockTime計(jì)算如公式(3)所示:
blockTime=max(t_interval-(submit_time-t_batchst),brelx) (3)
其中,t_interval為批次提交的間隔;submit_time為任務(wù)的提交時(shí)間;在批次間隔大于1000ms時(shí),brelx=50ms,當(dāng)批次間隔小于1000ms時(shí),brelx=t_interval×0.05;
數(shù)據(jù)處理速率的累積誤差historicalError的計(jì)算如公式(4)所示:
其中,t_waitlast為最新處理完成的批次在批次隊(duì)列中等待的時(shí)間;當(dāng)為第一種情況時(shí),blockTime取值為0;當(dāng)為第三種情況時(shí),blockTime計(jì)算如公式(3)所示;processingRate表示最新處理完成批次的數(shù)據(jù)處理速率,其計(jì)算如公式(5)所示:
偏差速率變化率dError的計(jì)算如公式(6)所示:
其中,latestError表示前一個(gè)處理完成批次的速率估計(jì)誤差,delaySinceUpdate定義為前一個(gè)處理完成批次和最近完成批次之間經(jīng)過(guò)的時(shí)間,其計(jì)算方式如公式(7)所示:
delaySinceUpdate=lastProcessingEndTime-latestTime (7)
第二種情況,使用最新處理完成批次的數(shù)據(jù)處理速率上限latestRate作為當(dāng)前批次的數(shù)據(jù)處理速率上限newRate;
第四步,數(shù)據(jù)的讀取和實(shí)時(shí)處理;流式數(shù)據(jù)批處理集群按照第三步計(jì)算的數(shù)據(jù)處理速率上限和第二步預(yù)分片規(guī)則對(duì)數(shù)據(jù)進(jìn)行讀取;在本批次數(shù)據(jù)處理完成之后,將結(jié)果實(shí)時(shí)輸出到數(shù)據(jù)庫(kù)中。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于大連理工大學(xué),未經(jīng)大連理工大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710011464.6/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
- 數(shù)據(jù)處理設(shè)備,數(shù)據(jù)處理方法,和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理電路、數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法、數(shù)據(jù)處理控制方法
- 數(shù)據(jù)處理設(shè)備、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法及數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法及計(jì)算機(jī)可讀取的記錄介質(zhì)
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法以及數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法以及數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 使用后向自適應(yīng)規(guī)則進(jìn)行整數(shù)數(shù)據(jù)的無(wú)損自適應(yīng)Golomb/Rice編碼和解碼
- 一種自適應(yīng)軟件UML建模及其形式化驗(yàn)證方法
- 媒體自適應(yīng)參數(shù)的調(diào)整方法、系統(tǒng)及相關(guān)設(shè)備
- 五自由度自適應(yīng)位姿調(diào)整平臺(tái)
- 采用自適應(yīng)機(jī)匣和自適應(yīng)風(fēng)扇的智能發(fā)動(dòng)機(jī)
- 一種自適應(yīng)樹(shù)木自動(dòng)涂白裝置
- 一種基于微服務(wù)的多層次自適應(yīng)方法
- 一種天然氣發(fā)動(dòng)機(jī)燃?xì)庾赃m應(yīng)控制方法及系統(tǒng)
- 一種中心自適應(yīng)的焊接跟蹤機(jī)頭
- 一種有砟軌道沉降自適應(yīng)式軌道系統(tǒng)





