本發(fā)明涉及電子技術(shù),尤其涉及一種信息處理方法及裝置。
背景技術(shù):
在多數(shù)查詢的總體時(shí)間中,磁盤(pán)數(shù)據(jù)的掃描占據(jù)了至少50%以上的時(shí)間,因此,為了優(yōu)化數(shù)據(jù)查詢和掃描速度,在磁盤(pán)數(shù)據(jù)庫(kù)(包括關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(Relational Database Management System,RDBMS)和非關(guān)系型的數(shù)據(jù)庫(kù)(NoSQL))中對(duì)數(shù)據(jù)表進(jìn)行分區(qū)是一種常見(jiàn)方法,目的是減少處理查詢時(shí)掃描的數(shù)據(jù)規(guī)模。通過(guò)分區(qū)技術(shù)可以將數(shù)據(jù)表分開(kāi)保存到不同的實(shí)體(邏輯實(shí)體或者物理服務(wù)器)中,通過(guò)在處理查詢時(shí)僅掃描相關(guān)的分區(qū)來(lái)減少查詢時(shí)間。目前有多種已有的分區(qū)的技術(shù),按照類型可以分為范圍分區(qū)、列表分區(qū)和哈希分區(qū),其中:
范圍分區(qū)(Range):按照選定列的數(shù)值范圍分區(qū),如大于20000的數(shù)據(jù)保存在分區(qū)1中,小等于20000的數(shù)據(jù)保存到分區(qū)2中。其中這個(gè)選定的列也被稱為分區(qū)鍵(Partition Key,PK),下同。
列表分區(qū)(List):按照分區(qū)鍵的離散取值來(lái)確定分區(qū),如“中國(guó)”、“日本”、“韓國(guó)”均可以放置到“東亞”這個(gè)分區(qū)中。
哈希分區(qū)(Hash):哈希分區(qū)根據(jù)一個(gè)hash函數(shù)確定到底應(yīng)該將數(shù)據(jù)保存到哪個(gè)分區(qū)中。一個(gè)哈希函數(shù)是事先確定的計(jì)算函數(shù),可以將輸入的數(shù)據(jù),按照實(shí)現(xiàn)確定的規(guī)則放置到適當(dāng)?shù)姆謪^(qū)中,一個(gè)簡(jiǎn)單的哈希函數(shù)是取余數(shù)。
列式數(shù)據(jù)庫(kù)如SybaseIQ、Vertica、InfoBright等在存儲(chǔ)方式方面將數(shù)據(jù)按照列存儲(chǔ)為一個(gè)實(shí)體(如文件),然后按照范圍來(lái)分區(qū)存儲(chǔ)。這種方式減少了數(shù)據(jù)掃描時(shí)處理的數(shù)據(jù)量,但是當(dāng)需要掃描很多列時(shí),會(huì)遇到性能下降的情況,主 要是因?yàn)閷⒘羞B接成行以及掃描文件數(shù)量較多造成的。NoSQL數(shù)據(jù)庫(kù)也采用了相似的分區(qū)技術(shù),如HBase采用了動(dòng)態(tài)范圍分區(qū)技術(shù),而Cassandra采用了哈希分區(qū)技術(shù)。在此類系統(tǒng)中,為了減少數(shù)據(jù)掃描的數(shù)量,還將相關(guān)列當(dāng)做列族(Column Family)存儲(chǔ),以便進(jìn)一步減少數(shù)據(jù)掃描數(shù)量。
在日志詳單、網(wǎng)管(NMS)信令監(jiān)測(cè)、商務(wù)智能(BI)等大數(shù)據(jù)應(yīng)用中,針對(duì)不同系統(tǒng)產(chǎn)生的數(shù)據(jù)如何進(jìn)行數(shù)據(jù)分區(qū)存在問(wèn)題:如何選擇合理的分區(qū)方法?面對(duì)龐大的數(shù)據(jù),如何分區(qū)才能使查詢效率最高,分區(qū)算法1會(huì)比分區(qū)算法2效率高多少?分區(qū)算法會(huì)導(dǎo)致多少磁盤(pán)空間的浪費(fèi)?這些都是目前面臨的重要且難以解決的問(wèn)題。分區(qū)方法如何最優(yōu)化查詢?選定算法后,算法因子如何設(shè)置才是最優(yōu)的。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例為解決現(xiàn)有技術(shù)中存在的至少一個(gè)問(wèn)題而提供一種信息處理方法及裝置,能夠提高查詢效率。
本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
第一方面,本發(fā)明實(shí)施例提供一種信息處理方法,所述方法包括:
獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù);
獲取分區(qū)算法集合,所述分區(qū)算法集合包括兩種及兩種以上的分區(qū)算法;
將所述列文件中數(shù)據(jù)作為所述分區(qū)算法結(jié)合中各種分區(qū)算法的輸入,通過(guò)所述分區(qū)算法輸出分區(qū)后的文件;
利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率;
將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率對(duì)應(yīng)地存儲(chǔ)起來(lái)。
第二方面,本發(fā)明實(shí)施例提供一種信息處理裝置,所述裝置包括第一獲取單元、第二獲取單元、分區(qū)單元、計(jì)算單元和存儲(chǔ)單元,其中:
所述第一獲取單元,用于獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù);
所述第二獲取單元,用于獲取分區(qū)算法集合,所述分區(qū)算法集合包括兩種 及兩種以上的分區(qū)算法;
所述分區(qū)單元,用于將所述列文件中數(shù)據(jù)作為所述分區(qū)算法結(jié)合中各種分區(qū)算法的輸入,通過(guò)所述分區(qū)算法輸出分區(qū)后的文件;
所述計(jì)算單元,用于利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率;
所述存儲(chǔ)單元,用于將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率對(duì)應(yīng)地存儲(chǔ)起來(lái)。
本發(fā)明實(shí)施例提供的一種信息處理方法及裝置,其中先獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù);獲取分區(qū)算法集合,所述分區(qū)算法集合包括兩種及兩種以上的分區(qū)算法;將所述列文件中數(shù)據(jù)作為所述分區(qū)算法結(jié)合中各種分區(qū)算法的輸入,通過(guò)所述分區(qū)算法輸出分區(qū)后的文件;利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率;將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率對(duì)應(yīng)地存儲(chǔ)起來(lái),如此,能夠提高查詢效率。
附圖說(shuō)明
圖1-1為本發(fā)明實(shí)施例提出的幾種分區(qū)方式的對(duì)比示意圖;
圖1-2為本發(fā)明實(shí)施例一信息處理方法的實(shí)現(xiàn)流程示意圖;
圖2為本發(fā)明實(shí)施例二信息處理方法的實(shí)現(xiàn)流程示意圖;
圖3-1為本發(fā)明實(shí)施例裝置架構(gòu)的組成結(jié)構(gòu)示意圖;
圖3-2為本發(fā)明實(shí)施例分區(qū)算法模塊的組成結(jié)構(gòu)示意圖;
圖3-3為本發(fā)明實(shí)施例日志數(shù)據(jù)管理模塊工作時(shí)的流程示意圖;
圖3-4為本發(fā)明實(shí)施例中控制模塊在工作時(shí)的流程示意圖;
圖4為本發(fā)明實(shí)施例四信息處理裝置的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了提高查詢效率,在本發(fā)明以下的實(shí)施例中提出一種智能分析數(shù)據(jù)的分區(qū)方式,這種方法的特點(diǎn)是:1)智能分析數(shù)據(jù)庫(kù)的最佳分區(qū)算法;2)對(duì)各種 分區(qū)算法進(jìn)行分區(qū)效率度量;3)對(duì)分區(qū)后數(shù)據(jù)的查詢性能進(jìn)行度量。
考察各種分區(qū)算法對(duì)數(shù)據(jù)的處理,圖1-1顯示了這幾種分區(qū)方式的差異:從上圖1-1可以看出,對(duì)不同的分區(qū)算法對(duì)數(shù)據(jù)的分區(qū)處理有很大的變化。但對(duì)于給定的數(shù)據(jù),沒(méi)法判斷應(yīng)該用什么算法進(jìn)行分區(qū)才能取得最優(yōu)的分區(qū)效率和最優(yōu)的查詢效率。比如對(duì)于分布非常均勻的數(shù)據(jù),采用列族分區(qū)顯然不是很合適的,因?yàn)楫?dāng)數(shù)據(jù)分布非常均勻時(shí),按范圍分區(qū)就可以取得最佳的分區(qū)效率和最佳的查詢效率。本發(fā)明實(shí)施例在某種程度上就是為了智能的發(fā)現(xiàn)對(duì)應(yīng)給定的數(shù)據(jù),采用什么分區(qū)算法才是最優(yōu)的。
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)闡述。
實(shí)施例一
本發(fā)明實(shí)施例提供一種信息處理方法,該方法應(yīng)用于分析數(shù)據(jù)庫(kù)的最佳分區(qū)算法,應(yīng)用于計(jì)算設(shè)備,該信息處理方法所實(shí)現(xiàn)的功能可以通過(guò)計(jì)算設(shè)備中的處理器調(diào)用程序代碼來(lái)實(shí)現(xiàn),當(dāng)然程序代碼可以保存在計(jì)算機(jī)存儲(chǔ)介質(zhì)中,可見(jiàn),該計(jì)算設(shè)備至少包括處理器和存儲(chǔ)介質(zhì)。在具體實(shí)施的過(guò)程中,所述計(jì)算設(shè)備可以個(gè)人計(jì)算機(jī)(PC)、工控機(jī)、筆記本電腦或其他具有計(jì)算能力的電子設(shè)備。
圖1-2為本發(fā)明實(shí)施例一信息處理方法的實(shí)現(xiàn)流程示意圖,如圖1-2所示,該方法包括:
步驟S101,獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù);
這里,所述列式數(shù)據(jù)庫(kù)至少包括SybaseIQ、Vertica、InfoBright。本發(fā)明實(shí)施例中,可以應(yīng)用于針對(duì)一種列式數(shù)據(jù)庫(kù)而進(jìn)行兩種以上的分區(qū)算法比較,但是需要說(shuō)明的是,并不局限于此。
這里,所述獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù),包括:通過(guò)FTP方式從所述列式數(shù)據(jù)庫(kù)獲取原始日志,將所述原始日志按列生成多個(gè)列文件數(shù)據(jù)。
步驟S102,獲取分區(qū)算法集合,所述分區(qū)算法集合包括兩種及兩種以上的分區(qū)算法;
這里,所述分區(qū)算法集合至少包括:范圍分區(qū)算法、列式分區(qū)算法和列族 分區(qū)算法。
步驟S103,將所述列文件中數(shù)據(jù)作為所述分區(qū)算法結(jié)合中各種分區(qū)算法的輸入,通過(guò)所述分區(qū)算法輸出分區(qū)后的文件;
步驟S104,利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率;
步驟S105,將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率對(duì)應(yīng)地存儲(chǔ)起來(lái)。
這里,需要說(shuō)明的是,在存儲(chǔ)的過(guò)程中可以按照對(duì)應(yīng)關(guān)系將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率存儲(chǔ)起來(lái),在具體實(shí)施的過(guò)程中,還可以按照分區(qū)效率進(jìn)行排序,這樣如果用戶分區(qū)效率優(yōu)先,那么在配置庫(kù)中排除分區(qū)比例最低的分區(qū)算法。
本發(fā)明實(shí)施例中,步驟S104,所述利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率,包括:
步驟S141,根據(jù)各個(gè)分區(qū)算法分區(qū)后的文件進(jìn)行分區(qū)評(píng)估,得到分區(qū)比例;
步驟S142,對(duì)分區(qū)后的文件進(jìn)行查詢測(cè)試,得到查詢時(shí)間;
步驟S143,根據(jù)分區(qū)算法的分區(qū)效率=分區(qū)比例/平均查詢時(shí)間,計(jì)算得到分區(qū)算法的分區(qū)效率。
對(duì)應(yīng)地,所述方法還包括:將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率以及查詢時(shí)間對(duì)應(yīng)地存儲(chǔ)起來(lái)。
本發(fā)明實(shí)施例中,所述方法還可以包括:根據(jù)查詢時(shí)間進(jìn)行排序,這樣如果用戶設(shè)置查詢效率優(yōu)先,那么在配置庫(kù)排除查詢速度最慢的分區(qū)算法。
本發(fā)明實(shí)施例中,先獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù);獲取分區(qū)算法集合,所述分區(qū)算法集合包括兩種及兩種以上的分區(qū)算法;將所述列文件中數(shù)據(jù)作為所述分區(qū)算法結(jié)合中各種分區(qū)算法的輸入,通過(guò)所述分區(qū)算法輸出分區(qū)后的文件;利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率;將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率對(duì)應(yīng)地存儲(chǔ)起來(lái),如此,能夠提高查詢效率。
實(shí)施例二
基于前述的實(shí)施例,本發(fā)明實(shí)施例提供一種信息處理方法,該方法應(yīng)用于分析數(shù)據(jù)庫(kù)的最佳分區(qū)算法,應(yīng)用于計(jì)算設(shè)備,該信息處理方法所實(shí)現(xiàn)的功能可以通過(guò)計(jì)算設(shè)備中的處理器調(diào)用程序代碼來(lái)實(shí)現(xiàn),當(dāng)然程序代碼可以保存在計(jì)算機(jī)存儲(chǔ)介質(zhì)中,可見(jiàn),該計(jì)算設(shè)備至少包括處理器和存儲(chǔ)介質(zhì)。在具體實(shí)施的過(guò)程中,所述計(jì)算設(shè)備可以個(gè)人計(jì)算機(jī)(PC)、工控機(jī)、筆記本電腦或其他具有計(jì)算能力的電子設(shè)備。
圖2為本發(fā)明實(shí)施例二信息處理方法的實(shí)現(xiàn)流程示意圖,如圖2所示,該方法包括:
步驟S201,獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù);
這里,所述列式數(shù)據(jù)庫(kù)至少包括SybaseIQ、Vertica、InfoBright。本發(fā)明實(shí)施例中,可以應(yīng)用于針對(duì)一種列式數(shù)據(jù)庫(kù)而進(jìn)行兩種以上的分區(qū)算法比較,但是需要說(shuō)明的是,并不局限于此。
這里,所述獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù),包括:通過(guò)FTP方式從所述列式數(shù)據(jù)庫(kù)獲取原始日志,將所述原始日志按列生成多個(gè)列文件數(shù)據(jù)。
步驟S202,獲取分區(qū)規(guī)則,分析所述列文件中數(shù)據(jù)的特征;
步驟S204,將所述列文件中數(shù)據(jù)的特征與所述分區(qū)規(guī)則進(jìn)行比對(duì);
這里,所述列文件中數(shù)據(jù)的特征至少包括:數(shù)據(jù)庫(kù)表的索引均勻分布,例如當(dāng)數(shù)據(jù)庫(kù)表的索引均勻分布,直接選擇范圍分區(qū),比如索引是按從1到1000的分布,并且每一行的數(shù)據(jù)大小一致。
步驟S205,判斷所述列文件中數(shù)據(jù)的特征是否與所述分區(qū)規(guī)則匹配,得到判斷結(jié)果;
步驟S206,當(dāng)所述判斷結(jié)果表明所述列文件中數(shù)據(jù)的特征與所述分區(qū)規(guī)則不匹配時(shí),獲取分區(qū)算法集合,所述分區(qū)算法集合包括兩種及兩種以上的分區(qū)算法;
這里,所述分區(qū)算法集合至少包括:范圍分區(qū)算法、列式分區(qū)算法和列族 分區(qū)算法。
步驟S207,將所述列文件中數(shù)據(jù)作為所述分區(qū)算法結(jié)合中各種分區(qū)算法的輸入,通過(guò)所述分區(qū)算法輸出分區(qū)后的文件;
步驟S208,利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率;
步驟S209,將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率對(duì)應(yīng)地存儲(chǔ)起來(lái)。
步驟S209,當(dāng)所述判斷結(jié)果表明所述列文件中數(shù)據(jù)的特征與所述分區(qū)規(guī)則匹配時(shí),獲取所述分區(qū)規(guī)則對(duì)應(yīng)的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率。
步驟S210,將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率以及查詢時(shí)間對(duì)應(yīng)地存儲(chǔ)起來(lái)。
本發(fā)明實(shí)施例中,所述裝置還包括:將分區(qū)后的文件作為列文件中數(shù)據(jù),然后再獲取分區(qū)算法集合,將所述列文件中數(shù)據(jù)作為所述分區(qū)算法結(jié)合中各種分區(qū)算法的輸入,通過(guò)所述分區(qū)算法輸出分區(qū)后的文件;通過(guò)所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率。
本發(fā)明實(shí)施例中,所述利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率,包括:
根據(jù)各個(gè)分區(qū)算法分區(qū)后的文件進(jìn)行分區(qū)評(píng)估,得到分區(qū)比例;
對(duì)分區(qū)后的文件進(jìn)行查詢測(cè)試,得到查詢時(shí)間;
根據(jù)分區(qū)算法的分區(qū)效率=分區(qū)比例/平均查詢時(shí)間,計(jì)算得到分區(qū)算法的分區(qū)效率。
對(duì)應(yīng)地,所述方法還包括:將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率以及查詢時(shí)間對(duì)應(yīng)地存儲(chǔ)起來(lái)。
實(shí)施例三
本發(fā)明實(shí)施例提供一種信息處理方法,在介紹該方法之前,先介紹一種信息處理裝置,圖3-1為本發(fā)明實(shí)施例裝置架構(gòu)的組成結(jié)構(gòu)示意圖,如圖3-1所 示,該裝置中包含五個(gè)主要模塊和一個(gè)分區(qū)規(guī)則庫(kù)120,其中五個(gè)模塊即為分區(qū)算法模塊121、日志數(shù)據(jù)管理模塊122、控制模塊123、性能評(píng)估模塊124和配置模塊125,其中:
分區(qū)規(guī)則庫(kù)120,用于存儲(chǔ)分區(qū)的一些規(guī)則;具體來(lái)說(shuō),分區(qū)規(guī)則庫(kù)用于提供對(duì)原始數(shù)據(jù)分析的規(guī)則,將規(guī)則模板應(yīng)用于抽樣數(shù)據(jù),當(dāng)數(shù)據(jù)屬于某一規(guī)則時(shí),無(wú)需進(jìn)行分區(qū)算法測(cè)試,直接選擇分區(qū)算法。分區(qū)規(guī)則庫(kù)提供的規(guī)則有如下幾種:1)當(dāng)數(shù)據(jù)庫(kù)表的索引均勻分布,直接選擇范圍分區(qū),比如索引是按從1到1000的分布,并且每一行的數(shù)據(jù)大小一致。2)當(dāng)數(shù)據(jù)的某些列高度關(guān)聯(lián),則直接選擇按列族分區(qū)。
分區(qū)算法模塊121,圖3-2為本發(fā)明實(shí)施例分區(qū)算法模塊的組成結(jié)構(gòu)示意圖,如圖3-2所示,分區(qū)算法模塊121用于提供對(duì)文件的進(jìn)行分區(qū)的各種算法,并提供對(duì)外的擴(kuò)展接口,方便用戶自定義分區(qū)算法。本發(fā)明實(shí)施例中,分區(qū)算法至少包括范圍分區(qū)算法、列式分區(qū)算法和列族分區(qū)算法等。
日志數(shù)據(jù)管理模塊122,用于完成日志的裝載以及按列分割,包括兩個(gè)方面的工作:1)將數(shù)據(jù)通過(guò)FTP等方式裝載到文件系統(tǒng);2)將原始日志數(shù)據(jù)按列生成多個(gè)列文件。圖3-3為本發(fā)明實(shí)施例日志數(shù)據(jù)管理模塊工作時(shí)的流程示意圖,如圖3-3所示,該流程包括:
步驟S41,從存儲(chǔ)原始文件除獲取原始文件;
步驟S42,加載原始文件;
步驟S43,對(duì)原始文件進(jìn)行分割;
步驟S44,將分割后的文件加入到數(shù)據(jù)庫(kù)文件系統(tǒng)中。
控制模塊123,用于接受文件的輸入,并將分區(qū)算法應(yīng)用于輸入的文件,將最終分區(qū)后數(shù)據(jù)輸出,圖3-4為本發(fā)明實(shí)施例中控制模塊在工作時(shí)的流程示意圖,如圖3-4所示,該流程包括:
步驟S51,獲取列文件,計(jì)算列文件中數(shù)據(jù)的均勻程度等與分區(qū)規(guī)則庫(kù)中的規(guī)則進(jìn)行比對(duì);
步驟S52,如果有匹配的規(guī)則,將此規(guī)則應(yīng)用到該列,保存列對(duì)應(yīng)的最優(yōu) 壓縮算法;
步驟S53,如果沒(méi)有匹配的規(guī)則,進(jìn)行下一步驟。
步驟S54,將列文件作為各種分區(qū)算法的輸入,通過(guò)分區(qū)算法輸出分區(qū)后的文件。
步驟S55,計(jì)算應(yīng)用于該列的各種分區(qū)算法的分區(qū)效率將結(jié)果存于配置模塊中。
這里,該流程還可以包括:重復(fù)操作步驟S53,將步驟S53產(chǎn)生的數(shù)據(jù)作為輸入進(jìn)行再次數(shù)據(jù)分區(qū)。重復(fù)操作步驟S54,將分區(qū)比例錄入到配置模塊。
性能評(píng)估模塊124,用于根據(jù)各個(gè)算法分區(qū)后的數(shù)據(jù)進(jìn)行分區(qū)評(píng)估,比較分區(qū)比例,并且對(duì)分區(qū)后數(shù)據(jù)進(jìn)行查詢測(cè)試,算法效率=分區(qū)比例/平均查詢時(shí)間。
配置模塊125,用于用戶根據(jù)查詢系統(tǒng)的要求,利用配置模塊將本發(fā)明實(shí)施例提供的系統(tǒng)配置為分區(qū)性能優(yōu)先還是查詢性能優(yōu)先。
本發(fā)明實(shí)施例中,將評(píng)估后結(jié)果保存到配置表中,并根據(jù)用戶選擇的性能優(yōu)先或者查詢優(yōu)先,為后續(xù)數(shù)據(jù)入庫(kù)提供分區(qū)算法,并為解分區(qū)提供解壓依據(jù)。
在本發(fā)明實(shí)施例提供的裝置中,分區(qū)算法模塊可以提供分區(qū)算法接口,用戶可以自定義分區(qū)算法添加到分區(qū)算法模塊中,對(duì)比自定義分區(qū)算法與已有分區(qū)算法的性能。
下面介紹一下本發(fā)明實(shí)施例提供的裝置在工作時(shí)的流程,該流程包括:
步驟S61,首先加載原始日志的樣本數(shù)據(jù)到文件系統(tǒng),通過(guò)日志的預(yù)處理,將日志按列分成多個(gè)文件。
步驟S62,計(jì)算列文件中數(shù)據(jù)的均勻程度等與分區(qū)規(guī)則庫(kù)中的規(guī)則進(jìn)行比對(duì),如果有匹配的規(guī)則,將此規(guī)則應(yīng)用到該列,如果沒(méi)有匹配的規(guī)則,進(jìn)行下一步驟。
步驟S63,將列文件作為各種分區(qū)算法的輸入,通過(guò)分區(qū)算法輸出分區(qū)后的文件。
步驟S64,計(jì)算應(yīng)用于該列的各種分區(qū)算法的分區(qū)效率將結(jié)果存于配置模 塊中。
步驟S65,重復(fù)操作步驟S63,將步驟S63產(chǎn)生的數(shù)據(jù)作為輸入進(jìn)行再次數(shù)據(jù)分區(qū)。
步驟S66,重復(fù)操作步驟S64,將分區(qū)比例錄入到配置模塊。
步驟S67,對(duì)各種分區(qū)算法產(chǎn)生的數(shù)據(jù)進(jìn)行并發(fā)查詢,記錄查詢平均用時(shí)到配置庫(kù)。
步驟S68,如果用戶設(shè)置的為查詢效率優(yōu)先(或者裝置默認(rèn)為查詢效率優(yōu)先),那么在配置模塊排除查詢速度最慢的分區(qū)算法;如果分區(qū)效率優(yōu)先(或者裝置默認(rèn)為分區(qū)效率優(yōu)先),那么在配置模塊中排除分區(qū)比例最低的分區(qū)算法。
步驟S69,將分區(qū)比例除以查詢平均用時(shí),結(jié)果最大的選為該列的分區(qū)算法,將列與算法對(duì)應(yīng)記錄到配置模塊。
實(shí)施例四
基于前述的方法,本發(fā)明實(shí)施例提供一種信息處理裝置,該裝置所包括的各單元,以及各單元所包括的各模塊,都可以通過(guò)計(jì)算設(shè)備中的處理器來(lái)實(shí)現(xiàn),當(dāng)然也可通過(guò)具體的邏輯電路實(shí)現(xiàn);在具體實(shí)施例的過(guò)程中,處理器可以為中央處理器(CPU)、微處理器(MPU)、數(shù)字信號(hào)處理器(DSP)或現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)等。
圖4為本發(fā)明實(shí)施例四信息處理裝置的組成結(jié)構(gòu)示意圖,如圖4所示,所述裝置400包括第一獲取單元401、第二獲取單元402、分區(qū)單元403、計(jì)算單元404和存儲(chǔ)單元405,其中:
所述第一獲取單元401,用于獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù);
這里,所述分區(qū)算法集合至少包括:范圍分區(qū)算法、列式分區(qū)算法和列族分區(qū)算法。
這里,所述第一獲取單元包括獲取模塊和生成模塊,其中:
所述獲取模塊,用于通過(guò)FTP方式從所述列式數(shù)據(jù)庫(kù)獲取原始日志;
所述生成模塊,用于將所述原始日志按列生成多個(gè)列文件數(shù)據(jù)。
所述第二獲取單元402,用于獲取分區(qū)算法集合,所述分區(qū)算法集合包括兩種及兩種以上的分區(qū)算法;
所述分區(qū)單元403,用于將所述列文件中數(shù)據(jù)作為所述分區(qū)算法結(jié)合中各種分區(qū)算法的輸入,通過(guò)所述分區(qū)算法輸出分區(qū)后的文件;
所述計(jì)算單元404,用于利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率;
所述存儲(chǔ)單元405,用于將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率對(duì)應(yīng)地存儲(chǔ)起來(lái)。
本發(fā)明實(shí)施例中,所述計(jì)算單元,包括評(píng)估模塊、測(cè)試模塊和計(jì)算模塊,其中:
所述評(píng)估模塊,用于根據(jù)各個(gè)分區(qū)算法分區(qū)后的文件進(jìn)行分區(qū)評(píng)估,得到分區(qū)比例;
所述測(cè)試模塊,用于對(duì)分區(qū)后的文件進(jìn)行查詢測(cè)試,得到查詢時(shí)間;
所述計(jì)算模塊,用于根據(jù)分區(qū)算法的分區(qū)效率=分區(qū)比例/平均查詢時(shí)間,計(jì)算得到分區(qū)算法的分區(qū)效率。
本發(fā)明實(shí)施例中,所述裝置還包括存儲(chǔ)單元,還用于將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率以及查詢時(shí)間對(duì)應(yīng)地存儲(chǔ)起來(lái)。
本發(fā)明實(shí)施例中,所述裝置包括:所述第一獲取單元,還用于將分區(qū)后的文件作為列文件中數(shù)據(jù)。
這里需要指出的是:以上裝置實(shí)施例的描述,與上述方法實(shí)施例的描述是類似的,具有同方法實(shí)施例相似的有益效果,因此不做贅述。對(duì)于本發(fā)明裝置實(shí)施例中未披露的技術(shù)細(xì)節(jié),請(qǐng)參照本發(fā)明方法實(shí)施例的描述而理解,為節(jié)約篇幅,因此不再贅述。
實(shí)施例五
基于前述的方法,本發(fā)明實(shí)施例提供一種信息處理裝置,該裝置所包括的各單元,以及各單元所包括的各模塊,都可以通過(guò)計(jì)算設(shè)備中的處理器來(lái)實(shí)現(xiàn), 當(dāng)然也可通過(guò)具體的邏輯電路實(shí)現(xiàn);在具體實(shí)施例的過(guò)程中,處理器可以為中央處理器(CPU)、微處理器(MPU)、數(shù)字信號(hào)處理器(DSP)或現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)等。
本發(fā)明實(shí)施例四信息處理裝置包括第一獲取單元401、第二獲取單元402、分區(qū)單元403、計(jì)算單元404、存儲(chǔ)單元406、第三獲取單元407、分析單元408、比對(duì)單元409和判斷單元410,其中:
所述第一獲取單元401,用于獲取列式數(shù)據(jù)庫(kù)中存儲(chǔ)的列文件中數(shù)據(jù);
這里,所述分區(qū)算法集合至少包括:范圍分區(qū)算法、列式分區(qū)算法和列族分區(qū)算法。
這里,所述第一獲取單元包括獲取模塊和生成模塊,其中:
所述獲取模塊,用于通過(guò)FTP方式從所述列式數(shù)據(jù)庫(kù)獲取原始日志;
所述生成模塊,用于將所述原始日志按列生成多個(gè)列文件數(shù)據(jù)。
所述第三獲取單元407,用于獲取分區(qū)規(guī)則;
所述分析單元408,用于分析所述列文件中數(shù)據(jù)的特征;
所述對(duì)比單元409,用于將所述列文件中數(shù)據(jù)的特征與所述分區(qū)規(guī)則進(jìn)行比對(duì);
所述判斷單元410,用于判斷所述列文件中數(shù)據(jù)的特征是否與所述分區(qū)規(guī)則匹配,得到判斷結(jié)果;當(dāng)所述判斷結(jié)果表明所述列文件中數(shù)據(jù)的特征與所述分區(qū)規(guī)則不匹配時(shí),觸發(fā)所述第二獲取單元。
所述第二獲取單元402,用于獲取分區(qū)算法集合,所述分區(qū)算法集合包括兩種及兩種以上的分區(qū)算法;
所述分區(qū)單元403,用于將所述列文件中數(shù)據(jù)作為所述分區(qū)算法結(jié)合中各種分區(qū)算法的輸入,通過(guò)所述分區(qū)算法輸出分區(qū)后的文件;
所述計(jì)算單元404,用于利用分區(qū)后的文件計(jì)算所述分區(qū)算法集合中每一種分區(qū)算法的分區(qū)效率;
所述存儲(chǔ)單元405,用于將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率對(duì)應(yīng)地存儲(chǔ)起來(lái)。
所述存儲(chǔ)單元,還用于當(dāng)所述判斷結(jié)果表明所述列文件中數(shù)據(jù)的特征與所述分區(qū)規(guī)則匹配時(shí),獲取所述分區(qū)規(guī)則對(duì)應(yīng)的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率。
本發(fā)明實(shí)施例中,所述計(jì)算單元,包括評(píng)估模塊、測(cè)試模塊和計(jì)算模塊,其中:
所述評(píng)估模塊,用于根據(jù)各個(gè)分區(qū)算法分區(qū)后的文件進(jìn)行分區(qū)評(píng)估,得到分區(qū)比例;
所述測(cè)試模塊,用于對(duì)分區(qū)后的文件進(jìn)行查詢測(cè)試,得到查詢時(shí)間;
所述計(jì)算模塊,用于根據(jù)分區(qū)算法的分區(qū)效率=分區(qū)比例/平均查詢時(shí)間,計(jì)算得到分區(qū)算法的分區(qū)效率。
本發(fā)明實(shí)施例中,所述裝置還包括存儲(chǔ)單元,還用于將列式數(shù)據(jù)庫(kù)的標(biāo)識(shí)信息、所采用的分區(qū)算法及其對(duì)應(yīng)的分區(qū)效率以及查詢時(shí)間對(duì)應(yīng)地存儲(chǔ)起來(lái)。
本發(fā)明實(shí)施例中,所述裝置包括:所述第一獲取單元,還用于將分區(qū)后的文件作為列文件中數(shù)據(jù)。
這里需要指出的是:以上裝置實(shí)施例的描述,與上述方法實(shí)施例的描述是類似的,具有同方法實(shí)施例相似的有益效果,因此不做贅述。對(duì)于本發(fā)明裝置實(shí)施例中未披露的技術(shù)細(xì)節(jié),請(qǐng)參照本發(fā)明方法實(shí)施例的描述而理解,為節(jié)約篇幅,因此不再贅述。
本發(fā)明以上的各實(shí)施例與現(xiàn)有技術(shù)相比,具有如下的技術(shù)效果:
在現(xiàn)有技術(shù)中,現(xiàn)有列數(shù)據(jù)庫(kù)存儲(chǔ)的分區(qū)算法選擇是通過(guò)人工配置完成的,而人工配置的方式選擇分區(qū)算法本身沒(méi)有數(shù)據(jù)依據(jù),存在盲目性;人工配置的方式增加人力成本,需要考察大量的數(shù)據(jù)才能確定某個(gè)列應(yīng)該使用的分區(qū)算法。而本發(fā)明實(shí)施例通過(guò)樣本數(shù)據(jù)來(lái)分析列最佳分區(qū)算法,是有依據(jù)的選擇;通過(guò)自動(dòng)化選擇分區(qū)算法,節(jié)省人力成本。
現(xiàn)有列數(shù)據(jù)庫(kù)分區(qū)方案沒(méi)有對(duì)系統(tǒng)是查詢優(yōu)先還是分區(qū)性能優(yōu)先做出區(qū)分,這樣導(dǎo)致查詢優(yōu)先的系統(tǒng)查詢效率不是最優(yōu),而分區(qū)性能優(yōu)先的系統(tǒng)分區(qū)比例又不是最好。比如中國(guó)移動(dòng)的實(shí)時(shí)詳單查詢就是查詢性能優(yōu)先系統(tǒng),最好各列的分區(qū)算法相同,以保證查詢效率,而歷史詳單查詢就是分區(qū)性能優(yōu)先的 系統(tǒng),最好各列按分區(qū)算法最高的算法進(jìn)行分區(qū)。
目前沒(méi)有分區(qū)算法評(píng)估的手段,不能對(duì)分區(qū)算法的選擇是否合適進(jìn)行量化,一般是通過(guò)不斷的測(cè)試來(lái)完成算法評(píng)估的,而本發(fā)明實(shí)施例提供了量化分區(qū)算法優(yōu)劣的方法。
應(yīng)理解,說(shuō)明書(shū)通篇中提到的“一個(gè)實(shí)施例”或“一實(shí)施例”意味著與實(shí)施例有關(guān)的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,在整個(gè)說(shuō)明書(shū)各處出現(xiàn)的“在一個(gè)實(shí)施例中”或“在一實(shí)施例中”未必一定指相同的實(shí)施例。此外,這些特定的特征、結(jié)構(gòu)或特性可以任意適合的方式結(jié)合在一個(gè)或多個(gè)實(shí)施例中。應(yīng)理解,在本發(fā)明的各種實(shí)施例中,上述各過(guò)程的序號(hào)的大小并不意味著執(zhí)行順序的先后,各過(guò)程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對(duì)本發(fā)明實(shí)施例的實(shí)施過(guò)程構(gòu)成任何限定。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者裝置不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者裝置所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過(guò)程、方法、物品或者裝置中還存在另外的相同要素。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過(guò)一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
上述作為分離部件說(shuō)明的單元可以是、或也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是、或也可以不是物理單元;既可以位于一個(gè)地方,也可 以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各實(shí)施例中的各功能單元可以全部集成在一個(gè)處理單元中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中;上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、只讀存儲(chǔ)器(Read Only Memory,ROM)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分。而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、ROM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。