數(shù)據(jù)統(tǒng)計(jì)分析方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)統(tǒng)計(jì)分析方法及裝置,所述方法包括:解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作;根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù),并根據(jù)所述任務(wù)參數(shù)調(diào)度分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。通過(guò)本發(fā)明的技術(shù)方案,解決了相關(guān)技術(shù)中無(wú)法獲知任務(wù)的操作記錄和執(zhí)行任務(wù)后的統(tǒng)計(jì)分析結(jié)果的問(wèn)題。
【專(zhuān)利說(shuō)明】數(shù)據(jù)統(tǒng)計(jì)分析方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)技術(shù),尤其涉及一種數(shù)據(jù)統(tǒng)計(jì)分析方法及裝置。
【背景技術(shù)】
[0002]Hive是基于Apache分布式框架Hadoop的數(shù)據(jù)倉(cāng)庫(kù)工具,用于存儲(chǔ)和處理海量結(jié)構(gòu)化數(shù)據(jù),Hive將數(shù)據(jù)存儲(chǔ)于Hadoop分布式文件系統(tǒng)(HDFS, Hadoop Distributed FileSystem),采用類(lèi)似數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)和處理機(jī)制,并采用HQL (Hive Query Language)對(duì)這些數(shù)據(jù)進(jìn)行自動(dòng)化管理和處理。
[0003]分布式的、面向列的數(shù)據(jù)庫(kù)HBase可以使用本地文件系統(tǒng)或HDFS存儲(chǔ)數(shù)據(jù),但為了提高數(shù)據(jù)可靠性和系統(tǒng)的健壯性,發(fā)揮HBase處理大數(shù)據(jù)量的優(yōu)勢(shì)時(shí)需要使用HDFS作為存儲(chǔ)數(shù)據(jù)的文件系統(tǒng)。
[0004]Hive將海量結(jié)構(gòu)化數(shù)據(jù)映射到一張數(shù)據(jù)庫(kù)表中,而實(shí)際上這些數(shù)據(jù)分布式地存儲(chǔ)在HDFS中,Hive對(duì)數(shù)據(jù)分析人員下達(dá)的命令語(yǔ)句進(jìn)行解析和轉(zhuǎn)換,最終生成一系列基于Hadoop的映射/規(guī)約(Map/Reduce)模型的任務(wù)(Job),由Hadoop執(zhí)行這些任務(wù)完成對(duì)數(shù)據(jù)的統(tǒng)計(jì)分析。
[0005]目前,數(shù)據(jù)分析人員直接操作Hive時(shí)需要有較高的專(zhuān)業(yè)操作技能,不利于該技術(shù)的推廣,并且,Hive的一些功能例如用戶定義函數(shù)(UDF, User Defined Funct1n)需要頻繁加載,操作繁瑣且效率低下;對(duì)于頻繁執(zhí)行或者定期執(zhí)行的對(duì)HBase的數(shù)據(jù)文件進(jìn)行統(tǒng)計(jì)分析的任務(wù),通常編寫(xiě)腳本通過(guò)任務(wù)管理工具Cron來(lái)調(diào)度執(zhí)行,實(shí)際應(yīng)用中任務(wù)數(shù)量較多,且管理人員無(wú)從得知腳本具體的功能,因此無(wú)法得知相應(yīng)任務(wù)的操作記錄,任務(wù)失敗時(shí)也就無(wú)法進(jìn)行恢復(fù)操作。
[0006]綜上所述,由于相關(guān)技術(shù)中無(wú)法獲知腳本的具體功能,因此無(wú)法獲知任務(wù)的操作記錄以及任務(wù)的統(tǒng)計(jì)分析結(jié)果。
【發(fā)明內(nèi)容】
[0007]有鑒于此,本發(fā)明的主要目的在于提供一種數(shù)據(jù)統(tǒng)計(jì)分析方法及裝置,以解決相關(guān)技術(shù)中無(wú)法獲知任務(wù)的操作記錄以及任務(wù)的統(tǒng)計(jì)分析結(jié)果的問(wèn)題。
[0008]為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0009]本發(fā)明提供了一種數(shù)據(jù)統(tǒng)計(jì)分析方法,該方法支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)工具對(duì)基于分布式框架的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)與對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析的任務(wù)預(yù)關(guān)聯(lián),該方法包括:
[0010]解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝所述數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作;
[0011]根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù),并根據(jù)所述任務(wù)參數(shù)調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。
[0012]優(yōu)選地,解析所接收的任務(wù)參數(shù)之前,該方法還包括:
[0013]將所接收的任務(wù)參數(shù)存儲(chǔ)至緩沖存儲(chǔ)器;
[0014]持久化所接收的任務(wù)參數(shù)至所述數(shù)據(jù)庫(kù);
[0015]在所述緩沖存儲(chǔ)器存儲(chǔ)的任務(wù)參數(shù)丟失時(shí),將所述數(shù)據(jù)庫(kù)中的任務(wù)參數(shù)發(fā)送至所述緩沖存儲(chǔ)器。
[0016]優(yōu)選地,所述任務(wù)參數(shù)包括:任務(wù)身份標(biāo)識(shí)(ID, IDentity)、任務(wù)對(duì)應(yīng)的命令語(yǔ)句;
[0017]相應(yīng)地,所述解析所接收的任務(wù)參數(shù)之前,該方法還包括:
[0018]確定所述存儲(chǔ)緩沖器中未存儲(chǔ)所述任務(wù)ID,且所述命令語(yǔ)句有效。
[0019]優(yōu)選地,所述解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝所述數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作,包括:
[0020]解析所述任務(wù)參數(shù)中的命令語(yǔ)句,從所述命令語(yǔ)句的解析結(jié)果中提取查詢(xún)字段,在所述數(shù)據(jù)庫(kù)中建立與所述任務(wù)ID對(duì)應(yīng)的表,在所述對(duì)應(yīng)的表中建立與所述查詢(xún)字段對(duì)應(yīng)的字段。
[0021]優(yōu)選地,所述任務(wù)參數(shù)還包括:任務(wù)狀態(tài)標(biāo)識(shí)、任務(wù)執(zhí)行日期、任務(wù)執(zhí)行時(shí)間和任務(wù)關(guān)聯(lián)的編程模型;
[0022]相應(yīng)地,所述根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù),并根據(jù)所述任務(wù)參數(shù)調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中,包括:
[0023]根據(jù)所述命令語(yǔ)句和所述任務(wù)關(guān)聯(lián)的編程模型生成任務(wù),在確定所生成的任務(wù)對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)為開(kāi)啟時(shí),在所述任務(wù)執(zhí)行日期的所述任務(wù)執(zhí)行時(shí)間指定的時(shí)間到來(lái)時(shí),調(diào)度所述分布式框架而執(zhí)行所生成的任務(wù),并將執(zhí)行所述任務(wù)的記錄和執(zhí)行所述任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果,存儲(chǔ)至所述數(shù)據(jù)庫(kù)中所述查詢(xún)字段對(duì)應(yīng)的字段。
[0024]本發(fā)明還提供了一種數(shù)據(jù)統(tǒng)計(jì)分析裝置,該裝置支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)工具對(duì)基于分布式框架的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)與對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析的任務(wù)預(yù)關(guān)聯(lián),該裝置包括:接收模塊、解析建表模塊、任務(wù)生成模塊和調(diào)度執(zhí)行模塊;其中,
[0025]所述接收模塊,用于接收任務(wù)參數(shù);
[0026]所述解析建表模塊,用于解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝所述數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作;
[0027]所述任務(wù)生成模塊,用于根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù);
[0028]所述調(diào)度執(zhí)行模塊,用于根據(jù)所述任務(wù)參數(shù)調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果,存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。
[0029]優(yōu)選地,該裝置還包括緩沖存儲(chǔ)器和發(fā)送模塊;其中,
[0030]所述接收模塊,還用于將接收的任務(wù)參數(shù)存儲(chǔ)至所述緩沖存儲(chǔ)器;持久化所接收的任務(wù)參數(shù)至所述數(shù)據(jù)庫(kù);
[0031]所述發(fā)送模塊,用于在所述緩沖存儲(chǔ)器存儲(chǔ)的任務(wù)參數(shù)丟失時(shí),將所述數(shù)據(jù)庫(kù)中的任務(wù)參數(shù)發(fā)送至所述緩沖存儲(chǔ)器。
[0032]優(yōu)選地,所述任務(wù)參數(shù)包括:任務(wù)ID、任務(wù)對(duì)應(yīng)的命令語(yǔ)句;
[0033]該裝置還包括:確定模塊,用于確定所述存儲(chǔ)緩沖器中未存儲(chǔ)所述任務(wù)ID,且所述命令語(yǔ)句有效時(shí),觸發(fā)所述解析建表模塊。
[0034]優(yōu)選地,所述解析建表模塊,還用于解析所述任務(wù)參數(shù)中的命令語(yǔ)句,從所述命令語(yǔ)句的解析結(jié)果中提取查詢(xún)字段,在所述數(shù)據(jù)庫(kù)中建立與所述任務(wù)ID對(duì)應(yīng)的表,在所述對(duì)應(yīng)的表中建立與所述查詢(xún)字段對(duì)應(yīng)的字段。
[0035]優(yōu)選地,所述任務(wù)參數(shù)還包括:任務(wù)狀態(tài)標(biāo)識(shí)、任務(wù)執(zhí)行日期、任務(wù)執(zhí)行時(shí)間和任務(wù)關(guān)聯(lián)的編程模型;
[0036]所述任務(wù)生成模塊,還用于根據(jù)所述命令語(yǔ)句和所述任務(wù)關(guān)聯(lián)的編程模型生成任務(wù);
[0037]所述確定模塊,還用于確定所生成的任務(wù)對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)為開(kāi)啟時(shí),在所述任務(wù)執(zhí)行日期的所述任務(wù)執(zhí)行時(shí)間指定的時(shí)間到來(lái)時(shí)觸發(fā)所述調(diào)度執(zhí)行模塊;
[0038]所述調(diào)度執(zhí)行模塊,還用于調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果,存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。
[0039]本發(fā)明所提供的技術(shù)方案中,根據(jù)任務(wù)參數(shù)在數(shù)據(jù)庫(kù)中建立與任務(wù)對(duì)應(yīng)的表,并根據(jù)所述任務(wù)參數(shù)調(diào)度分布式框架執(zhí)行根據(jù)任務(wù)參數(shù)生成的任務(wù),而任務(wù)執(zhí)行后統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)在所建立的表中,解決了無(wú)法獲知任務(wù)操作記錄及任務(wù)統(tǒng)計(jì)分析結(jié)果的問(wèn)題;
[0040]進(jìn)一步地,在所述緩沖存儲(chǔ)器存儲(chǔ)的任務(wù)參數(shù)丟失時(shí),將所述數(shù)據(jù)庫(kù)中的任務(wù)參數(shù)發(fā)送至所述緩沖存儲(chǔ)器,保證了任務(wù)執(zhí)行的健壯性和穩(wěn)定性;
[0041]進(jìn)一步地,確定所述存儲(chǔ)緩沖器中未存儲(chǔ)所述任務(wù)ID,且所述命令語(yǔ)句有效,如此,在任務(wù)ID重復(fù)或任務(wù)對(duì)應(yīng)的命令語(yǔ)句無(wú)效時(shí),方便了數(shù)據(jù)分析人員及時(shí)排查錯(cuò)誤,提高了數(shù)據(jù)統(tǒng)計(jì)分析效率;
[0042]進(jìn)一步地,從所述命令語(yǔ)句的解析結(jié)果中提取查詢(xún)字段,在所述數(shù)據(jù)庫(kù)中建立與所述任務(wù)ID對(duì)應(yīng)的表,在所述對(duì)應(yīng)的表中建立與所述查詢(xún)字段對(duì)應(yīng)的字段,方便了數(shù)據(jù)分析人員查詢(xún)執(zhí)行失敗的任務(wù),以及時(shí)恢復(fù)任務(wù);
[0043]進(jìn)一步地,通過(guò)任務(wù)對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)、任務(wù)執(zhí)行日期和任務(wù)執(zhí)行時(shí)間來(lái)調(diào)度分布式框架執(zhí)行所生成的任務(wù),實(shí)現(xiàn)了高效地對(duì)任務(wù)進(jìn)行管理。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0044]圖1為本發(fā)明實(shí)施例的數(shù)據(jù)統(tǒng)計(jì)分析方法的實(shí)現(xiàn)流程示意圖;
[0045]圖2為本發(fā)明實(shí)施例的數(shù)據(jù)統(tǒng)計(jì)分析裝置的組成結(jié)構(gòu)示意圖;
[0046]圖3為本發(fā)明實(shí)施例的預(yù)定義任務(wù)的實(shí)現(xiàn)流程示意圖;
[0047]圖4為本發(fā)明實(shí)施例的調(diào)度執(zhí)行任務(wù)的實(shí)現(xiàn)流程示意圖。
【具體實(shí)施方式】
[0048]本發(fā)明的基本思想是:通過(guò)預(yù)設(shè)類(lèi)型的任務(wù)參數(shù),例如任務(wù)ID、任務(wù)對(duì)應(yīng)的命令語(yǔ)句,任務(wù)狀態(tài)標(biāo)識(shí)等區(qū)分任務(wù),并根據(jù)任務(wù)參數(shù)在數(shù)據(jù)庫(kù)中建立與任務(wù)ID對(duì)應(yīng)的表,并在表中建立與任務(wù)對(duì)應(yīng)命令語(yǔ)句的查詢(xún)字段對(duì)應(yīng)的字段,通過(guò)該字段存儲(chǔ)任務(wù)的操作記錄和統(tǒng)計(jì)分析結(jié)果。
[0049]下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)的說(shuō)明。
[0050]本發(fā)明實(shí)施例記載了一種數(shù)據(jù)統(tǒng)計(jì)分析方法,該方法支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)工具對(duì)基于分布式框架的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)與對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析的任務(wù)預(yù)關(guān)聯(lián),圖1為本發(fā)明實(shí)施例的數(shù)據(jù)統(tǒng)計(jì)分析方法的實(shí)現(xiàn)流程示意圖,如圖1所示,主要包括以下步驟:
[0051]步驟101:解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝所述數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作;
[0052]步驟102:根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù),并根據(jù)所述任務(wù)參數(shù)調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。
[0053]優(yōu)選地,解析所接收的任務(wù)參數(shù)之前,還包括:
[0054]將所接收的任務(wù)參數(shù)存儲(chǔ)至緩沖存儲(chǔ)器;
[0055]持久化所接收的任務(wù)參數(shù)至所述數(shù)據(jù)庫(kù);
[0056]在所述緩沖存儲(chǔ)器存儲(chǔ)的任務(wù)參數(shù)丟失時(shí),將所述數(shù)據(jù)庫(kù)中的任務(wù)參數(shù)發(fā)送至所述緩沖存儲(chǔ)器。
[0057]優(yōu)選地,所述任務(wù)參數(shù)包括:任務(wù)ID、任務(wù)對(duì)應(yīng)的命令語(yǔ)句;
[0058]相應(yīng)地,所述解析所接收的任務(wù)參數(shù)之前,該方法還包括:
[0059]確定所述存儲(chǔ)緩沖器中未存儲(chǔ)所述任務(wù)ID,且所述命令語(yǔ)句有效。
[0060]優(yōu)選地,所述解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝所述數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作,包括:
[0061]解析所述任務(wù)參數(shù)中的命令語(yǔ)句,從所述命令語(yǔ)句的解析結(jié)果中提取查詢(xún)字段,在所述數(shù)據(jù)庫(kù)中建立與所述任務(wù)ID對(duì)應(yīng)的表,在所述對(duì)應(yīng)的表中建立與所述查詢(xún)字段對(duì)應(yīng)的字段。
[0062]優(yōu)選地,所述任務(wù)參數(shù)還包括:任務(wù)狀態(tài)標(biāo)識(shí)、任務(wù)執(zhí)行日期、任務(wù)執(zhí)行時(shí)間和任務(wù)關(guān)聯(lián)的編程模型;
[0063]相應(yīng)地,所述根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù),并根據(jù)所述任務(wù)參數(shù)調(diào)度所述分布式框架執(zhí)行所述任務(wù),將執(zhí)行所述任務(wù)后的統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)至在所述數(shù)據(jù)庫(kù)建立的表中,包括:
[0064]根據(jù)所述命令語(yǔ)句和所述任務(wù)關(guān)聯(lián)的編程模型生成任務(wù),在確定所生成的任務(wù)對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)為開(kāi)啟時(shí),在所述任務(wù)執(zhí)行日期的所述任務(wù)執(zhí)行時(shí)間指定的時(shí)間到來(lái)時(shí),調(diào)度所述分布式框架而執(zhí)行所生成的任務(wù),并將執(zhí)行所述任務(wù)的記錄和執(zhí)行所述任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果,存儲(chǔ)至所述數(shù)據(jù)庫(kù)中所述查詢(xún)字段對(duì)應(yīng)的字段。
[0065]其中,所述數(shù)據(jù)倉(cāng)庫(kù)工具可以采用Hive,所述分布式框架可以采用開(kāi)源分布式框架Hadoop,相應(yīng)地,所述數(shù)據(jù)庫(kù)為對(duì)應(yīng)Hadoop的數(shù)據(jù)庫(kù)HBase,所述任務(wù)關(guān)聯(lián)的編程模型為映射/規(guī)約(Map/Reduce)模型。
[0066]其中,所述任務(wù)對(duì)應(yīng)的命令語(yǔ)句可以采用HQL語(yǔ)句,也可以根據(jù)實(shí)際的應(yīng)用場(chǎng)景定義所使用的語(yǔ)句。
[0067]需要說(shuō)明的是,本發(fā)明實(shí)施例中所述的任務(wù)參數(shù)不僅限于以上所述,例如,任務(wù)參數(shù)還可以包括:任務(wù)名稱(chēng)、任務(wù)描述(任務(wù)的功能或用途)。
[0068]本發(fā)明實(shí)施例還記載了一種數(shù)據(jù)統(tǒng)計(jì)分析裝置,該裝置支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)工具對(duì)基于分布式框架的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)與對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析的任務(wù)預(yù)關(guān)聯(lián),圖2為本發(fā)明實(shí)施例的數(shù)據(jù)統(tǒng)計(jì)分析裝置的組成結(jié)構(gòu)示意圖,如圖2所示,該裝置包括:接收模塊21、解析建表模塊22、任務(wù)生成模塊23和調(diào)度執(zhí)行模塊24 ;其中,
[0069]所述接收模塊21,用于接收任務(wù)參數(shù);
[0070]所述解析建表模塊22,用于解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝所述數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作;
[0071]所述任務(wù)生成模塊23,用于根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù);
[0072]所述調(diào)度執(zhí)行模塊24,用于根據(jù)所述任務(wù)參數(shù)調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果,存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。
[0073]所述接收模塊21,可以通過(guò)顯示器顯示對(duì)應(yīng)任務(wù)的界面,來(lái)提示操作人員輸入任務(wù)對(duì)應(yīng)的參數(shù)信息,并通過(guò)輸入設(shè)備接收對(duì)應(yīng)的任務(wù)參數(shù)。
[0074]優(yōu)選地,該裝置還包括緩沖存儲(chǔ)器25和發(fā)送模塊26 ;其中,
[0075]所述接收模塊21,還用于將接收的任務(wù)參數(shù)存儲(chǔ)至所述緩沖存儲(chǔ)器25 ;持久化所接收的任務(wù)參數(shù)至所述數(shù)據(jù)庫(kù);
[0076]所述發(fā)送模塊26,用于在所述緩沖存儲(chǔ)器25存儲(chǔ)的任務(wù)參數(shù)丟失時(shí),將所述數(shù)據(jù)庫(kù)中的任務(wù)參數(shù)發(fā)送至所述緩沖存儲(chǔ)器25。
[0077]優(yōu)選地,所述任務(wù)參數(shù)包括:任務(wù)ID、任務(wù)對(duì)應(yīng)的命令語(yǔ)句;
[0078]該裝置還包括:確定模塊27,用于確定所述存儲(chǔ)緩沖器25中未存儲(chǔ)所述任務(wù)ID,且所述命令語(yǔ)句有效時(shí),觸發(fā)所述解析建表模塊22。
[0079]優(yōu)選地,所述解析建表模塊22,還用于解析所述任務(wù)參數(shù)中的命令語(yǔ)句,從所述命令語(yǔ)句的解析結(jié)果中提取查詢(xún)字段,在所述數(shù)據(jù)庫(kù)中建立與所述任務(wù)ID對(duì)應(yīng)的表,在所述對(duì)應(yīng)的表中建立與所述查詢(xún)字段對(duì)應(yīng)的字段。
[0080]優(yōu)選地,所述任務(wù)參數(shù)還包括:任務(wù)狀態(tài)標(biāo)識(shí)、任務(wù)執(zhí)行日期、任務(wù)執(zhí)行時(shí)間和任務(wù)關(guān)聯(lián)的編程模型;
[0081]所述任務(wù)生成模塊23,還用于根據(jù)所述命令語(yǔ)句和所述任務(wù)關(guān)聯(lián)的編程模型生成任務(wù);
[0082]所述確定模塊27,還用于確定所生成的任務(wù)對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)為開(kāi)啟時(shí),在所述任務(wù)執(zhí)行日期的所述任務(wù)執(zhí)行時(shí)間指定的時(shí)間到來(lái)時(shí)觸發(fā)所述調(diào)度執(zhí)行模塊24 ;
[0083]所述調(diào)度執(zhí)行模塊24,還用于調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果,存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。
[0084]其中,所述數(shù)據(jù)倉(cāng)庫(kù)工具可以采用Hive,所述分布式框架可以采用開(kāi)源分布式框架Hadoop,相應(yīng)地,所述數(shù)據(jù)庫(kù)為對(duì)應(yīng)Hadoop的數(shù)據(jù)庫(kù)HBase,所述任務(wù)關(guān)聯(lián)的編程模型為Map/Reduce 模型。
[0085]其中,所述任務(wù)對(duì)應(yīng)的命令語(yǔ)句可以采用HQL語(yǔ)句,也可以根據(jù)實(shí)際的應(yīng)用場(chǎng)景定義所使用的語(yǔ)句。
[0086]需要說(shuō)明的是,本發(fā)明實(shí)施例中所述的任務(wù)參數(shù)不僅限于以上所述,例如,任務(wù)參數(shù)還可以包括:任務(wù)名稱(chēng)、任務(wù)描述(任務(wù)的功能或用途)。
[0087]下面以預(yù)定義任務(wù),即解析接收的任務(wù)參數(shù),并進(jìn)行相應(yīng)的初始化為例,對(duì)本發(fā)明實(shí)施例記載的數(shù)據(jù)統(tǒng)計(jì)分析方法及裝置作進(jìn)一步詳細(xì)說(shuō)明,圖3為本發(fā)明實(shí)施例的預(yù)定義任務(wù)的實(shí)現(xiàn)流程示意圖,如圖3所示,主要包括以下步驟:
[0088]步驟301:接收任務(wù)參數(shù);
[0089]任務(wù)參數(shù)包括:任務(wù)ID、任務(wù)對(duì)應(yīng)的HQL語(yǔ)句;任務(wù)參數(shù)還可以包括:任務(wù)狀態(tài)標(biāo)識(shí)、任務(wù)執(zhí)行日期、任務(wù)執(zhí)行時(shí)間和任務(wù)關(guān)聯(lián)的Map/Reduce模型。
[0090]步驟302:檢驗(yàn)任務(wù)參數(shù);
[0091]步驟303:判斷任務(wù)參數(shù)檢驗(yàn)是否通過(guò),如果通過(guò)則執(zhí)行步驟305 ;否則,執(zhí)行步驟304 ;
[0092]存儲(chǔ)緩沖器中未存儲(chǔ)所述任務(wù)ID,且所述命令語(yǔ)句有效時(shí),則任務(wù)參數(shù)檢驗(yàn)通過(guò)。
[0093]步驟304:返回檢驗(yàn)失敗消息;
[0094]步驟305:存儲(chǔ)任務(wù)參數(shù)至緩沖存儲(chǔ)器;
[0095]步驟306:持久化任務(wù)信息至HBase ;
[0096]步驟307:初始化運(yùn)行環(huán)境;
[0097]解析任務(wù)參數(shù)中的HQL語(yǔ)句,從HQL語(yǔ)句的解析結(jié)果中提取查詢(xún)字段,在HBase中建立與任務(wù)ID對(duì)應(yīng)的表,在對(duì)應(yīng)的表中建立與查詢(xún)字段對(duì)應(yīng)的字段。
[0098]步驟308:返回初始化成功消息。
[0099]下面以調(diào)度執(zhí)行任務(wù),即調(diào)度分布式框架Hadoop執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)至在HBase所建立的對(duì)應(yīng)的表中為例,對(duì)本發(fā)明實(shí)施例記載的數(shù)據(jù)統(tǒng)計(jì)分析方法即裝置作進(jìn)一步詳細(xì)說(shuō)明,圖4為本發(fā)明實(shí)施例的調(diào)度執(zhí)行任務(wù)的實(shí)現(xiàn)流程示意圖,如圖4所示,主要包括以下步驟:
[0100]步驟401:根據(jù)任務(wù)參數(shù)為任務(wù)分配資源;
[0101]本發(fā)明實(shí)施例中為任務(wù)分配的資源可以采用線程的形式。
[0102]步驟402:查找任務(wù)對(duì)應(yīng)的HQL語(yǔ)句;
[0103]步驟403:讀取任務(wù)關(guān)聯(lián)的數(shù)據(jù)文件;
[0104]任務(wù)關(guān)聯(lián)的數(shù)據(jù)文件位于HBase中。
[0105]步驟404:調(diào)用Map/Reduce模型執(zhí)行生成的任務(wù),對(duì)數(shù)據(jù)文件進(jìn)行統(tǒng)計(jì)分析;
[0106]步驟405:解析統(tǒng)計(jì)分析后的數(shù)據(jù)文件,將解析后的數(shù)據(jù)文件存儲(chǔ)至HBase ;
[0107]步驟406:操作記錄和執(zhí)行任務(wù)后的統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)至HBase。
[0108]操作記錄,即任務(wù)執(zhí)行日志,通過(guò)任務(wù)跟蹤(Jobtrace)對(duì)象獲取。
[0109]以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)統(tǒng)計(jì)分析方法,其特征在于,該方法支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)工具對(duì)基于分布式框架的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)與對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析的任務(wù)預(yù)關(guān)聯(lián),該方法包括: 解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝所述數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作; 根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù),并根據(jù)所述任務(wù)參數(shù)調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,解析所接收的任務(wù)參數(shù)之前,該方法還包括: 將所接收的任務(wù)參數(shù)存儲(chǔ)至緩沖存儲(chǔ)器; 持久化所接收的任務(wù)參數(shù)至所述數(shù)據(jù)庫(kù); 在所述緩沖存儲(chǔ)器存儲(chǔ)的任務(wù)參數(shù)丟失時(shí),將所述數(shù)據(jù)庫(kù)中的任務(wù)參數(shù)發(fā)送至所述緩沖存儲(chǔ)器。
3.根據(jù)權(quán)利要2所述的方法,其特征在于,所述任務(wù)參數(shù)包括:任務(wù)身份標(biāo)識(shí)ID、任務(wù)對(duì)應(yīng)的命令語(yǔ)句; 相應(yīng)地,所述解析所接收的任務(wù)參數(shù)之前,該方法還包括: 確定所述存儲(chǔ)緩沖器中未存儲(chǔ)所述任務(wù)ID,且所述命令語(yǔ)句有效。
4.根據(jù)權(quán)利要3所述的方法,其特征在于,所述解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝所述數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作,包括: 解析所述任務(wù)參數(shù)中的命令語(yǔ)句,從所述命令語(yǔ)句的解析結(jié)果中提取查詢(xún)字段,在所述數(shù)據(jù)庫(kù)中建立與所述任務(wù)ID對(duì)應(yīng)的表,在所述對(duì)應(yīng)的表中建立與所述查詢(xún)字段對(duì)應(yīng)的字段。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述任務(wù)參數(shù)還包括:任務(wù)狀態(tài)標(biāo)識(shí)、任務(wù)執(zhí)行日期、任務(wù)執(zhí)行時(shí)間和任務(wù)關(guān)聯(lián)的編程模型; 相應(yīng)地,所述根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù),并根據(jù)所述任務(wù)參數(shù)調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中,包括: 根據(jù)所述命令語(yǔ)句和所述任務(wù)關(guān)聯(lián)的編程模型生成任務(wù),在確定所生成的任務(wù)對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)為開(kāi)啟時(shí),在所述任務(wù)執(zhí)行日期的所述任務(wù)執(zhí)行時(shí)間指定的時(shí)間到來(lái)時(shí),調(diào)度所述分布式框架而執(zhí)行所生成的任務(wù),并將執(zhí)行所述任務(wù)的記錄和執(zhí)行所述任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果,存儲(chǔ)至所述數(shù)據(jù)庫(kù)中所述查詢(xún)字段對(duì)應(yīng)的字段。
6.一種數(shù)據(jù)統(tǒng)計(jì)分析裝置,其特征在于,該裝置支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)工具對(duì)基于分布式框架的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)與對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析的任務(wù)預(yù)關(guān)聯(lián),該裝置包括:接收模塊、解析建表模塊、任務(wù)生成模塊和調(diào)度執(zhí)行模塊;其中, 所述接收模塊,用于接收任務(wù)參數(shù); 所述解析建表模塊,用于解析所接收的任務(wù)參數(shù),按照預(yù)設(shè)規(guī)則組裝所述數(shù)據(jù)庫(kù)的建表語(yǔ)句,并根據(jù)所述建表語(yǔ)句在所述數(shù)據(jù)庫(kù)中執(zhí)行建表操作; 所述任務(wù)生成模塊,用于根據(jù)所述任務(wù)參數(shù)生成所述任務(wù)參數(shù)對(duì)應(yīng)的任務(wù); 所述調(diào)度執(zhí)行模塊,用于根據(jù)所述任務(wù)參數(shù)調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果,存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,該裝置還包括緩沖存儲(chǔ)器和發(fā)送模塊;其中, 所述接收模塊,還用于將接收的任務(wù)參數(shù)存儲(chǔ)至所述緩沖存儲(chǔ)器;持久化所接收的任務(wù)參數(shù)至所述數(shù)據(jù)庫(kù); 所述發(fā)送模塊,用于在所述緩沖存儲(chǔ)器存儲(chǔ)的任務(wù)參數(shù)丟失時(shí),將所述數(shù)據(jù)庫(kù)中的任務(wù)參數(shù)發(fā)送至所述緩沖存儲(chǔ)器。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述任務(wù)參數(shù)包括:任務(wù)ID、任務(wù)對(duì)應(yīng)的命令語(yǔ)句; 該裝置還包括:確定模塊,用于確定所述存儲(chǔ)緩沖器中未存儲(chǔ)所述任務(wù)ID,且所述命令語(yǔ)句有效時(shí),觸發(fā)所述解析建表模塊。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述解析建表模塊,還用于解析所述任務(wù)參數(shù)中的命令語(yǔ)句,從所述命令語(yǔ)句的解析結(jié)果中提取查詢(xún)字段,在所述數(shù)據(jù)庫(kù)中建立與所述任務(wù)ID對(duì)應(yīng)的表,在所述對(duì)應(yīng)的表中建立與所述查詢(xún)字段對(duì)應(yīng)的字段。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述任務(wù)參數(shù)還包括:任務(wù)狀態(tài)標(biāo)識(shí)、任務(wù)執(zhí)行日期、任務(wù)執(zhí)行時(shí)間和任務(wù)關(guān)聯(lián)的編程模型; 所述任務(wù)生成模塊,還用于根據(jù)所述命令語(yǔ)句和所述任務(wù)關(guān)聯(lián)的編程模型生成任務(wù);所述確定模塊,還用于確定所生成的任務(wù)對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)為開(kāi)啟時(shí),在所述任務(wù)執(zhí)行日期的所述任務(wù)執(zhí)行時(shí)間指定的時(shí)間到來(lái)時(shí)觸發(fā)所述調(diào)度執(zhí)行模塊; 所述調(diào)度執(zhí)行模塊,還用于調(diào)度所述分布式框架執(zhí)行所生成的任務(wù),將執(zhí)行所生成的任務(wù)后確定的統(tǒng)計(jì)分析的結(jié)果,存儲(chǔ)至在所述數(shù)據(jù)庫(kù)所建立的對(duì)應(yīng)的表中。
【文檔編號(hào)】G06F17/30GK104298671SQ201310298192
【公開(kāi)日】2015年1月21日 申請(qǐng)日期:2013年7月16日 優(yōu)先權(quán)日:2013年7月16日
【發(fā)明者】梅迎春 申請(qǐng)人:深圳中興網(wǎng)信科技有限公司