本發(fā)明涉及數(shù)據(jù)處理,特別涉及一種基于golang通道的大數(shù)據(jù)處理方法及系統(tǒng)。
背景技術(shù):
1、目前市面上開(kāi)發(fā)的大數(shù)據(jù)處理軟件針對(duì)各自大數(shù)據(jù)平臺(tái)的處理流程框架百花齊放,有著廣泛的使用場(chǎng)景。
2、不足之處是大部分?jǐn)?shù)據(jù)處理流程框架,本身結(jié)構(gòu)復(fù)雜,對(duì)于數(shù)據(jù)處理的流程組合匹配不能輕易的更換,單個(gè)處理環(huán)節(jié)的復(fù)用性低,并發(fā)的處理程度一般也不能夠進(jìn)行輕易的縮放,無(wú)法適配外界項(xiàng)目不斷變化的各類(lèi)數(shù)據(jù)頻次越來(lái)越高,數(shù)據(jù)源數(shù)據(jù)量增長(zhǎng)的越來(lái)越大的情況,難以進(jìn)行快速調(diào)整,數(shù)據(jù)平臺(tái)的開(kāi)發(fā)人員常常需要對(duì)于不同項(xiàng)目的數(shù)據(jù)處理場(chǎng)景進(jìn)行定制修改。
技術(shù)實(shí)現(xiàn)思路
1、基于此,本發(fā)明的目的是提供一種基于golang通道的大數(shù)據(jù)處理方法及系統(tǒng),以解決現(xiàn)有技術(shù)中的不足。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于golang通道的大數(shù)據(jù)處理方法,所述方法包括:
3、將各階段的數(shù)據(jù)處理流程集成為不同的獨(dú)立的數(shù)據(jù)處理鏈;
4、基于預(yù)設(shè)排序方式,并通過(guò)chan通道對(duì)多個(gè)所述數(shù)據(jù)處理鏈進(jìn)行組合鏈接,得到需要的數(shù)據(jù)處理鏈路,基于待處理數(shù)據(jù)對(duì)所述數(shù)據(jù)處理鏈路中各所述數(shù)據(jù)處理鏈的并發(fā)度控制參數(shù)進(jìn)行調(diào)整,得到專(zhuān)屬數(shù)據(jù)處理鏈路;
5、將所述待處理數(shù)據(jù)輸入至相應(yīng)的所述專(zhuān)屬數(shù)據(jù)處理鏈路,以進(jìn)行對(duì)應(yīng)的數(shù)據(jù)處理。
6、優(yōu)選的,所述基于待處理數(shù)據(jù)對(duì)所述數(shù)據(jù)處理鏈路中各所述數(shù)據(jù)處理鏈的并發(fā)度控制參數(shù)進(jìn)行調(diào)整的步驟包括:
7、當(dāng)所述數(shù)據(jù)處理鏈的并發(fā)度控制參數(shù)大于1時(shí),在該數(shù)據(jù)處理鏈的內(nèi)部開(kāi)啟多個(gè)協(xié)程,并通過(guò)至少一個(gè)所述協(xié)程從該數(shù)據(jù)處理鏈的輸入chan通道中拉取數(shù)據(jù)以進(jìn)行處理。
8、優(yōu)選的,在所述數(shù)據(jù)處理鏈路中,將相鄰中的前一個(gè)所述數(shù)據(jù)處理鏈的輸出作為后一個(gè)所述數(shù)據(jù)處理鏈的輸入。
9、優(yōu)選的,所述將所述待處理數(shù)據(jù)輸入至相應(yīng)的所述專(zhuān)屬數(shù)據(jù)處理鏈路之前,所述方法還包括:
10、從待處理數(shù)據(jù)源中獲取到初始數(shù)據(jù),對(duì)所述初始數(shù)的數(shù)據(jù)類(lèi)型進(jìn)行轉(zhuǎn)換,得到相應(yīng)的待處理數(shù)據(jù)。
11、優(yōu)選的,所述將所述待處理數(shù)據(jù)輸入至相應(yīng)的所述專(zhuān)屬數(shù)據(jù)處理鏈路,以進(jìn)行對(duì)應(yīng)的數(shù)據(jù)處理之后,所述方法還包括:
12、將數(shù)據(jù)處理后的最終數(shù)據(jù)存儲(chǔ)至指定的數(shù)據(jù)倉(cāng)庫(kù)中。
13、優(yōu)選的,所述基于預(yù)設(shè)排序方式,并通過(guò)chan通道對(duì)多個(gè)所述數(shù)據(jù)處理鏈進(jìn)行組合鏈接,得到需要的數(shù)據(jù)處理鏈路,得到需要的數(shù)據(jù)處理鏈路的步驟包括:
14、校驗(yàn)所述數(shù)據(jù)處理鏈路中的相鄰所述數(shù)據(jù)處理鏈之間是否鏈接成功。
15、優(yōu)選的,所述方法還包括:
16、新增額外數(shù)據(jù)處理鏈至相應(yīng)的所述數(shù)據(jù)處理鏈路中。
17、為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種基于golang通道的大數(shù)據(jù)處理系統(tǒng),用于實(shí)現(xiàn)上述中所述的基于golang通道的大數(shù)據(jù)處理方法,所述系統(tǒng)包括:
18、集成模塊,用于將各階段的數(shù)據(jù)處理流程集成為不同的獨(dú)立的數(shù)據(jù)處理鏈;
19、鏈接模塊,用于基于預(yù)設(shè)排序方式,并通過(guò)chan通道對(duì)多個(gè)所述數(shù)據(jù)處理鏈進(jìn)行組合鏈接,得到需要的數(shù)據(jù)處理鏈路,基于待處理數(shù)據(jù)對(duì)所述數(shù)據(jù)處理鏈路中各所述數(shù)據(jù)處理鏈的并發(fā)度控制參數(shù)進(jìn)行調(diào)整,得到專(zhuān)屬數(shù)據(jù)處理鏈路;
20、數(shù)據(jù)處理模塊,用于將所述待處理數(shù)據(jù)輸入至相應(yīng)的所述專(zhuān)屬數(shù)據(jù)處理鏈路,以進(jìn)行對(duì)應(yīng)的數(shù)據(jù)處理。
21、優(yōu)選的,所述鏈接模塊包括:
22、拉取單元,用于當(dāng)所述數(shù)據(jù)處理鏈的并發(fā)度控制參數(shù)大于1時(shí),在該數(shù)據(jù)處理鏈的內(nèi)部開(kāi)啟多個(gè)協(xié)程,并通過(guò)至少一個(gè)所述協(xié)程從該數(shù)據(jù)處理鏈的輸入chan通道中拉取數(shù)據(jù)以進(jìn)行處理。
23、優(yōu)選的,在所述數(shù)據(jù)處理鏈路中,將相鄰中的前一個(gè)所述數(shù)據(jù)處理鏈的輸出作為后一個(gè)所述數(shù)據(jù)處理鏈的輸入,其中,相鄰所述數(shù)據(jù)處理鏈之間的數(shù)據(jù)通過(guò)chan通道進(jìn)行傳遞。
24、本發(fā)明的有益效果是:通過(guò)將各階段的數(shù)據(jù)處理流程集成為多個(gè)獨(dú)立的數(shù)據(jù)處理鏈,基于預(yù)設(shè)排序方式并通過(guò)chan通道對(duì)多個(gè)數(shù)據(jù)處理鏈進(jìn)行組合連接,得到數(shù)據(jù)處理鏈路,然后基于待處理數(shù)據(jù),對(duì)相應(yīng)的數(shù)據(jù)處理鏈路中各數(shù)據(jù)處理鏈的并發(fā)度控制參數(shù)進(jìn)行調(diào)整,得到專(zhuān)屬數(shù)據(jù)處理鏈路,然后通過(guò)該專(zhuān)屬數(shù)據(jù)處理鏈路對(duì)待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,不同的數(shù)據(jù)處理鏈路可復(fù)用單個(gè)數(shù)據(jù)處理鏈,實(shí)現(xiàn)了在大數(shù)據(jù)處理場(chǎng)景中,同時(shí)可對(duì)其中的每個(gè)數(shù)據(jù)處理鏈進(jìn)行指定的并發(fā)度的控制,在滿(mǎn)足數(shù)據(jù)處理能力的基礎(chǔ)上,能夠細(xì)化單個(gè)階段的數(shù)據(jù)處理的并發(fā)控制,滿(mǎn)足了復(fù)雜的大數(shù)據(jù)處理流程多階段并發(fā)處理的使用場(chǎng)景。
25、本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
1.一種基于golang通道的大數(shù)據(jù)處理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的golang通道的大數(shù)據(jù)處理方法,其特征在于,所述基于待處理數(shù)據(jù)對(duì)所述數(shù)據(jù)處理鏈路中各所述數(shù)據(jù)處理鏈的并發(fā)度控制參數(shù)進(jìn)行調(diào)整的步驟包括:
3.根據(jù)權(quán)利要求1所述的golang通道的大數(shù)據(jù)處理方法,其特征在于,在所述數(shù)據(jù)處理鏈路中,將相鄰中的前一個(gè)所述數(shù)據(jù)處理鏈的輸出作為后一個(gè)所述數(shù)據(jù)處理鏈的輸入。
4.根據(jù)權(quán)利要求1所述的golang通道的大數(shù)據(jù)處理方法,其特征在于,所述將所述待處理數(shù)據(jù)輸入至相應(yīng)的所述專(zhuān)屬數(shù)據(jù)處理鏈路之前,所述方法還包括:
5.根據(jù)權(quán)利要求1所述的golang通道的大數(shù)據(jù)處理方法,其特征在于,所述將所述待處理數(shù)據(jù)輸入至相應(yīng)的所述專(zhuān)屬數(shù)據(jù)處理鏈路,以進(jìn)行對(duì)應(yīng)的數(shù)據(jù)處理之后,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的golang通道的大數(shù)據(jù)處理方法,其特征在于,所述基于預(yù)設(shè)排序方式,并通過(guò)chan通道對(duì)多個(gè)所述數(shù)據(jù)處理鏈進(jìn)行組合鏈接,得到需要的數(shù)據(jù)處理鏈路,得到需要的數(shù)據(jù)處理鏈路的步驟包括:
7.根據(jù)權(quán)利要求1所述的golang通道的大數(shù)據(jù)處理方法,其特征在于,所述方法還包括:
8.一種基于golang通道的大數(shù)據(jù)處理系統(tǒng),用于實(shí)現(xiàn)權(quán)利要求1至7任一項(xiàng)所述的基于golang通道的大數(shù)據(jù)處理方法,其特征在于,所述系統(tǒng)包括:
9.根據(jù)權(quán)利要求8所述的基于golang通道的大數(shù)據(jù)處理系統(tǒng),其特征在于,所述鏈接模塊包括:
10.根據(jù)權(quán)利要求8所述的基于golang通道的大數(shù)據(jù)處理系統(tǒng),其特征在于,在所述數(shù)據(jù)處理鏈路中,將相鄰中的前一個(gè)所述數(shù)據(jù)處理鏈的輸出作為后一個(gè)所述數(shù)據(jù)處理鏈的輸入,其中,相鄰所述數(shù)據(jù)處理鏈之間的數(shù)據(jù)通過(guò)chan通道進(jìn)行傳遞。