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