數(shù)據(jù)同步方法和集群節(jié)點(diǎn)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù)領(lǐng)域,并且更具體地,涉及一種數(shù)據(jù)同步方法和集群節(jié)點(diǎn)。
【背景技術(shù)】
[0002]Impala作為分布式系統(tǒng)基礎(chǔ)架構(gòu)(如Hadoop)的新型查詢(xún)系統(tǒng),提供SQL (Structured Query Language,結(jié)構(gòu)化查詢(xún)語(yǔ)言)語(yǔ)義。相較于使用MapReduce編程模型的Hive (基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具),Impala能夠以低延時(shí)查詢(xún)存儲(chǔ)在Hadoop的HDFS (Hadoop Distributed File System,分布式文件系統(tǒng))中的PB級(jí)大數(shù)據(jù),為依托于數(shù)據(jù)分析的決策提供了更高效的支撐。
[0003]但是,在現(xiàn)有的數(shù)據(jù)同步過(guò)程中,分布式系統(tǒng)Hadoop采用Hive手工以文件方式導(dǎo)入數(shù)據(jù),再對(duì)數(shù)據(jù)的有效性或完整性進(jìn)行判斷,因此,不僅人力成本大且效率低下。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種數(shù)據(jù)同步方法和集群節(jié)點(diǎn),能夠有效地降低人力成本,并且提高數(shù)據(jù)同步的效率。
[0005]第一方面,提供了一種數(shù)據(jù)同步方法,該方法包括:在生成源數(shù)據(jù)的集群節(jié)點(diǎn)生成源數(shù)據(jù)的集群節(jié)點(diǎn)上對(duì)所述源數(shù)據(jù)的完整性進(jìn)行驗(yàn)證;若驗(yàn)證所述源數(shù)據(jù)為完整的,則獲取所述源數(shù)據(jù);根據(jù)所述源數(shù)據(jù)對(duì)數(shù)據(jù)表進(jìn)行更新;其中所述源數(shù)據(jù)為完整的表示所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)生成源數(shù)據(jù)的集群節(jié)點(diǎn)已完成生成所述源數(shù)據(jù)的過(guò)程,所述數(shù)據(jù)表用于記錄所述源數(shù)據(jù)的元信息。
[0006]結(jié)合第一方面,在一種可能的實(shí)現(xiàn)方式中,所述在源數(shù)據(jù)所在集群節(jié)點(diǎn)上對(duì)所述源數(shù)據(jù)的完整性進(jìn)行驗(yàn)證,包括:當(dāng)通過(guò)對(duì)所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)生成源數(shù)據(jù)的集群節(jié)點(diǎn)進(jìn)行輪詢(xún),獲取到完整標(biāo)記時(shí),驗(yàn)證所述源數(shù)據(jù)為完整的;或者當(dāng)接收到所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)生成源數(shù)據(jù)的集群節(jié)點(diǎn)提交的完整標(biāo)記時(shí),驗(yàn)證所述源數(shù)據(jù)為完整的;其中所述完整標(biāo)記是由所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)生成源數(shù)據(jù)的集群節(jié)點(diǎn)在所述源數(shù)據(jù)生成完成之后廣生的。
[0007]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述在源數(shù)據(jù)所在集群節(jié)點(diǎn)上對(duì)所述源數(shù)據(jù)的完整性進(jìn)行驗(yàn)證,包括:當(dāng)所述源數(shù)據(jù)的大小在預(yù)定的時(shí)間范圍內(nèi)沒(méi)有改變時(shí),驗(yàn)證所述源數(shù)據(jù)為完整的。
[0008]進(jìn)一步地,所述當(dāng)所述源數(shù)據(jù)的大小在預(yù)定的時(shí)間范圍內(nèi)沒(méi)有改變時(shí),驗(yàn)證所述源數(shù)據(jù)為完整的,包括:多次檢測(cè)所述源數(shù)據(jù)的大小,每次間隔一定的時(shí)間,所述預(yù)定的時(shí)間范圍是指首次與最后一次檢測(cè)所述源數(shù)據(jù)的大小的時(shí)間間隔;如果多次檢測(cè)到的所述源數(shù)據(jù)的大小都是一致的,則表示所述源數(shù)據(jù)的大小在預(yù)定的時(shí)間范圍內(nèi)沒(méi)有改變,驗(yàn)證所述源數(shù)據(jù)為完整的。
[0009]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,在所述根據(jù)所述源數(shù)據(jù)對(duì)數(shù)據(jù)表進(jìn)行更新之前,所述方法還包括:對(duì)所述源數(shù)據(jù)進(jìn)行過(guò)濾,以過(guò)濾掉無(wú)效數(shù)據(jù)。
[0010]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,在所述獲取所述源數(shù)據(jù)之后,所述方法還包括:分區(qū)創(chuàng)建所述源數(shù)據(jù)的表結(jié)構(gòu),所述表結(jié)構(gòu)記錄了從所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)生成源數(shù)據(jù)的集群節(jié)點(diǎn)到目標(biāo)集群節(jié)點(diǎn)上的存儲(chǔ)位置的映射關(guān)系,所述目標(biāo)集群節(jié)點(diǎn)指的是獲取所述源數(shù)據(jù)的集群節(jié)點(diǎn)。
[0011]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)表米用全量表,時(shí)間分區(qū)表或拉鏈表的形式。
[0012]第二方面,提供了一種數(shù)據(jù)同步方法,該方法包括:生成源數(shù)據(jù);
[0013]在目標(biāo)集群節(jié)點(diǎn)驗(yàn)證所述源數(shù)據(jù)為完整的之后,向所述目標(biāo)集群節(jié)點(diǎn)上傳所述源數(shù)據(jù),以便所述目標(biāo)集群節(jié)點(diǎn)根據(jù)所述源數(shù)據(jù)對(duì)數(shù)據(jù)表進(jìn)行更新;其中所述源數(shù)據(jù)為完整的表示所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)生成源數(shù)據(jù)的集群節(jié)點(diǎn)已完成生成所述源數(shù)據(jù)的過(guò)程,所述數(shù)據(jù)表用于記錄所述源數(shù)據(jù)的元信息。
[0014]結(jié)合第二方面,在一種可能的實(shí)現(xiàn)方式中,在所述向所述目標(biāo)集群節(jié)點(diǎn)上傳所述源數(shù)據(jù)之前,所述方法還包括:在源數(shù)據(jù)生成完成之后,生成完整標(biāo)記,所述完整標(biāo)記用于指示所述源數(shù)據(jù)為完整的;向所述目標(biāo)集群節(jié)點(diǎn)提交所述完整標(biāo)記。
[0015]第三方面,提供了一種數(shù)據(jù)同步的集群節(jié)點(diǎn),該集群節(jié)點(diǎn)包括:驗(yàn)證模塊,用于在生成源數(shù)據(jù)的集群節(jié)點(diǎn)上對(duì)所述源數(shù)據(jù)的完整性進(jìn)行驗(yàn)證;獲取模塊,用于若所述驗(yàn)證模塊驗(yàn)證所述源數(shù)據(jù)為完整的,則獲取所述源數(shù)據(jù);更新模塊,用于根據(jù)所述獲取模塊獲取的所述源數(shù)據(jù)對(duì)數(shù)據(jù)表進(jìn)行更新;其中所述源數(shù)據(jù)為完整的表示所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)已完成生成所述源數(shù)據(jù)的過(guò)程,所述數(shù)據(jù)表用于記錄所述源數(shù)據(jù)的元信息。
[0016]結(jié)合第三方面,在一種可能的實(shí)現(xiàn)方式中,所述驗(yàn)證模塊具體用于:當(dāng)通過(guò)對(duì)所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)進(jìn)行輪詢(xún),獲取到完整標(biāo)記時(shí),驗(yàn)證所述源數(shù)據(jù)為完整的;或者所述驗(yàn)證模塊具體用于:當(dāng)接收到所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)提交的完整標(biāo)記時(shí),驗(yàn)證所述源數(shù)據(jù)為完整的;其中所述完整標(biāo)記是由所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)在所述源數(shù)據(jù)生成完成之后產(chǎn)生的。
[0017]結(jié)合第三方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述驗(yàn)證模塊具體用于:當(dāng)所述源數(shù)據(jù)的大小在預(yù)定的時(shí)間范圍內(nèi)沒(méi)有改變時(shí),驗(yàn)證所述源數(shù)據(jù)為完整的。
[0018]結(jié)合第三方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述驗(yàn)證模塊具體用于:多次檢測(cè)所述源數(shù)據(jù)的大小,每次間隔一定的時(shí)間,如果多次檢測(cè)到的所述源數(shù)據(jù)的大小都是一致的,則表示所述源數(shù)據(jù)的大小在預(yù)定的時(shí)間范圍內(nèi)沒(méi)有改變,驗(yàn)證所述源數(shù)據(jù)為完整的,其中所述預(yù)定的時(shí)間范圍是指首次與最后一次檢測(cè)所述源數(shù)據(jù)的大小的時(shí)間間隔。
[0019]結(jié)合第三方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述更新模塊還用于:對(duì)所述源數(shù)據(jù)進(jìn)行過(guò)濾,以過(guò)濾掉無(wú)效數(shù)據(jù)。
[0020]結(jié)合第三方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述集群節(jié)點(diǎn)還包括:創(chuàng)建模塊,用于分區(qū)創(chuàng)建所述源數(shù)據(jù)的表結(jié)構(gòu),所述表結(jié)構(gòu)記錄了從所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)到目標(biāo)集群節(jié)點(diǎn)上的存儲(chǔ)位置的映射關(guān)系,所述目標(biāo)集群節(jié)點(diǎn)指的是獲取所述源數(shù)據(jù)的集群節(jié)點(diǎn)。
[0021]第四方面,提供了一種生成源數(shù)據(jù)的集群節(jié)點(diǎn),該集群節(jié)點(diǎn)包括:生成模塊,用于生成源數(shù)據(jù);上傳模塊,用于在目標(biāo)集群節(jié)點(diǎn)驗(yàn)證所述源數(shù)據(jù)為完整的之后,向所述目標(biāo)集群節(jié)點(diǎn)上傳所述生成模塊生成的所述源數(shù)據(jù),以便所述目標(biāo)集群節(jié)點(diǎn)根據(jù)所述源數(shù)據(jù)對(duì)數(shù)據(jù)表進(jìn)行更新;其中所述源數(shù)據(jù)為完整的表示所述生成源數(shù)據(jù)的集群節(jié)點(diǎn)已完成生成所述源數(shù)據(jù)的過(guò)程,所述數(shù)據(jù)表用于記錄所述源數(shù)據(jù)的元信息。
[0022]結(jié)合第四方面,在一種可能的實(shí)現(xiàn)方式中,所述生成模塊還用于:在源數(shù)據(jù)生成完成之后,生成完整標(biāo)記,所述完整標(biāo)記用于指示所述源數(shù)據(jù)為完整的;所述上傳模塊還用于:向所述目標(biāo)集群節(jié)點(diǎn)提交所述生成模塊生成的所述完整標(biāo)記。
[0023]在本發(fā)明實(shí)施例中,通過(guò)在生成源數(shù)據(jù)的集群節(jié)點(diǎn)上來(lái)實(shí)現(xiàn)源數(shù)據(jù)完整性的驗(yàn)證,在源數(shù)據(jù)完整的情況下,從生成源數(shù)據(jù)的集群節(jié)點(diǎn)上