數(shù)據(jù)加載的方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)加載的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]基于互聯(lián)網(wǎng)云技術(shù)的發(fā)展,大數(shù)據(jù)越來(lái)越受到關(guān)注。伴隨著數(shù)據(jù)挖掘維度的增加、覆蓋用戶量的增大,挖掘到有價(jià)值的數(shù)據(jù)量也在不斷的增加。在實(shí)際過(guò)程中,面對(duì)海量的有價(jià)值數(shù)據(jù),為了提高用戶的使用體驗(yàn)以及滿足系統(tǒng)的性能,會(huì)將數(shù)據(jù)分別部署到多個(gè)機(jī)房或多個(gè)數(shù)據(jù)庫(kù)中,用于承擔(dān)不同用戶的查詢需求。例如,通??梢詫⒋罅繑?shù)據(jù)存儲(chǔ)在外部的數(shù)據(jù)庫(kù)(如MySQL、Hbase)中,并定時(shí)進(jìn)行更新。
[0003]現(xiàn)有技術(shù)中,對(duì)于多機(jī)房數(shù)據(jù)加載的場(chǎng)景,需要將待加載的數(shù)據(jù)塊落地到跳板機(jī)的磁盤(pán)中,并由跳板機(jī)將磁盤(pán)化的數(shù)據(jù)塊分別加載到各個(gè)機(jī)房中。
[0004]在上述數(shù)據(jù)加載的過(guò)程中,發(fā)明人發(fā)現(xiàn):跳板機(jī)對(duì)多個(gè)機(jī)房的數(shù)據(jù)加載過(guò)程是串行實(shí)現(xiàn)的,即跳板機(jī)向一個(gè)機(jī)房加載數(shù)據(jù)后再向另一個(gè)機(jī)房進(jìn)行數(shù)據(jù)加載。當(dāng)實(shí)際應(yīng)用中機(jī)房數(shù)量較多時(shí),由于跳板機(jī)與機(jī)房之間的網(wǎng)絡(luò)輸入輸出(Input/Output,簡(jiǎn)稱(chēng)網(wǎng)絡(luò)I/O)接口資源有限,因此,數(shù)據(jù)加載過(guò)程耗時(shí)較長(zhǎng),影響系統(tǒng)的運(yùn)行效率。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提出了一種數(shù)據(jù)加載的方法、裝置及系統(tǒng),主要目的在于解決跨機(jī)房數(shù)據(jù)加載效率低的問(wèn)題。
[0006]依據(jù)本發(fā)明的第一個(gè)方面,本發(fā)明提供了一種數(shù)據(jù)加載的方法,該方法包括:
[0007]將中轉(zhuǎn)設(shè)備中的數(shù)據(jù)塊發(fā)送至主機(jī)房中,主機(jī)房中包含多組加載機(jī),其中,加載機(jī)的組數(shù)與從機(jī)房的個(gè)數(shù)相同,每組加載機(jī)的數(shù)量與對(duì)應(yīng)從機(jī)房中的二級(jí)服務(wù)器數(shù)量相同;
[0008]通過(guò)主機(jī)房將數(shù)據(jù)塊分別寫(xiě)入到各組的每個(gè)加載機(jī)中;
[0009]將加載機(jī)中的數(shù)據(jù)塊寫(xiě)入到從機(jī)房中與加載機(jī)對(duì)應(yīng)的二級(jí)服務(wù)器中。
[0010]依據(jù)本發(fā)明的第二個(gè)方面,本發(fā)明提供了一種數(shù)據(jù)加載的方法,該方法主要針對(duì)主機(jī)房一側(cè),包括:
[0011]主機(jī)房中控服務(wù)器接收中轉(zhuǎn)設(shè)備發(fā)送的數(shù)據(jù)塊;
[0012]主機(jī)房中控服務(wù)器將接收到的數(shù)據(jù)塊分別寫(xiě)入到主機(jī)房中的各組加載機(jī)中,其中,主機(jī)房中包含多組加載機(jī),加載機(jī)的組數(shù)與從機(jī)房的個(gè)數(shù)相同,每組加載機(jī)的數(shù)量與對(duì)應(yīng)從機(jī)房中的二級(jí)服務(wù)器數(shù)量相同;
[0013]主機(jī)房中控服務(wù)器通過(guò)加載機(jī)將數(shù)據(jù)塊寫(xiě)入到從機(jī)房中與加載機(jī)對(duì)應(yīng)的二級(jí)服務(wù)器中。
[0014]依據(jù)本發(fā)明的第三個(gè)方面,本發(fā)明提供了一種數(shù)據(jù)加載的裝置,該裝置可以位于主機(jī)房中,包括:
[0015]接收單元,用于接收中轉(zhuǎn)設(shè)備發(fā)送的數(shù)據(jù)塊;
[0016]寫(xiě)入單元,用于將接收單元接收到的數(shù)據(jù)塊分別寫(xiě)入到主機(jī)房中的各組加載機(jī)中,其中,主機(jī)房中包含多組加載機(jī),加載機(jī)的組數(shù)與從機(jī)房的個(gè)數(shù)相同,每組加載機(jī)的數(shù)量與對(duì)應(yīng)從機(jī)房中的二級(jí)服務(wù)器數(shù)量相同;
[0017]控制單元,用于控制加載機(jī)將寫(xiě)入單元寫(xiě)入的數(shù)據(jù)塊寫(xiě)入到從機(jī)房中與加載機(jī)對(duì)應(yīng)的二級(jí)服務(wù)器中。
[0018]依據(jù)本發(fā)明的第四個(gè)方面,本發(fā)明提供了一種數(shù)據(jù)加載的系統(tǒng),該系統(tǒng)包括:
[0019]中轉(zhuǎn)設(shè)備、主機(jī)房及從機(jī)房,其中主機(jī)房中包含主機(jī)房中控服務(wù)器及多組加載機(jī),從機(jī)房中包含二級(jí)服務(wù)器,加載機(jī)的組數(shù)與從機(jī)房的個(gè)數(shù)相同,每組加載機(jī)的數(shù)量與對(duì)應(yīng)從機(jī)房中的二級(jí)服務(wù)器數(shù)量相同;
[0020]中轉(zhuǎn)設(shè)備,用于將數(shù)據(jù)塊發(fā)送至主機(jī)房中控服務(wù)器;
[0021]主機(jī)房中控服務(wù)器,用于將中轉(zhuǎn)設(shè)備發(fā)送的數(shù)據(jù)塊分別寫(xiě)入到各組的每個(gè)加載機(jī)中;
[0022]加載機(jī),用于將主機(jī)房中控服務(wù)器寫(xiě)入的數(shù)據(jù)塊寫(xiě)入到從機(jī)房中與加載機(jī)對(duì)應(yīng)的二級(jí)服務(wù)器中。
[0023]借由上述技術(shù)方案,本發(fā)明實(shí)施例提供的數(shù)據(jù)加載的方法,裝置及系統(tǒng),能夠?qū)⒅修D(zhuǎn)設(shè)備中的數(shù)據(jù)塊發(fā)送至主機(jī)房中,通過(guò)主機(jī)房將數(shù)據(jù)塊分別寫(xiě)入到主機(jī)房?jī)?nèi)的各組加載機(jī)中,再由各組加載機(jī)將數(shù)據(jù)塊寫(xiě)入到從機(jī)房中與加載機(jī)對(duì)應(yīng)的二級(jí)服務(wù)器。與現(xiàn)有技術(shù)中由中轉(zhuǎn)設(shè)備順序推送數(shù)據(jù)到不同機(jī)房的方式相比,本發(fā)明由主機(jī)房負(fù)責(zé)數(shù)據(jù)的加載,通過(guò)主機(jī)房?jī)?nèi)的多組加載機(jī)并行向多個(gè)從機(jī)房中的二級(jí)服務(wù)器推送數(shù)據(jù),中轉(zhuǎn)設(shè)備只需將數(shù)據(jù)發(fā)送至主機(jī)房即可,由于中轉(zhuǎn)設(shè)備只涉及一次數(shù)據(jù)加載過(guò)程,因此可以大大節(jié)省I/o的資源占用,從而能夠提高跨機(jī)房環(huán)境下的數(shù)據(jù)加載效率。
[0024]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說(shuō)明】
[0025]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0026]圖1示出了本發(fā)明實(shí)施例提供的一種數(shù)據(jù)加載的方法的流程圖;
[0027]圖2示出了本發(fā)明實(shí)施例提供的中轉(zhuǎn)設(shè)備以一種方式發(fā)送數(shù)據(jù)塊的示意圖;
[0028]圖3示出了本發(fā)明實(shí)施例提供的中轉(zhuǎn)設(shè)備以一種方式發(fā)送數(shù)據(jù)分片的示意圖;
[0029]圖4示出了本發(fā)明實(shí)施例提供的中轉(zhuǎn)設(shè)備以另一種方式發(fā)送數(shù)據(jù)分片的示意圖;
[0030]圖5示出了本發(fā)明實(shí)施例提供的以一種規(guī)則切片得到的數(shù)據(jù)分片的示意圖;
[0031]圖6示出了本發(fā)明實(shí)施例提供的以另一種規(guī)則切片得到的數(shù)據(jù)分片的示意圖;
[0032]圖7示出了本發(fā)明實(shí)施例提供的以另一種規(guī)則切片得到的數(shù)據(jù)分片的示意圖;
[0033]圖8示出了本發(fā)明實(shí)施例提供的主機(jī)房以一種方式向加載機(jī)寫(xiě)入數(shù)據(jù)的示意圖;
[0034]圖9示出了本發(fā)明實(shí)施例提供的主機(jī)房以另一種方式向加載機(jī)寫(xiě)入數(shù)據(jù)的示意圖;
[0035]圖10示出了本發(fā)明實(shí)施例提供的主機(jī)房以另一種方式向加載機(jī)寫(xiě)入數(shù)據(jù)的示意圖;
[0036]圖11示出了本發(fā)明實(shí)施例提供的一種數(shù)據(jù)加載的方法的流程圖;
[0037]圖12示出了本發(fā)明實(shí)施例提供的一種數(shù)據(jù)加載的裝置的結(jié)構(gòu)示意圖;
[0038]圖13示出了本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)加載的裝置的結(jié)構(gòu)示意圖;
[0039]圖14示出了本發(fā)明實(shí)施例提供的一種數(shù)據(jù)加載的系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0040]下面將參照附圖更加詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0041]基于互聯(lián)網(wǎng)云技術(shù)的發(fā)展,人們可以通過(guò)各種數(shù)據(jù)系統(tǒng)查詢并使用海量的有價(jià)值數(shù)據(jù),為了提高用戶的使用體驗(yàn)以及滿足系統(tǒng)的性能,數(shù)據(jù)通常分別部署在多個(gè)機(jī)房中,用于承擔(dān)不同用戶的查詢需求。面對(duì)海量數(shù)據(jù)的更新,如果對(duì)大量機(jī)房一個(gè)個(gè)的更新數(shù)據(jù),則會(huì)使數(shù)據(jù)更新時(shí)間過(guò)長(zhǎng);同時(shí),中轉(zhuǎn)設(shè)備將海量數(shù)據(jù)順序推送給大量機(jī)房的過(guò)程中,也會(huì)嚴(yán)重占用中轉(zhuǎn)設(shè)備的處理資源,因此這種方式在實(shí)際應(yīng)用中的效果并不理想。為了解決跨機(jī)房環(huán)境下的數(shù)據(jù)加載效率低下的問(wèn)題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)加載的方法,如圖1所示,該方法包括:
[0042]101、中轉(zhuǎn)設(shè)備將數(shù)據(jù)塊發(fā)送至主機(jī)房中。
[0043]中轉(zhuǎn)設(shè)備可以登錄到目標(biāo)設(shè)備進(jìn)行維護(hù),即可以將中轉(zhuǎn)設(shè)備看作是一臺(tái)服務(wù)器,它能夠?qū)⑾到y(tǒng)內(nèi)的海量數(shù)據(jù)落地到本地磁盤(pán),然后將磁盤(pán)化的數(shù)據(jù)推送到各個(gè)機(jī)房中,在實(shí)際應(yīng)用中,該中轉(zhuǎn)設(shè)備可以是跳板機(jī)或者堡皇機(jī);而主機(jī)房可以作為數(shù)據(jù)推送的中心,即由主機(jī)房向其他機(jī)房(從機(jī)房)推送數(shù)據(jù)。該主機(jī)房中包含有多組加載機(jī),其中加載機(jī)的組數(shù)與從機(jī)房的個(gè)數(shù)相同。從機(jī)房中包含有大量二級(jí)服務(wù)器,其中二級(jí)服務(wù)器的數(shù)量與對(duì)應(yīng)的主機(jī)房中每組加載機(jī)的數(shù)量相同。此種方式能夠極大的緩解中轉(zhuǎn)設(shè)備頻繁向各個(gè)機(jī)房推送數(shù)據(jù)時(shí)造成的處理資源的過(guò)度占用。
[0044]進(jìn)一步的,在中轉(zhuǎn)設(shè)備將數(shù)據(jù)塊發(fā)送至主機(jī)房的過(guò)程中,可以有不同的實(shí)現(xiàn)方式,這些實(shí)現(xiàn)方式可以包括:
[0045]I)中轉(zhuǎn)設(shè)備將落地到本地磁盤(pán)的數(shù)據(jù)塊發(fā)送至主機(jī)房中,如圖2所示。
[0046]這種將數(shù)據(jù)塊發(fā)送至主機(jī)房的實(shí)現(xiàn)方式雖然能夠減小創(chuàng)建和維護(hù)數(shù)據(jù)推送進(jìn)程的資源開(kāi)銷(xiāo),但是由于數(shù)據(jù)塊的數(shù)據(jù)量過(guò)大,還是會(huì)導(dǎo)致數(shù)據(jù)發(fā)送的時(shí)間過(guò)長(zhǎng)。
[0047]2)中轉(zhuǎn)設(shè)備將落地到本地磁盤(pán)的數(shù)據(jù)塊切片后以單個(gè)進(jìn)程向主機(jī)房串行發(fā)送數(shù)據(jù)分片,如圖3所示。
[0048]這種將數(shù)據(jù)塊切片后以單個(gè)進(jìn)程向主機(jī)房串行發(fā)送數(shù)據(jù)分片的實(shí)現(xiàn)方式,能夠減小單次發(fā)送的數(shù)據(jù)量,從而使每次發(fā)送數(shù)據(jù)的時(shí)間較短,相比于一次發(fā)送數(shù)據(jù)量較大的數(shù)據(jù)塊可能造成的傳輸卡頓而言,通過(guò)多次發(fā)送小數(shù)據(jù)量的數(shù)據(jù)分片的方式能夠更快的向主機(jī)房發(fā)送整個(gè)數(shù)據(jù)塊包含的全部數(shù)據(jù)。
[0049]3)中轉(zhuǎn)設(shè)備將落地到本地磁盤(pán)的數(shù)據(jù)塊切片后以多個(gè)進(jìn)程向主機(jī)房并行發(fā)送數(shù)據(jù)分片,如圖4所示。
[0050]基于上述將數(shù)據(jù)塊切片后以單個(gè)進(jìn)程向主機(jī)房串行發(fā)送數(shù)據(jù)分片的方式而言,這種將數(shù)據(jù)分片以多個(gè)進(jìn)程向主機(jī)房并行發(fā)送的實(shí)現(xiàn)方式雖然需要在創(chuàng)建和維護(hù)數(shù)據(jù)推送進(jìn)程方面開(kāi)銷(xiāo)一定的資源,但是在不超出中轉(zhuǎn)設(shè)備和主機(jī)房的處理資源的情況下,能夠極大的提高向主機(jī)房發(fā)送數(shù)據(jù)的速度。
[0051]102、主機(jī)房將數(shù)據(jù)塊分別寫(xiě)入到各組的每個(gè)加載機(jī)中。
[0052]當(dāng)中轉(zhuǎn)設(shè)備將數(shù)據(jù)塊發(fā)送至主機(jī)房后,主機(jī)房會(huì)將接收到的數(shù)據(jù)塊分別寫(xiě)入到各組的每個(gè)加載機(jī)中,這一步驟的結(jié)果是使每個(gè)加載機(jī)都被寫(xiě)入完整的數(shù)據(jù)塊。
[0053]進(jìn)一步的,在主機(jī)房將數(shù)據(jù)塊分別寫(xiě)入到各組的每個(gè)加載機(jī)中時(shí),與上述中轉(zhuǎn)設(shè)備將數(shù)據(jù)塊發(fā)送至主機(jī)房的實(shí)現(xiàn)方式類(lèi)似,其實(shí)現(xiàn)方式可以包括:
[0054]a)當(dāng)主機(jī)房接收到的是中轉(zhuǎn)設(shè)備發(fā)送的數(shù)據(jù)塊時(shí),可以將該數(shù)據(jù)塊以單個(gè)線程向各組的每個(gè)加載機(jī)串行發(fā)送,直至每個(gè)加載機(jī)都被寫(xiě)入完整的數(shù)據(jù)塊。
[0055]b)當(dāng)主機(jī)房接收到的是中轉(zhuǎn)設(shè)備發(fā)送的數(shù)據(jù)塊時(shí),可以將該數(shù)據(jù)塊以多個(gè)線程并行向各組的每個(gè)加載機(jī)發(fā)送,直至每個(gè)加載機(jī)都被寫(xiě)入完整的數(shù)據(jù)塊。
[0056]這種以多個(gè)線程并行向各組加載機(jī)發(fā)送數(shù)據(jù)塊的實(shí)現(xiàn)方式,雖然需要在創(chuàng)建和維護(hù)數(shù)據(jù)推送線程方面開(kāi)銷(xiāo)一定的資源,但是在不超出主機(jī)房的處理資源的情況下,能夠極大的提高向加載機(jī)發(fā)送數(shù)據(jù)的速度。
[0057]c)當(dāng)主機(jī)房接收到的是中轉(zhuǎn)設(shè)備發(fā)送的數(shù)據(jù)塊時(shí),可以將數(shù)據(jù)塊切片后獲得數(shù)據(jù)分片,再將數(shù)據(jù)分片以單個(gè)線程依次向各組的每個(gè)加載機(jī)串行發(fā)送。
[0058]這種依次向加載機(jī)中寫(xiě)入數(shù)據(jù)量較小的數(shù)據(jù)分片的方式相對(duì)于一次向加載機(jī)中寫(xiě)入數(shù)據(jù)量較大的數(shù)據(jù)塊而言,能夠在整體上縮短向加載機(jī)中寫(xiě)入完整數(shù)據(jù)塊的時(shí)間。
[0059]d)當(dāng)主機(jī)房接收到的是中轉(zhuǎn)設(shè)備發(fā)送的數(shù)據(jù)塊時(shí),可以將數(shù)據(jù)塊切片后獲得數(shù)據(jù)分片,再將數(shù)據(jù)分片以多