亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種流數(shù)據(jù)處理的方法、裝置及系統(tǒng)的制作方法

文檔序號:6631595閱讀:204來源:國知局
一種流數(shù)據(jù)處理的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供一種流數(shù)據(jù)處理方法,該方法應用于流計算系統(tǒng)中的工作節(jié)點,所述方法包括:獲取源算子的初始分時下限值;接收所述業(yè)務數(shù)據(jù),將所述業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識;根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集mini-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性;對所述小批量數(shù)據(jù)集mini-batch進行處理,輸出處理后的數(shù)據(jù)。本發(fā)明實施例基于三元組流數(shù)據(jù)的有序性和唯一性實現(xiàn)流計算系統(tǒng)的可靠性,基于初始分時下限值可以提高流計算系統(tǒng)的計算吞吐量,從而保證了流計算系統(tǒng)可靠性的同時又提升了流計算吞吐能力。
【專利說明】一種流數(shù)據(jù)處理的方法、裝置及系統(tǒng)

【技術領域】
[0001]本發(fā)明涉及計算機【技術領域】,具體涉及一種流數(shù)據(jù)處理的方法、裝置及系統(tǒng)。

【背景技術】
[0002]近年來,數(shù)據(jù)密集型業(yè)務已經(jīng)得到越來越廣泛的應用,這些業(yè)務的實例包括金融服務、網(wǎng)絡監(jiān)控、電信數(shù)據(jù)管理、傳感檢測等等。數(shù)據(jù)密集型業(yè)務產(chǎn)生的數(shù)據(jù)具有數(shù)據(jù)量大、快速、時變的特點,流計算系統(tǒng)在接收流數(shù)據(jù)時就開始對其進行處理,以保證實時性。
[0003]如圖1所示,流計算系統(tǒng)通常包括一個主控節(jié)點(Master)和多個工作節(jié)點(worker),主控節(jié)點主要負責調(diào)度和管理各個工作節(jié)點,而工作節(jié)點是承載實際的數(shù)據(jù)處理操作的邏輯實體,工作節(jié)點具體通過調(diào)用若干個執(zhí)行單元(PE,Process Element)來對數(shù)據(jù)進行處理,PE是業(yè)務邏輯的物理執(zhí)行單元。
[0004]在流計算系統(tǒng)中,業(yè)務處理邏輯通常需要轉(zhuǎn)化為流計算應用模型,流計算應用模型通常為無回路有向圖(Directed Acyclic Graph,DAG),也稱為應用流圖,如圖2所示,流計算應用模型主要由算子(operator)和流(stream)構成,其中算子(operator)是承載業(yè)務邏輯的數(shù)據(jù)處理單元,可被流計算平臺分布式調(diào)度根據(jù)的最小單元,而流(stream)則是算子間交互的數(shù)據(jù),如圖1和圖2所舉示例,一個算子(operator)可能由多個物理執(zhí)行單元PE來執(zhí)行。
[0005]可以看出,流計算系統(tǒng)實質(zhì)上是一個分布式集群系統(tǒng),因此系統(tǒng)出現(xiàn)異常的概率較高,流計算系統(tǒng)發(fā)生故障可能會導致業(yè)務中斷或狀態(tài)數(shù)據(jù)丟失,為了保證流計算系統(tǒng)的可靠性,現(xiàn)有技術如Spark Streaming提出了一種擁有批量作業(yè)能力的流計算平臺。SparkStreaming是將流式計算分解成一系列短小的批處理作業(yè),本質(zhì)思想是用批處理來模擬流,保證了流計算系統(tǒng)的可靠性,但是,Spark Streaming的流計算吞吐能力差,無法滿足高速發(fā)展的數(shù)據(jù)密集型業(yè)務對流計算吞吐能力的要求。


【發(fā)明內(nèi)容】

[0006]為了解決現(xiàn)有技術中流計算吞吐能力差的問題,本發(fā)明實施例提供的一種流數(shù)據(jù)處理的方法,將接收到的業(yè)務數(shù)據(jù)封裝成三元組流數(shù)據(jù),并根據(jù)初始分時下限值與三元組流數(shù)據(jù)構建小批量數(shù)據(jù)集,從而在保證流計算系統(tǒng)可靠性的同時提高流計算系統(tǒng)的計算吞吐量。本發(fā)明實施例還提供了相應的裝置及系統(tǒng)。
[0007]本發(fā)明第一方面提供一種流數(shù)據(jù)處理方法,所述方法應用于流計算系統(tǒng)中的工作節(jié)點,所述工作節(jié)點上部署有至少一個源算子,以處理業(yè)務數(shù)據(jù),所述方法包括:
[0008]獲取所述源算子的初始分時下限值;
[0009]接收所述業(yè)務數(shù)據(jù),將所述業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識;
[0010]根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性;
[0011]對所述小批量數(shù)據(jù)集min1-batch進行處理,輸出處理后的數(shù)據(jù)。
[0012]結(jié)合第一方面,在第一方面的第一種可能的實施方式中,在所述對所述小批量數(shù)據(jù)集min1-batch進行處理之后,所述方法還包括:
[0013]根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值;所述下游算子在所述源算子所在的工作節(jié)點上,或者,所述下游算子在所述源算子所在工作節(jié)點的下游工作節(jié)點上。
[0014]結(jié)合第一方面或者第一方面的第一種可能的實施方式,在第一方面的第二種可能的實施方式中,所述將所述業(yè)務數(shù)據(jù)封裝成三元組流數(shù)據(jù)包括:
[0015]為所述業(yè)務數(shù)據(jù)中的各個元組分別添加數(shù)據(jù)標識形成所述三元組流數(shù)據(jù),所述數(shù)據(jù)標識至少包括時間戳和唯一標識。
[0016]結(jié)合第一方面、第一方面的第一種可能的實施方式和第一方面的第二種可能的實施方式中的任種實施方式,在第一方面的第三種可能的實施方式中,所述初始分時下限值是由所述流計算系統(tǒng)的主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。
[0017]結(jié)合第一方面的第三種可能的實施方式,在第一方面的第四種可能的實施方式中,所述根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,包括:
[0018]將所述三元組流數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。
[0019]本發(fā)明第二方面提供一種流數(shù)據(jù)處理方法,所述方法應用于流計算系統(tǒng)中的工作節(jié)點,所述工作節(jié)點上部署有至少一個第一算子,以處理業(yè)務數(shù)據(jù),所述方法包括:
[0020]獲取所述第一算子初始分時下限值;
[0021]接收所述第一算子的上游算子輸出的數(shù)據(jù)及第一分時下限值調(diào)節(jié)因子;
[0022]根據(jù)所述第一分時下限值調(diào)節(jié)因子對所述第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值;
[0023]根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集min1-batch ;
[0024]對所述小批量數(shù)據(jù)集min1-batch進行處理,輸出處理后的數(shù)據(jù)。
[0025]結(jié)合第二方面,在第二方面的第一種可能的實施方式中,在所述對所述小批量數(shù)據(jù)集min1-batch進行處理之后,所述方法還包括:
[0026]根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出第二分時下限值調(diào)節(jié)因子,所述第二分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值;所述下游算子在所述第一算子所在的工作節(jié)點上,或者,所述下游算子在所述第一算子所在的工作節(jié)點的下游工作節(jié)點上。
[0027]結(jié)合第二方面或第二方面的第一種可能的實施方式,在第二方面的第二種可能的實施方式中,所述上游算子輸出的數(shù)據(jù)為經(jīng)過封裝的流數(shù)據(jù),所述經(jīng)過封裝的流數(shù)據(jù)中包括多個元組,所述多個元組中各元組分別包含該元組的時間戳和唯一標識,所述時間戳用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的唯一性。
[0028]結(jié)合第二方面、第二方面的第一種可能的實施方式和第二方面的第二種可能的實施方式中任種可能的實施方式,在第二方面的第三種可能的實施方式中,所述初始分時下限值是由所述流計算系統(tǒng)的主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。
[0029]結(jié)合第二方面的第三種可能的實施方式,在第二方面的第四種可能的實施方式,所述根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集min1-batch,包括:
[0030]將所述上游算子輸出的數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。
[0031]本發(fā)明第三方面提供、一種流數(shù)據(jù)處理裝置,所述裝置應用于流計算系統(tǒng),所述裝置上部署有至少一個源算子,以處理業(yè)務數(shù)據(jù),所述裝置包括:
[0032]獲取單元,用于獲取所述源算子的初始分時下限值;
[0033]接收單元,用于接收所述業(yè)務數(shù)據(jù);
[0034]封裝單元,用于將所述業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識;
[0035]構建單元,用于根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性;
[0036]處理單元,用于對所述小批量數(shù)據(jù)集min1-batch進行處理得到處理后的數(shù)據(jù);
[0037]輸出單元,用于輸出所述處理后的數(shù)據(jù)。
[0038]結(jié)合第三方面,在第三方面的第一種可能的實施方式中,所述裝置還包括:
[0039]調(diào)節(jié)因子生成單元,用于根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,生成分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值;所述下游算子在所述源算子所在的工作節(jié)點上,或者,所述下游算子在所述源算子所在工作節(jié)點的下游工作節(jié)點上。
[0040]結(jié)合第三方面或者第三方面的第一種可能的實施方式,在第三方面的第二種可能的實施方式中,所述封裝單元具體用于:
[0041]為所述業(yè)務數(shù)據(jù)中的各個元組分別添加數(shù)據(jù)標識形成所述三元組流數(shù)據(jù),所述數(shù)據(jù)標識至少包括時間戳和唯一標識。
[0042]結(jié)合第三方面、第三方面的第一種可能的實施方式和第三方面的第二種可能的實施方式中的任種可能的實施方式,在第三方面的第三種可能的實施方式中,所述初始分時下限值是由所述主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。
[0043]結(jié)合第三方面的第三種可能的實施方式,在第三方面的第四種可能的實施方式中,所述構建單元具體用于:
[0044]將所述三元組流數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。
[0045]本發(fā)明第四方面提供一種流數(shù)據(jù)處理裝置,所述裝置應用于流計算系統(tǒng),所述裝置上部署有至少一個第一算子,以處理業(yè)務數(shù)據(jù),所述裝置包括:
[0046]獲取單元,用于獲取所述第一算子初始分時下限值;
[0047]接收單元,用于接收所述第一算子的上游算子輸出的數(shù)據(jù)及第一分時下限值調(diào)節(jié)因子;
[0048]調(diào)節(jié)單元,用于根據(jù)所述第一分時下限值調(diào)節(jié)因子對所述第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值;
[0049]構建單元,用于根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集min1-batch ;
[0050]處理單元,用于對所述小批量數(shù)據(jù)集min1-batch進行處理得到處理后的數(shù)據(jù);
[0051]輸出單元,用于輸出所述處理后的數(shù)據(jù)。結(jié)合第四方面,在第四方面的第一種可能的實施方式中,所述裝置還包括:
[0052]調(diào)節(jié)因子生成單元,用于根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,生成第二分時下限值調(diào)節(jié)因子,所述第二分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值;所述下游算子在所述第一算子所在的工作節(jié)點上,或者,所述下游算子在所述第一算子所在的工作節(jié)點的下游工作節(jié)點上。
[0053]結(jié)合第四方面或第四方面的第一種可能的實施方式,在第四方面的第二種可能的實施方式中,所述上游算子輸出的數(shù)據(jù)為經(jīng)過封裝的流數(shù)據(jù),所述經(jīng)過封裝的流數(shù)據(jù)中包括多個元組,所述多個元組中各元組分別包含該元組的時間戳和唯一標識,所述時間戳用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的唯一性。
[0054]結(jié)合第四方面、第四方面的第一種可能的實施方式和第四方面的第二種可能的實施方式中的任種可能的實施方式,在第四方面的第三種可能的實施方式中,所述初始分時下限值是由所述主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。
[0055]結(jié)合第四方面的第三種可能的實施方式,在第四方面的第四種可能的實施方式中,所述構建單元具體用于:
[0056]將所述上游算子輸出的數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。
[0057]本發(fā)明第五方面提供一種流計算系統(tǒng),所述系統(tǒng)包括主控節(jié)點和多個工作節(jié)點:
[0058]所述多個工作節(jié)點中的一個工作節(jié)點為如權利要求10至15任一項所述的流數(shù)據(jù)處理裝置,所述多個工作節(jié)點中的其他工作節(jié)點為如權利要求15至20任一項所述的流數(shù)據(jù)處理裝置;
[0059]所述主控節(jié)點用于:根據(jù)流計算應用模型部署一個或多個算子到所述多個工作節(jié)點以處理業(yè)務數(shù)據(jù),所述流計算應用模型為針對所述業(yè)務預先建立的包含算子和算子間數(shù)據(jù)流走向的邏輯關系圖,其中每個所述算子用于承載所述業(yè)務對應的處理邏輯中的部分處理邏輯;
[0060]所述多個工作節(jié)點通過所述算子和算子間數(shù)據(jù)流走向的邏輯關系圖進行數(shù)據(jù)連接。
[0061]本發(fā)明實施例將接收到的業(yè)務數(shù)據(jù)進行封裝形成三元組流數(shù)據(jù),其中三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識,并根據(jù)三元組流數(shù)據(jù)和初始分時下限值構建小批量數(shù)據(jù)集,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性,基于有序性和唯一性可以保證流計算系統(tǒng)的可靠性,基于初始分時下限值可以提高流計算系統(tǒng)的計算吞吐量,進一步的,本發(fā)明實施例中根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值,基于該分時下限值調(diào)節(jié)因子對下游算子的初始分時下限值進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,從而進一步提升計算吞吐量。

【專利附圖】

【附圖說明】
[0062]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0063]圖1是本發(fā)明實施例中流計算系統(tǒng)不意圖;
[0064]圖2是本發(fā)明實施例中流計算應用模型示意圖;
[0065]圖3是本發(fā)明實施例中包含流計算應用模型的流計算系統(tǒng)示意圖;
[0066]圖4是本發(fā)明實施例中流計算應用|吳型的另一不意圖;
[0067]圖5是本發(fā)明實施例中流數(shù)據(jù)處理方法的實施例流程示意圖;
[0068]圖6是本發(fā)明實施例中流數(shù)據(jù)處理方法的另一實施例流程示意圖;
[0069]圖7是本發(fā)明實施例中流數(shù)據(jù)處理方法的另一實施例流程示意圖;
[0070]圖8是本發(fā)明實施例中流數(shù)據(jù)處理方法的另一實施例流程示意圖;
[0071]圖9是本發(fā)明實施例中流數(shù)據(jù)處理方法的另一實施例流程示意圖;
[0072]圖10是本發(fā)明實施例中流數(shù)據(jù)處理方法的另一實施例流程示意圖;
[0073]圖11是本發(fā)明實施例中流數(shù)據(jù)處理裝置的一實施例示意圖;
[0074]圖12是本發(fā)明實施例中流數(shù)據(jù)處理裝置的另一實施例示意圖;
[0075]圖13是本發(fā)明實施例中流數(shù)據(jù)處理裝置的另一實施例示意圖;
[0076]圖14是本發(fā)明實施例中流數(shù)據(jù)處理裝置的另一實施例示意圖;
[0077]圖15是本發(fā)明實施例中流數(shù)據(jù)處理裝置的另一實施例示意圖。

【具體實施方式】
[0078]本發(fā)明實施例提供一種流數(shù)據(jù)處理的方法,將接收到的業(yè)務數(shù)據(jù)進行封裝形成三元組流數(shù)據(jù),并根據(jù)三元組流數(shù)據(jù)和初始分時下限值構建小批量數(shù)據(jù)集,從而可以在保證流計算系統(tǒng)的可靠性的同時,提高流計算系統(tǒng)的計算吞吐量。本發(fā)明實施例還提供了相應的裝置及系統(tǒng)。以下分別進行詳細說明。
[0079]為了使本【技術領域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
[0080]本發(fā)明實施例中的流計算系統(tǒng)包括:主控節(jié)點和工作節(jié)點,在集群部署時,所述主控節(jié)點通常有一個,但會有備用主控節(jié)點,工作節(jié)點可以有一個或多個,主控節(jié)點可以是與工作節(jié)點分離的物理節(jié)點,在單機部署時,主控節(jié)點和工作節(jié)點可以是部署在同一個物理節(jié)點上的主控邏輯單元。流計算系統(tǒng)用于調(diào)度并處理業(yè)務,具體過程是,主控節(jié)點負責將業(yè)務調(diào)度到工作節(jié)點上進行處理。一臺物理節(jié)點可以包括一個工作節(jié)點,也可以包括多個工作節(jié)點,一臺物理節(jié)點包括的工作節(jié)點的數(shù)量取決于該物理節(jié)點的硬件物理資源??梢詫⒁粋€工作節(jié)點理解為是一份硬件物理資源。屬于同一臺物理節(jié)點中的工作節(jié)點間采用進程通信的方式進行通信,屬于不同物理節(jié)點中的工作節(jié)點間采用網(wǎng)絡通信的方式進行通信。流計算系統(tǒng)可以將業(yè)務調(diào)度到工作節(jié)點上進行處理。針對運行在流計算系統(tǒng)上的業(yè)務可以預先建立流計算應用模型,所述流計算應用模型為針對所述業(yè)務預先建立的包含算子和算子間數(shù)據(jù)流走向的邏輯關系圖,所述流計算應用模型中的算子承載有用于處理所述業(yè)務中的與所述算子對應的子業(yè)務的計算邏輯。本發(fā)明實施例中的物理節(jié)點指的是物理設備。本發(fā)明實施例中所述的業(yè)務數(shù)據(jù)為與所述流計算應用模型相關的業(yè)務數(shù)據(jù),下文不再贅述。
[0081]如圖3所示,流計算系統(tǒng)包括主控節(jié)點、工作節(jié)點1、工作節(jié)點2和工作節(jié)點3。工作節(jié)點1、工作節(jié)點2屬于物理節(jié)點I,工作節(jié)點3屬于物理節(jié)點2。
[0082]主控節(jié)點將圖3所示的流計算應用模型調(diào)度到工作節(jié)點1、工作節(jié)點2和工作節(jié)點3這三個工作節(jié)點上進行業(yè)務處理,所述業(yè)務處理也可以稱為流數(shù)據(jù)處理。圖3所示的流計算應用模型為包含Pl至PlO的十個算子以及這十個算子之間的數(shù)據(jù)流走向的邏輯關系圖。
[0083]被調(diào)度到工作節(jié)點I上的算子P1、P2和P3與被調(diào)度到工作節(jié)點2上的算子P4、P5和P6之間通過進程方式通信,PU P2和P3,以及P4、P5和P6與被調(diào)度到工作節(jié)點3上的算子P7、P8、P9和PlO之間通過網(wǎng)絡通信。
[0084]在流計算系統(tǒng)中,主控節(jié)點與工作節(jié)點的工作過程可以理解為:
[0085]主控節(jié)點獲取所述業(yè)務的流計算應用模型,所述流計算應用模型為針對所述業(yè)務預先建立的包含算子和算子間數(shù)據(jù)流走向的邏輯關系圖,每個算子用于承載所述業(yè)務對應的處理邏輯中的部分處理邏輯,將所述流計算應用模型中每個算子調(diào)度到所述工作節(jié)點上,所述工作節(jié)點通過根據(jù)所述每個算子所承載的部分處理邏輯對所述業(yè)務的數(shù)據(jù)進行處理。
[0086]所述流計算應用模型為用戶或開發(fā)人員根據(jù)所述業(yè)務預先建立的,流計算應用模型用于表示流式應用的邏輯模型,流計算應用模型可以參閱圖4進行理解,如圖4所示的流計算應用模型包括10個算子P1-P10,其中箭頭的方向為數(shù)據(jù)流的走向,Pl為數(shù)據(jù)流走向上的第一個算子,可以稱Pl為源算子,
[0087]請參閱圖5,本發(fā)明實施例提供一種流數(shù)據(jù)處理方法,所述方法應用于流計算系統(tǒng)中的工作節(jié)點,所述工作節(jié)點上部署有至少一個源算子,以處理業(yè)務數(shù)據(jù),所述方法包括:
[0088]101、獲取所述源算子的初始分時下限值。
[0089]102、接收所述業(yè)務數(shù)據(jù),將所述業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識。
[0090]103、根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性。
[0091]104、對所述小批量數(shù)據(jù)集min1-batch進行處理,輸出處理后的數(shù)據(jù)。
[0092]值得說明的是,可選的,在具體的實施過程中,所述初始分時下限值可以為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值,該時間閾值可以由主控節(jié)點預設,但并不限定由主控節(jié)點預設。
[0093]本發(fā)明實施例將接收到的業(yè)務數(shù)據(jù)進行封裝形成三元組流數(shù)據(jù),其中三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的的數(shù)據(jù)標識,并根據(jù)三元組流數(shù)據(jù)和初始分時下限值構建小批量數(shù)據(jù)集,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性,基于有序性和唯一性可以保證流計算系統(tǒng)的可靠性,基于初始分時下限值可以提高流計算系統(tǒng)的計算吞吐量,從而保證了流計算系統(tǒng)可靠性的同時又提升了流計算吞吐能力。
[0094]請參考圖6,本發(fā)明實施例提供一種流數(shù)據(jù)處理方法,所述方法在圖5對應的實施例的基礎上增加步驟105、根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值;所述下游算子在所述源算子所在的工作節(jié)點上,或者,所述下游算子在所述源算子所在工作節(jié)點的下游工作節(jié)點上。需要說明的是,該步驟105發(fā)生在對小批量數(shù)據(jù)集min1-batch處理后,至于輸出分時下限值調(diào)節(jié)因子的和輸出處理后數(shù)據(jù)的時間順序本發(fā)明實施例并不做限定。
[0095]本發(fā)明實施例中根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值,基于該分時下限值調(diào)節(jié)因子對下游算子的初始分時下限值進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,最大化CPU的利用,從而大幅提升計算吞吐量。
[0096]請參考圖7,在本發(fā)明的另一個實施例中提供一種流數(shù)據(jù)處理方法,所述方法應用于流計算系統(tǒng)中的工作節(jié)點,所述工作節(jié)點上部署有至少一個源算子,以處理業(yè)務數(shù)據(jù),所述方法包括:
[0097]201、獲取所述源算子的初始分時下限值。
[0098]具體的,所述初始分時下限值是由所述流計算系統(tǒng)的主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。此處的預設可以是由主控節(jié)點根據(jù)具體業(yè)務需求的經(jīng)驗值來設定。
[0099]202、接收所述業(yè)務數(shù)據(jù),將所述業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識。
[0100]具體的,所述封裝可以包括:為所述業(yè)務數(shù)據(jù)中的各個元組分別添加數(shù)據(jù)標識形成所述三元組流數(shù)據(jù),所述數(shù)據(jù)標識至少包括時間戳和唯一標識。值得說明的是,通常這樣的封裝為每個數(shù)據(jù)添加的標識還可以有更多,比如數(shù)據(jù)索引,流ID等,此處不做限定。
[0101]203、根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性。具體的,該步驟可以為將所述三元組流數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。例如,以一段時間的流數(shù)據(jù)為基礎,假設該一段時間為60分鐘,將該60分鐘內(nèi)流入的流數(shù)據(jù)以每一段時間閾值(假設為2分鐘)為構建因素進行分批,如此則分批后每兩分鐘內(nèi)的數(shù)據(jù)為一個小批量數(shù)據(jù)集min1-batch。值得說明的是,本發(fā)明實施例中所述三元組流數(shù)據(jù)不包含數(shù)量關系,即所述三元組流數(shù)據(jù)可以為一個或多個,下文涉及“根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch”的內(nèi)容處時,所述的三元組數(shù)據(jù)流也是為一個或多個的三元組流數(shù)據(jù),為了便于表述,我們在203及其它實施例中對應203步驟的相應位置將其直接表述為不帶有數(shù)量含義的三元組流數(shù)據(jù),并不代表只有一個三元組流數(shù)據(jù),而是可以為一個或多個三元組流數(shù)據(jù),下文不再贅述。
[0102]204、對所述小批量數(shù)據(jù)集min1-batch進行處理,輸出處理后的數(shù)據(jù)。
[0103]此處的處理方法根據(jù)業(yè)務需求的不同可以有不同,所述業(yè)務需求可以是數(shù)據(jù)過濾,異常檢測等等,本發(fā)明實施例不對具體業(yè)務需求做限定,此處只為舉例說明。
[0104]205、根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值;所述下游算子在所述源算子所在的工作節(jié)點上,或者,所述下游算子在所述源算子所在工作節(jié)點的下游工作節(jié)點上。
[0105]在具體的實現(xiàn)過程中,通常認為構建時間和處理時間相匹配的時候是計算性能最佳的,即是CPU利用最大化的時候,當構建時間大于處理時間,比如構建需要十秒,處理時間只需要五秒,則CPU空閑5秒浪費資源,再比如構建時間需要十秒,處理時間需要十二秒,則CPU處理不過來造成計算性能降低,因此工作節(jié)點可以根據(jù)當前處理算子的構建時間和處理時間生成分時下限值調(diào)節(jié)因子,以對該當前處理算子的下游算子的初始分時下限值起到調(diào)節(jié)作用,在具體的實現(xiàn)過程中,最終的調(diào)節(jié)結(jié)果可以有很多因素促使,本發(fā)明實施例中的分時下限值調(diào)節(jié)因子作為一個充分條件提供重要的調(diào)節(jié)因素。
[0106]本發(fā)明實施例將接收到的業(yè)務數(shù)據(jù)進行封裝形成三元組流數(shù)據(jù),其中三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識,并根據(jù)三元組流數(shù)據(jù)和初始分時下限值構建小批量數(shù)據(jù)集,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性,基于有序性和唯一性可以保證流計算系統(tǒng)的可靠性,基于初始分時下限值可以提高流計算系統(tǒng)的計算吞吐量,進一步的,本發(fā)明實施例中根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值,基于該分時下限值調(diào)節(jié)因子對下游算子的初始分時下限值進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,從而進一步提升計算吞吐量。
[0107]請參考圖8,本發(fā)明實施例提供一種流數(shù)據(jù)處理方法,所述方法應用于流計算系統(tǒng)中的工作節(jié)點,所述工作節(jié)點上部署有至少一個第一算子,以處理業(yè)務數(shù)據(jù),所述方法包括:
[0108]301、獲取所述第一算子初始分時下限值;
[0109]302、接收所述第一算子的上游算子輸出的數(shù)據(jù)及第一分時下限值調(diào)節(jié)因子;
[0110]303、根據(jù)所述第一分時下限值調(diào)節(jié)因子對所述第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值;
[0111]304、根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集 min1-batch ;
[0112]305、對所述小批量數(shù)據(jù)集min1-batch進行處理,輸出處理后的數(shù)據(jù)。
[0113]本發(fā)明實施例根據(jù)上游算子輸出的第一分時下限值調(diào)節(jié)因子對第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值,并根據(jù)該調(diào)節(jié)后的分時下限值對接收到的上游算子輸出的數(shù)據(jù)進行小批量數(shù)據(jù)集min1-batch的構建,通過上游算子發(fā)送的第一分時下限值調(diào)節(jié)因子對下游算子進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,從而提升計算吞吐量。
[0114]請參考圖9,本發(fā)明實施例提供一種流數(shù)據(jù)處理方法,所述方法在圖8對應的實施例的基礎上增加步驟306、根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出第二分時下限值調(diào)節(jié)因子,所述第二分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值;所述下游算子在所述第一算子所在的工作節(jié)點上,或者,所述下游算子在所述第一算子所在的工作節(jié)點的下游工作節(jié)點上。
[0115]本發(fā)明實施例根據(jù)第一算子構建小批量數(shù)據(jù)集min1-batch的構建時間和對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出第二分時下限值調(diào)節(jié)因子,以用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值,由此實現(xiàn)上游算子對下游算子的實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,從而提升計算吞吐量。
[0116]請參考圖10,在本發(fā)明的另一個實施例中提供一種流數(shù)據(jù)處理方法,所述方法應用于流計算系統(tǒng)中的工作節(jié)點,所述工作節(jié)點上部署有至少一個第一算子,以處理業(yè)務數(shù)據(jù),所述方法包括:
[0117]401、獲取所述第一算子初始分時下限值。
[0118]具體的,所述初始分時下限值可以是由所述主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。此處的預設可以是由主控節(jié)點根據(jù)具體業(yè)務需求的經(jīng)驗值來設定。
[0119]402、接收所述第一算子的上游算子輸出的數(shù)據(jù)及第一分時下限值調(diào)節(jié)因子。
[0120]具體的,所述上游算子輸出的數(shù)據(jù)可以為經(jīng)過封裝的流數(shù)據(jù),所述經(jīng)過封裝的流數(shù)據(jù)中包括多個元組,所述多個元組中各元組分別包含該元組的時間戳和唯一標識,所述時間戳用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的唯一性。值得說明的是,通常這樣的封裝為每個數(shù)據(jù)添加的標識還可以有更多,比如數(shù)據(jù)索引,流ID等,此處不做限定。
[0121]403、根據(jù)所述第一分時下限值調(diào)節(jié)因子對所述第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值。
[0122]根據(jù)上游算子輸出的第一分時下限值調(diào)節(jié)因子對第一算子初始分時下限值進行調(diào)節(jié),使得第一算子構建min1-batch的構建時間和處理時間不再依賴主控節(jié)點的預設的絕對時間,而是根據(jù)上游算子的情況對下游算子做出一個預估的調(diào)節(jié)方向,使得下游算子能夠基于此做出有效反應從而改絕對時間為相對時間,盡可能最大化CPU的利用率提升計算吞吐量。
[0123]404、根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集 min1-batch。
[0124]具體的,所述構建可以包括:將所述上游算子輸出的數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。
[0125]405、對所述小批量數(shù)據(jù)集min1-batch進行處理,輸出處理后的數(shù)據(jù)。
[0126]此處的處理方法根據(jù)業(yè)務需求的不同可以有不同,所述業(yè)務需求可以是數(shù)據(jù)過濾,異常檢測等等,本發(fā)明實施例不對具體業(yè)務需求做限定,此處只為舉例說明。
[0127]406、根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出第二分時下限值調(diào)節(jié)因子,所述第二分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值;所述下游算子在所述第一算子所在的工作節(jié)點上,或者,所述下游算子在所述第一算子所在的工作節(jié)點的下游工作節(jié)點上。
[0128]在具體的實現(xiàn)過程中,通常認為構建時間和處理時間相匹配的時候是計算性能最佳的,即是CPU利用最大化的時候,當構建時間大于處理時間,比如構建需要十秒,處理時間只需要五秒,則CPU空閑5秒浪費資源,再比如構建時間需要十秒,處理時間需要十二秒,則CPU處理不過來造成計算性能降低,因此工作節(jié)點可以根據(jù)當前處理算子的構建時間和處理時間生成分時下限值調(diào)節(jié)因子,以對該當前處理算子的下游算子的初始分時下限值起到調(diào)節(jié)作用,在具體的實現(xiàn)過程中,最終的調(diào)節(jié)結(jié)果可以有很多因素促使,本發(fā)明實施例中的分時下限值調(diào)節(jié)因子作為一個充分條件提供重要的調(diào)節(jié)因素。值得說明的是,在本發(fā)明實施例中所述當前處理算子為所述第一算子。
[0129]本發(fā)明實施例根據(jù)上游算子輸出的第一分時下限值調(diào)節(jié)因子對第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值,并根據(jù)該調(diào)節(jié)后的分時下限值對接收到的上游算子輸出的數(shù)據(jù)進行小批量數(shù)據(jù)集min1-batch的構建,通過上游算子發(fā)送的第一分時下限值調(diào)節(jié)因子對下游算子進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,最大化CPU的利用率從而提升計算吞吐量。進一步的,本發(fā)明實施例中第一算子還可以根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出第二分時下限值調(diào)節(jié)因子,以用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值,由此將實時動態(tài)調(diào)節(jié)可持續(xù)的傳遞下去,實現(xiàn)整體的實時動態(tài)調(diào)節(jié),以最大化CPU的利用率從而大幅提升流計算系統(tǒng)的計算吞吐量。
[0130]請參考圖11,本發(fā)明實施例提供一種流數(shù)據(jù)處理裝置500,所述裝置500應用于流計算系統(tǒng),所述裝置500上部署有至少一個源算子,以處理業(yè)務數(shù)據(jù),所述裝置500包括:
[0131]獲取單元501,用于獲取所述源算子的初始分時下限值。
[0132]接收單元502,用于接收所述業(yè)務數(shù)據(jù)。
[0133]封裝單元503,用于將所述業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識。
[0134]構建單元504,用于根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性。
[0135]處理單元505,用于對所述小批量數(shù)據(jù)集min1-batch進行處理得到處理后的數(shù)據(jù)。
[0136]輸出單元506、用于輸出處理后的數(shù)據(jù)。
[0137]本發(fā)明實施例提供的數(shù)據(jù)流處理裝置500,所述裝置500應用于流計算系統(tǒng),所述裝置上部署有至少一個源算子,以處理業(yè)務數(shù)據(jù)。所述裝置500包括獲取單元501、接收單元502、封裝單元503、構建單元504、處理單元505、輸出單元506,其中:獲取單元501用于獲取所述源算子的初始分時下限值。接收單元502用于接收所述業(yè)務數(shù)據(jù)。封裝單元503用于將所述業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識。構建單元504用于根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性。處理單元505用于對所述小批量數(shù)據(jù)集min1-batch進行處理。輸出單元506輸出處理后的數(shù)據(jù)。本發(fā)明實施例中通過封裝單元503將接收到的業(yè)務數(shù)據(jù)進行封裝形成三元組流數(shù)據(jù),其中三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的的數(shù)據(jù)標識,并通過構建單元504根據(jù)三元組流數(shù)據(jù)和初始分時下限值構建小批量數(shù)據(jù)集,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性,基于有序性和唯一性可以保證流計算系統(tǒng)的可靠性,基于初始分時下限值可以提高流計算系統(tǒng)的計算吞吐量,從而保證了流計算系統(tǒng)可靠性的同時又提升了流計算吞吐能力。
[0138]值得說明的是,所述裝置上部署有至少一個源算子,以處理業(yè)務數(shù)據(jù),在具體的實施過程中可以由主控節(jié)點根據(jù)流計算應用模型部署一個或多個算子到所述裝置500,所述一個或多個算子中包括至少一個源算子。
[0139]請參考圖12,所述裝置500還包括調(diào)節(jié)因子生成單元507、所述調(diào)節(jié)因子生成單元507用于根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,生成分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于通過輸出單元506輸出給所述源算子的下游算子,以調(diào)節(jié)所述下游算子的初始分時下限值;所述下游算子在所述源算子所在的工作節(jié)點上,或者,所述下游算子在所述源算子所在工作節(jié)點的下游工作節(jié)點上。
[0140]本發(fā)明實施例通過所述調(diào)節(jié)因子生成單元507根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,生成分時下限值調(diào)節(jié)因子,以用于輸出給所述源算子的下游算子,以調(diào)節(jié)所述下游算子的初始分時下限值,基于該分時下限值調(diào)節(jié)因子對下游算子的初始分時下限值進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,最大化CPU的利用,從而大幅提升計算吞吐量。
[0141]請參考圖13,本發(fā)明實施例提供一種流數(shù)據(jù)處理裝置600,所述裝置600應用于流計算系統(tǒng),所述裝置600上部署有至少一個第一算子,以處理業(yè)務數(shù)據(jù),所述裝置600包括:
[0142]獲取單元601,用于獲取所述第一算子初始分時下限值;
[0143]接收單元602,用于接收所述第一算子的上游算子輸出的數(shù)據(jù)及第一分時下限值調(diào)節(jié)因子;
[0144]調(diào)節(jié)單元603,用于根據(jù)所述第一分時下限值調(diào)節(jié)因子對所述第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值;
[0145]構建單元604,用于根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集min1-batch ;
[0146]處理單元605,用于對所述小批量數(shù)據(jù)集min1-batch進行處理得到處理后的數(shù)據(jù);
[0147]輸出單元606,用于輸出所述處理后的數(shù)據(jù)。
[0148]本發(fā)明實施例提供的數(shù)據(jù)流處理裝置600,所述裝置600應用于流計算系統(tǒng),所述裝置600上部署有至少一個第一算子,以處理業(yè)務數(shù)據(jù),所述裝置600包括獲取單元601、接收單元602、調(diào)節(jié)單元603、構建單元604、處理單元605、輸出單元606,其中:獲取單元601用于獲取所述第一算子初始分時下限值;接收單元602用于接收所述第一算子的上游算子輸出的數(shù)據(jù)及第一分時下限值調(diào)節(jié)因子;調(diào)節(jié)單元603用于根據(jù)所述第一分時下限值調(diào)節(jié)因子對所述第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值;構建單元604用于根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集min1-batch ;處理單元605用于對所述小批量數(shù)據(jù)集min1-batch進行處理得到處理后的數(shù)據(jù);輸出單元606用于輸出所述處理后的數(shù)據(jù)。本發(fā)明實施例中的調(diào)節(jié)單元603根據(jù)上游算子輸出的第一分時下限值調(diào)節(jié)因子對第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值,并通過構建單元604根據(jù)該調(diào)節(jié)后的分時下限值對接收到的上游算子輸出的數(shù)據(jù)進行小批量數(shù)據(jù)集min1-batch的構建,可見,本發(fā)明實施例通過上游算子發(fā)送的第一分時下限值調(diào)節(jié)因子對下游算子進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,從而提升計算吞吐量。
[0149]值得說明的是,所述裝置上部署有至少一個第一算子,以處理業(yè)務數(shù)據(jù),在具體的實施過程中可以由主控節(jié)點根據(jù)流計算應用模型部署一個或多個算子到所述裝置600,所述一個或多個算子中包括至少一個第一算子。
[0150]請參考圖14,所述裝置600還包括調(diào)節(jié)因子生成單元607、所述調(diào)節(jié)因子生成單元用于根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,生成第二分時下限值調(diào)節(jié)因子,所述第二分時下限值調(diào)節(jié)因子用于通過所述輸出單元606輸出給所述第一算子的下游算子,以調(diào)節(jié)所述下游算子的初始分時下限值;所述下游算子在所述第一算子所在的工作節(jié)點上,或者,所述下游算子在所述第一算子所在的工作節(jié)點的下游工作節(jié)點上。
[0151]本發(fā)明實施例中的調(diào)節(jié)因子生成單元607根據(jù)第一算子構建小批量數(shù)據(jù)集min1-batch的構建時間和對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,生成第二分時下限值調(diào)節(jié)因子,以用于通過輸出單元606輸出給所述第一算子的下游算子,以調(diào)節(jié)所述下游算子的初始分時下限值,由此實現(xiàn)上游算子對下游算子的實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,從而提升計算吞吐量。
[0152]請參考圖3,本發(fā)明實施例提供一種流數(shù)據(jù)處理系統(tǒng),所述系統(tǒng)包括主控節(jié)點和多個工作節(jié)點:
[0153]所述多個工作節(jié)點中的一個工作節(jié)點為如權利要求10至15任一項所述的流數(shù)據(jù)處理裝置,所述多個工作節(jié)點中的其他工作節(jié)點為如權利要求15至20任一項所述的流數(shù)據(jù)處理裝置;
[0154]所述主控節(jié)點用于:根據(jù)流計算應用模型部署一個或多個算子到所述多個工作節(jié)點以處理業(yè)務數(shù)據(jù),所述流計算應用模型為針對所述業(yè)務預先建立的包含算子和算子間數(shù)據(jù)流走向的邏輯關系圖,其中每個所述算子用于承載所述業(yè)務對應的處理邏輯中的部分處理邏輯;
[0155]所述多個工作節(jié)點通過所述算子和算子間數(shù)據(jù)流走向的邏輯關系圖進行數(shù)據(jù)連接。
[0156]本發(fā)明實施例提供的流計算處理系統(tǒng)包括主控節(jié)點和工作節(jié)點,所述主控節(jié)點根據(jù)流計算應用模型部署一個或多個算子到所述工作節(jié)點,以處理業(yè)務數(shù)據(jù)。
[0157]如圖3所示,主控節(jié)點將圖3所示的流計算應用模型調(diào)度到工作節(jié)點1、工作節(jié)點2和工作節(jié)點3這三個工作節(jié)點上進行業(yè)務處理,所述業(yè)務處理也可以稱為流數(shù)據(jù)處理。圖3所示的流計算應用模型為包含Pl至PlO的十個算子以及這十個算子之間的數(shù)據(jù)流走向的邏輯關系圖。
[0158]主控節(jié)點通過分時下限控制器為工作節(jié)點上的算子預設初始分時下限值,該預設的初始分時下限值具體大小可以根據(jù)具體的業(yè)務需求或者經(jīng)驗值得到,通過這樣的預設,各個工作節(jié)點中的各個算子都有了自己的初始分時下限值,這里的所說的算子包括源算子在內(nèi)。值得說明的是,所述分時下限控制器可以是所述主控節(jié)點內(nèi)的模塊,也可以是主控節(jié)點外的模塊,此處不做限制。
[0159]站在工作節(jié)點的角度,在需要用到算子的初始分時下限值的時候,預先獲取該算子的初始分時下限值即可。
[0160]Pl為數(shù)據(jù)入口算子,本發(fā)明實施例中稱為源算子,流計算處理系統(tǒng)接收原始數(shù)據(jù)流,如圖3所述,原始數(shù)據(jù)流由Pl入口,工作節(jié)點I對流入源算子Pl的數(shù)據(jù)進行封裝,生成三元組流數(shù)據(jù)。該三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的的數(shù)據(jù)標識結(jié)構,即工作節(jié)點I為流入源算子Pl的數(shù)據(jù)添加標識,這個標識至少包括時間戳、數(shù)據(jù)唯一標識。值得說明的是,通常這樣的封裝為每個數(shù)據(jù)添加的標識還可以有更多,比如數(shù)據(jù)索引,流ID等,此處不做限定。時間戳用于使得該分布式流計算處理系統(tǒng)進行數(shù)據(jù)處理的有序性,數(shù)據(jù)唯一標識用于做數(shù)據(jù)去重,將重復數(shù)據(jù)剔除,從而保證數(shù)據(jù)處理過程中處理數(shù)據(jù)的唯一性。
[0161]工作節(jié)點I根據(jù)三元組流數(shù)據(jù)及源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch。如上所述,原始數(shù)據(jù)流被封裝成三元組流數(shù)據(jù)之后,數(shù)據(jù)描述中添加了時間戳和唯一標識,保證了數(shù)據(jù)計算過程中數(shù)據(jù)的有序性和唯一性從而保證了計算結(jié)果的可靠性,初始分時下限值為構建小批量數(shù)據(jù)集min1-batch的時間閾值,如該時間閾值為s秒,則將一段時間內(nèi)的數(shù)據(jù)流按照s秒進行分批構建,此處可以為將每s秒的流數(shù)據(jù)構建為一批小批量數(shù)據(jù)集min1-batch。
[0162]工作節(jié)點I對上述構建的小批量數(shù)據(jù)集min1-batch進行處理,并輸出處理后的數(shù)據(jù)。此處的處理方法根據(jù)業(yè)務需求的不同可以有不同,此處的處理方法根據(jù)業(yè)務需求的不同可以有不同,所述業(yè)務需求可以是數(shù)據(jù)過濾,異常檢測等等,本發(fā)明實施例不對具體業(yè)務需求做限定,此處只為舉例說明,不做限定。
[0163]本發(fā)明實施例提供的一種流數(shù)據(jù)處理系統(tǒng),將接收到的原始流數(shù)據(jù)進行封裝形成三元組流數(shù)據(jù),并根據(jù)初始分時下限值與三元組流數(shù)據(jù)構建小批量數(shù)據(jù)集,從而在保證流計算系統(tǒng)可靠性的同時大幅提高流計算系統(tǒng)的計算吞吐量。
[0164]在上述流數(shù)據(jù)處理系統(tǒng)的基礎上,本發(fā)明另一個實施例在對所述小批量數(shù)據(jù)集min1-batch進行處理之后還包括均衡調(diào)控機制:
[0165]具體的,該均衡調(diào)控機制包括:根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子。其中構建小批量數(shù)據(jù)集min1-batch的構建時間表示算子(如圖3所示Pl)構建小批量數(shù)據(jù)集min1-batch所需要的時間,對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間表示算子(如圖3所示Pl)平均處理小批量數(shù)據(jù)集min1-batch中全部數(shù)據(jù)元組所需要的時間。本發(fā)明實施例的均衡調(diào)控機制認為當“小批量數(shù)據(jù)集min1-batch的構建時間”與“對小批量數(shù)據(jù)集min1-batch進行處理的處理時間”匹配時,分時下限值的設置是最優(yōu)的。即,通常認為構建時間和處理時間相匹配的時候是計算性能最佳的,即是CPU利用最大化的時候,當構建時間大于處理時間,比如構建需要十秒,處理時間只需要五秒,則CPU空閑5秒浪費資源,再比如構建時間需要十秒,處理時間需要十二秒,則CPU處理不過來造成計算性能降低,因此工作節(jié)點可以根據(jù)當前處理算子的構建時間和處理時間生成分時下限值調(diào)節(jié)因子,以對該當前處理算子的下游算子的初始分時下限值起到調(diào)節(jié)作用,在具體的實現(xiàn)過程中,最終的調(diào)節(jié)結(jié)果可以有很多因素促使,本發(fā)明實施例中的分時下限值調(diào)節(jié)因子作為一個充分條件提供重要的調(diào)節(jié)因素。
[0166]因此根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子對下游算子的初始分時下限值進行調(diào)節(jié),實現(xiàn)分時控制。在該均衡調(diào)控機制中輸出的分時下限值調(diào)節(jié)因子對下游算子的初始分時下限值進行實時調(diào)整,使得下游算子構建小批量數(shù)據(jù)集min1-batch的時間由固定預設的絕對時間依賴轉(zhuǎn)換為對上游算子的相對時間依賴,從而可以平衡小批量數(shù)據(jù)集min1-batch的規(guī)模與計算時間,從而更好的利用CPU,最大化工作節(jié)點的計算處理能力。
[0167]關于上述的相對時間依賴,具體可以解釋為:構建小批量數(shù)據(jù)集min1-batch的關鍵是知道什么時候特定時間范圍的數(shù)據(jù)在處理算子上已經(jīng)完全獲取完畢,以保證各種依賴于時間順序或數(shù)據(jù)完整性的任務得以繼續(xù)計算,現(xiàn)有技術以主控節(jié)點給定的絕對時間來控制小批量數(shù)據(jù)集min1-batch的構建時間,無論在該給定的絕對時間內(nèi),數(shù)據(jù)在處理算子上是否已經(jīng)獲取完畢,下一批數(shù)據(jù)需要等到該絕對時間到達才會進行處理,這樣如果在這段絕對時間內(nèi)處理算子上已經(jīng)提前完全獲取完畢,則這段提前的時間CPU處于空閑狀態(tài),從而降低工作節(jié)點的計算處理能力。本發(fā)明的相對時間依賴打破了絕對時間控制的限制,每層算子依賴上游算子的相對時間即可,從而實現(xiàn)了該分布式流計算系統(tǒng)的全局并發(fā)計算。具體的,全局并發(fā)計算可以是:上游算子比如Pl根據(jù)分時下限值調(diào)節(jié)因子給下游算子P2階段性的發(fā)送隔離壁Bulkhead,告知下游算子每一批小批量數(shù)據(jù)集min1-batch的構建時間,基于隔離壁Bulkhead判斷數(shù)據(jù)是否接收完備,從而不再產(chǎn)生更老的流元組。
[0168]在如圖3所示的本發(fā)明實施例中,該分時下限值調(diào)節(jié)因子用于輸出給源算子的下游算子P2,以調(diào)節(jié)P2的初始分時下限值。
[0169]P2接到由Pl處理后的數(shù)據(jù)以及從Pl下發(fā)的分時下限值調(diào)節(jié)因子,P2根據(jù)該分時下限值調(diào)節(jié)因子對P2的初始分時下限值進行調(diào)整,并根據(jù)調(diào)整后的P2的分時下限值以及接收到的由Pl處理后的數(shù)據(jù),進行小批量數(shù)據(jù)集min1-batch的構建。構建之后再對該構建的小批量數(shù)據(jù)集min1-batch進行處理,得到處理后的數(shù)據(jù)。在該方案的基礎上,還可根據(jù)小批量數(shù)據(jù)集min1-batch的處理時間和構建時間輸出分時下限值調(diào)節(jié)因子,輸出給下一個算子,由此循環(huán),直至工作節(jié)點3的出口算子PlO輸出由PlO處理后的數(shù)據(jù),并終止循環(huán)。需要說明的是,該出口算子PlO不再輸出分時下限值調(diào)節(jié)因子。
[0170]假設工作節(jié)點I上只有源節(jié)點Pl時,則將該處理后的數(shù)據(jù)輸出給工作節(jié)點2的第一個算子P4。具體處理流程與輸出給P2相同,此處不贅述。
[0171]本發(fā)明實施例中工作節(jié)點對源算子接收到的業(yè)務數(shù)據(jù)進行封裝形成三元組流數(shù)據(jù),其中三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的的數(shù)據(jù)標識,并根據(jù)三元組流數(shù)據(jù)和初始分時下限值構建小批量數(shù)據(jù)集,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性,基于有序性和唯一性可以保證流計算系統(tǒng)的可靠性,基于初始分時下限值可以提高流計算系統(tǒng)的計算吞吐量,進一步的,本發(fā)明實施例中的均衡調(diào)控機制,根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于輸出給所述下游算子,以調(diào)節(jié)所述下游算子的初始分時下限值,基于該分時下限值調(diào)節(jié)因子對下游算子的初始分時下限值進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,從而進一步提升計算吞吐量。
[0172]請參考圖15,圖15是本發(fā)明實施例提供的流數(shù)據(jù)處理裝置800的結(jié)構示意圖。業(yè)務處理的裝置800可包括輸入設備810、輸出設備820、處理器830和存儲器840。
[0173]本發(fā)明實施例提供的流數(shù)據(jù)處理的裝置800應用于流計算系統(tǒng),所述流計算系統(tǒng)還包括主控節(jié)點,所述主控節(jié)點根據(jù)流計算應用模型調(diào)度一個或多個算子到所述工作節(jié)點,以處理業(yè)務數(shù)據(jù)。
[0174]存儲器840可以包括只讀存儲器和隨機存取存儲器,并向處理器830提供指令和數(shù)據(jù)。存儲器840的一部分還可以包括非易失性隨機存取存儲器(NVRAM)。
[0175]存儲器840存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構,或者它們的子集,或者它們的擴展集:
[0176]操作指令:包括各種操作指令,用于實現(xiàn)各種操作。
[0177]操作系統(tǒng):包括各種系統(tǒng)程序,用于實現(xiàn)各種基礎業(yè)務以及處理基于硬件的任務。
[0178]在本發(fā)明實施例中,處理器830通過調(diào)用存儲器840存儲的操作指令(該操作指令可存儲在操作系統(tǒng)中),執(zhí)行如下操作:
[0179]獲取所述主控節(jié)點調(diào)度的流計算應用模型中的算子,所述流計算應用模型為針對所述業(yè)務預先建立的包含算子和算子間數(shù)據(jù)流走向的邏輯關系圖,每個算子用于承載所述業(yè)務對應的處理邏輯中的部分處理邏輯,將業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識;根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性;對所述小批量數(shù)據(jù)集min1-batch進行處理。以及根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值。
[0180]通過輸入設備810接收所述業(yè)務數(shù)據(jù)及源算子初始分時下限值。
[0181]本發(fā)明實施例提供的流數(shù)據(jù)處理裝置800,本發(fā)明實施例將接收到的業(yè)務數(shù)據(jù)進行封裝形成三元組流數(shù)據(jù),其中三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的的數(shù)據(jù)標識,并根據(jù)三元組流數(shù)據(jù)和初始分時下限值構建小批量數(shù)據(jù)集,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性,基于有序性和唯一性可以保證流計算系統(tǒng)的可靠性,基于初始分時下限值可以提高流計算系統(tǒng)的計算吞吐量,從而保證了流計算系統(tǒng)可靠性的同時又提升了流計算吞吐能力。
[0182]本發(fā)明實施例提供的流數(shù)據(jù)處理裝置800的輸入設備810還用于接收上游算子輸出的數(shù)據(jù)及第一分時下限值調(diào)節(jié)因子。
[0183]處理器830還用于根據(jù)第一分時下限值調(diào)節(jié)因子對所述第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值;根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集min1-batch;對所述小批量數(shù)據(jù)集min1-batch進行處理。在所述對所述小批量數(shù)據(jù)集min1-batch進行處理之后,根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出第二分時下限值調(diào)節(jié)因子,所述第二分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值。
[0184]根據(jù)上游算子輸出的第一分時下限值調(diào)節(jié)因子對第一算子初始分時下限值進行調(diào)節(jié)本發(fā)明實施例根據(jù)上游算子輸出的第一分時下限值調(diào)節(jié)因子對第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值,并根據(jù)該調(diào)節(jié)后的分時下限值對接收到的上游算子輸出的數(shù)據(jù)進行小批量數(shù)據(jù)集min1-batch的構建,通過上游算子發(fā)送的第一分時下限值調(diào)節(jié)因子對下游算子進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,從而提升計算吞吐量。
[0185]處理器830控制業(yè)務處理的裝置800的操作,處理器830還可以稱為CPU (CentralProcessing Unit,中央處理單元)。存儲器840可以包括只讀存儲器和隨機存取存儲器,并向處理器830提供指令和數(shù)據(jù)。存儲器840的一部分還可以包括非易失性隨機存取存儲器(NVRAM)。具體的應用中,流數(shù)據(jù)處理裝置800的各個組件通過總線系統(tǒng)850耦合在一起,其中總線系統(tǒng)850除包括數(shù)據(jù)總線之外,還可以包括電源總線、控制總線和狀態(tài)信號總線等。但是為了清楚說明起見,在圖中將各種總線都標為總線系統(tǒng)850。
[0186]上述本發(fā)明實施例揭示的方法可以應用于處理器830中,或者由處理器830實現(xiàn)。處理器830可能是一種集成電路芯片,具有信號的處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器830中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器830可以是通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫崿F(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器840,處理器830讀取存儲器840中的信息,結(jié)合其硬件完成上述方法的步驟。
[0187]可選地,所述處理器830還用于根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值。
[0188]根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值,基于該分時下限值調(diào)節(jié)因子對下游算子的初始分時下限值進行實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,最大化CPU的利用,從而大幅提升計算吞吐量。
[0189]可選地,所述處理器830還用于根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出第二分時下限值調(diào)節(jié)因子,所述第二分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值。
[0190]根據(jù)第一算子構建小批量數(shù)據(jù)集min1-batch的構建時間和對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出第二分時下限值調(diào)節(jié)因子,以用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值,由此實現(xiàn)上游算子對下游算子的實時動態(tài)調(diào)節(jié),從而用實時的相對時間打破下游算子對絕對時間的依賴,從而提升計算吞吐量。
[0191]本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件(例如處理器)來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
[0192]以上對本發(fā)明實施例所提供的流數(shù)據(jù)處理方法、裝置以及系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
【權利要求】
1.一種流數(shù)據(jù)處理方法,所述方法應用于流計算系統(tǒng)中的工作節(jié)點,所述工作節(jié)點上部署有至少一個源算子,以處理業(yè)務數(shù)據(jù),其特征在于,所述方法包括: 獲取所述源算子的初始分時下限值; 接收所述業(yè)務數(shù)據(jù),將所述業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識; 根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性; 對所述小批量數(shù)據(jù)集min1-batch進行處理,輸出處理后的數(shù)據(jù)。
2.根據(jù)權利要求1所述的方法,其特征在于,在所述對所述小批量數(shù)據(jù)集min1-batch進行處理之后,所述方法還包括: 根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值;所述下游算子在所述源算子所在的工作節(jié)點上,或者,所述下游算子在所述源算子所在工作節(jié)點的下游工作節(jié)點上。
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述將所述業(yè)務數(shù)據(jù)封裝成三元組流數(shù)據(jù)包括: 為所述業(yè)務數(shù)據(jù)中的各個元組分別添加數(shù)據(jù)標識形成所述三元組流數(shù)據(jù),所述數(shù)據(jù)標識至少包括時間戳和唯一標識。
4.根據(jù)權利要求1至3任一項所述的方法,其特征在于,所述初始分時下限值是由所述流計算系統(tǒng)的主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。
5.根據(jù)權利要求4所述的方法,其特征在于,所述根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,包括: 將所述三元組流數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。
6.一種流數(shù)據(jù)處理方法,所述方法應用于流計算系統(tǒng)中的工作節(jié)點,所述工作節(jié)點上部署有至少一個第一算子,以處理業(yè)務數(shù)據(jù),其特征在于,所述方法包括: 獲取所述第一算子初始分時下限值; 接收所述第一算子的上游算子輸出的數(shù)據(jù)及第一分時下限值調(diào)節(jié)因子; 根據(jù)所述第一分時下限值調(diào)節(jié)因子對所述第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值; 根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集min1-batch ; 對所述小批量數(shù)據(jù)集min1-batch進行處理,輸出處理后的數(shù)據(jù)。
7.根據(jù)權利要求6所述的方法,其特征在于,在所述對所述小批量數(shù)據(jù)集min1-batch進行處理之后,所述方法還包括: 根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,輸出第二分時下限值調(diào)節(jié)因子,所述第二分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值;所述下游算子在所述第一算子所在的工作節(jié)點上,或者,所述下游算子在所述第一算子所在的工作節(jié)點的下游工作節(jié)點上。
8.根據(jù)權利要求6或7所述的方法,其特征在于,所述上游算子輸出的數(shù)據(jù)為經(jīng)過封裝的流數(shù)據(jù),所述經(jīng)過封裝的流數(shù)據(jù)中包括多個元組,所述多個元組中各元組分別包含該元組的時間戳和唯一標識,所述時間戳用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的唯一性。
9.根據(jù)權利要求6至8任一項所述的方法,其特征在于,所述初始分時下限值是由所述流計算系統(tǒng)的主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。
10.根據(jù)權利要求9所述的方法,其特征在于,所述根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集min1-batch,包括: 將所述上游算子輸出的數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。
11.一種流數(shù)據(jù)處理裝置,所述裝置應用于流計算系統(tǒng),所述裝置上部署有至少一個源算子,以處理業(yè)務數(shù)據(jù),其特征在于,所述裝置包括: 獲取單元,用于獲取所述源算子的初始分時下限值; 接收單元,用于接收所述業(yè)務數(shù)據(jù); 封裝單元,用于將所述業(yè)務數(shù)據(jù)流封裝成三元組流數(shù)據(jù),所述三元組流數(shù)據(jù)攜帶有時間戳和唯一標識該業(yè)務數(shù)據(jù)的數(shù)據(jù)標識; 構建單元,用于根據(jù)所述三元組流數(shù)據(jù)及所述源算子的初始分時下限值構建小批量數(shù)據(jù)集min1-batch,所述時間戳用于指示所述構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述構建過程中數(shù)據(jù)的唯一性; 處理單元,用于對所述小批量數(shù)據(jù)集min1-batch進行處理得到處理后的數(shù)據(jù); 輸出單元,用于輸出所述處理后的數(shù)據(jù)。
12.根據(jù)權利要求11所述的裝置,其特征在于,所述裝置還包括: 調(diào)節(jié)因子生成單元,用于根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,生成分時下限值調(diào)節(jié)因子,所述分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述源算子的下游算子的初始分時下限值;所述下游算子在所述源算子所在的工作節(jié)點上,或者,所述下游算子在所述源算子所在工作節(jié)點的下游工作節(jié)點上。
13.根據(jù)權利要求11或12所述的裝置,其特征在于,所述封裝單元具體用于: 為所述業(yè)務數(shù)據(jù)中的各個元組分別添加數(shù)據(jù)標識形成所述三元組流數(shù)據(jù),所述數(shù)據(jù)標識至少包括時間戳和唯一標識。
14.根據(jù)權利要求11至13任一項所述的裝置,其特征在于,所述初始分時下限值是由所述主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。
15.根據(jù)權利要求14所述的裝置,其特征在于,所述構建單元具體用于: 將所述三元組流數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。
16.一種流數(shù)據(jù)處理裝置,所述裝置應用于流計算系統(tǒng),所述裝置上部署有至少一個第一算子,以處理業(yè)務數(shù)據(jù),其特征在于,所述裝置包括: 獲取單元,用于獲取所述第一算子初始分時下限值; 接收單元,用于接收所述第一算子的上游算子輸出的數(shù)據(jù)及第一分時下限值調(diào)節(jié)因子; 調(diào)節(jié)單元,用于根據(jù)所述第一分時下限值調(diào)節(jié)因子對所述第一算子初始分時下限值進行調(diào)節(jié),得到調(diào)節(jié)后的分時下限值; 構建單元,用于根據(jù)所述上游算子輸出的數(shù)據(jù)及所述調(diào)節(jié)后的分時下限值構建小批量數(shù)據(jù)集 min1-batch ; 處理單元,用于對所述小批量數(shù)據(jù)集min1-batch進行處理得到處理后的數(shù)據(jù); 輸出單元,用于輸出所述處理后的數(shù)據(jù)。
17.根據(jù)權利要求16所述的裝置,其特征在于,所述裝置還包括: 調(diào)節(jié)因子生成單元,用于根據(jù)所述構建小批量數(shù)據(jù)集min1-batch的構建時間,和所述對所述小批量數(shù)據(jù)集min1-batch進行處理的處理時間,生成第二分時下限值調(diào)節(jié)因子,所述第二分時下限值調(diào)節(jié)因子用于調(diào)節(jié)所述第一算子的下游算子的初始分時下限值;所述下游算子在所述第一算子所在的工作節(jié)點上,或者,所述下游算子在所述第一算子所在的工作節(jié)點的下游工作節(jié)點上。
18.根據(jù)權利要求16或17所述的裝置,其特征在于,所述上游算子輸出的數(shù)據(jù)為經(jīng)過封裝的流數(shù)據(jù),所述經(jīng)過封裝的流數(shù)據(jù)中包括多個元組,所述多個元組中各元組分別包含該元組的時間戳和唯一標識,所述時間戳用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的有序性,所述唯一標識用于指示所述小批量數(shù)據(jù)集min1-batch構建過程中數(shù)據(jù)的唯一'I"生。
19.根據(jù)權利要求16至18任一項所述的裝置,其特征在于,所述初始分時下限值是由所述主控節(jié)點預設的,所述初始分時下限值為用于構建小批量數(shù)據(jù)集min1-batch的時間閾值。
20.根據(jù)權利要求19所述的裝置,其特征在于,所述構建單元具體用于: 將所述上游算子輸出的數(shù)據(jù)按所述時間閾值進行分批構建所述小批量數(shù)據(jù)集min1-batch。
21.一種流計算系統(tǒng),其特征在于,所述系統(tǒng)包括主控節(jié)點和多個工作節(jié)點: 所述多個工作節(jié)點中的一個工作節(jié)點為如權利要求10至15任一項所述的流數(shù)據(jù)處理裝置,所述多個工作節(jié)點中的其他工作節(jié)點為如權利要求15至20任一項所述的流數(shù)據(jù)處理裝置; 所述主控節(jié)點用于:根據(jù)流計算應用模型部署一個或多個算子到所述多個工作節(jié)點以處理業(yè)務數(shù)據(jù),所述流計算應用模型為針對所述業(yè)務預先建立的包含算子和算子間數(shù)據(jù)流走向的邏輯關系圖,其中每個所述算子用于承載所述業(yè)務對應的處理邏輯中的部分處理邏輯; 所述多個工作節(jié)點通過所述算子和算子間數(shù)據(jù)流走向的邏輯關系圖進行數(shù)據(jù)連接。
【文檔編號】G06F9/46GK104331270SQ201410579293
【公開日】2015年2月4日 申請日期:2014年10月24日 優(yōu)先權日:2014年10月24日
【發(fā)明者】張松山 申請人:華為技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1