亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種數(shù)據(jù)倉庫的血統(tǒng)分析方法和裝置的制造方法

文檔序號:8922681閱讀:335來源:國知局
一種數(shù)據(jù)倉庫的血統(tǒng)分析方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)倉庫技術(shù),特別是涉及一種數(shù)據(jù)倉庫的血統(tǒng)分析方法和裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)大爆發(fā)以來,面對日益增長的海量數(shù)據(jù),用以支撐主流搜索引擎公司,電子商務(wù),社交網(wǎng)站的傳統(tǒng)數(shù)據(jù)倉庫(Data Warehouse,Dff)系統(tǒng)早已不堪重負(fù)了,而構(gòu)建于分布式系統(tǒng)基礎(chǔ)架構(gòu)Hadoop集群之上的數(shù)據(jù)倉庫工具Hive的出現(xiàn)恰逢其時(shí),已成為實(shí)現(xiàn)大數(shù)據(jù)時(shí)代分布式數(shù)據(jù)倉庫的福音。近年來數(shù)據(jù)倉庫的數(shù)據(jù)質(zhì)量問題已經(jīng)嚴(yán)重影響了商務(wù)智能的應(yīng)用能力?;A(chǔ)數(shù)據(jù)的正確性、真實(shí)性直接影響到報(bào)表和分析結(jié)果的可信度,因此需要快速回溯數(shù)據(jù)的來龍去脈和精確追蹤數(shù)據(jù)的最底層來源。有時(shí)需要準(zhǔn)確評估倉庫上游數(shù)據(jù)變更,對下游應(yīng)用的影響,有時(shí)需要分析表及字段的重要程度或無關(guān)程度,而這一切都需要通過分析數(shù)據(jù)倉庫的元數(shù)據(jù)給出答案。這個(gè)領(lǐng)域就是數(shù)據(jù)倉庫的血統(tǒng)分析。
[0003]數(shù)據(jù)倉庫的血統(tǒng)分析是建立在倉庫的元數(shù)據(jù)基礎(chǔ)上的,在整個(gè)數(shù)據(jù)倉庫中元數(shù)據(jù)的范疇是極其廣泛,從底層到應(yīng)用層都有其用武之地。具體地,在數(shù)據(jù)來源方面,需要包含源系統(tǒng)的庫表信息等;在數(shù)據(jù)采集層,元數(shù)據(jù)需要清楚地記錄數(shù)據(jù)倉庫的映射關(guān)系、ETL程序信息、數(shù)據(jù)轉(zhuǎn)換清洗的規(guī)則等;在數(shù)據(jù)存儲和基礎(chǔ)層,元數(shù)據(jù)需要清楚描述DW數(shù)據(jù)的物理結(jié)構(gòu)、數(shù)據(jù)字典、資源目錄等詳細(xì)信息;在應(yīng)用服務(wù)層,元數(shù)據(jù)則需要包含數(shù)據(jù)分析模型、KPI關(guān)鍵業(yè)務(wù)指標(biāo)等。通過數(shù)據(jù)血統(tǒng)分析,可以獲得數(shù)據(jù)在數(shù)據(jù)流中的演化過程,包括數(shù)據(jù)的起源和處理這些數(shù)據(jù)的所有后繼過程。實(shí)現(xiàn)數(shù)據(jù)倉庫的血統(tǒng)分析主要包括數(shù)據(jù)血統(tǒng)的計(jì)算、存儲和查詢等。
[0004]現(xiàn)有成熟的血統(tǒng)分析工具都是基于傳統(tǒng)數(shù)據(jù)倉庫的特定商業(yè)實(shí)現(xiàn),還沒有基于Hive開源數(shù)據(jù)倉庫的血統(tǒng)分析工具。
[0005]而現(xiàn)有的關(guān)系型數(shù)據(jù)庫的血統(tǒng)分析開源方案通常是采用關(guān)鍵詞解析的方式實(shí)現(xiàn),即通過提取結(jié)構(gòu)化查詢語言(SQL)語法關(guān)鍵詞前后的有用信息,得到相應(yīng)的數(shù)據(jù)來源表和數(shù)據(jù)目標(biāo)表信息。
[0006]上述現(xiàn)有的血統(tǒng)分析方案,只能分析到數(shù)據(jù)的表級粒度,如此,關(guān)鍵型細(xì)節(jié)將會缺失。例如,表的元數(shù)據(jù)信息、表的查詢約束條件等都無法獲知,這樣,就無法利用血統(tǒng)分析結(jié)果滿足用戶的數(shù)據(jù)回溯需要以及準(zhǔn)確分析上游元數(shù)據(jù)對下游的影響,從而導(dǎo)致由于分析粒度太粗所致的分析結(jié)果實(shí)用價(jià)值不高的問題。

【發(fā)明內(nèi)容】

[0007]有鑒于此,本發(fā)明的主要目的在于提供一種數(shù)據(jù)倉庫的血統(tǒng)分析方法和裝置,可以提高血統(tǒng)分析數(shù)據(jù)的應(yīng)用價(jià)值,有利于用戶的數(shù)據(jù)回溯以及分析數(shù)據(jù)倉庫上游元數(shù)據(jù)對下游數(shù)據(jù)應(yīng)用環(huán)節(jié)的影響。
[0008]為了達(dá)到上述目的,本發(fā)明提出的技術(shù)方案為:
[0009]一種數(shù)據(jù)倉庫的血統(tǒng)分析方法,包括:
[0010]對于當(dāng)前執(zhí)行的蜂巢結(jié)構(gòu)化查詢語言HQL語句段,進(jìn)行拆分預(yù)處理,得到一組有效子語句,每個(gè)所述有效子語句為最小的可執(zhí)行語句;
[0011]對于每個(gè)所述有效子語句,進(jìn)行語法、詞法和語義分析,生成相應(yīng)的抽象語法樹;
[0012]對于每個(gè)抽象語法樹,遍歷該抽象語法樹中的每個(gè)節(jié)點(diǎn),在每個(gè)節(jié)點(diǎn)采集相應(yīng)的節(jié)點(diǎn)數(shù)據(jù),并將所述節(jié)點(diǎn)數(shù)據(jù)與相應(yīng)的數(shù)據(jù)倉庫元數(shù)據(jù)關(guān)聯(lián)后保存。
[0013]一種數(shù)據(jù)倉庫的血統(tǒng)分析裝置,包括:
[0014]拆分單元,用于對于當(dāng)前執(zhí)行的蜂巢結(jié)構(gòu)化查詢語言HQL語句段,進(jìn)行拆分預(yù)處理,得到一組有效子語句,每個(gè)所述有效子語句為最小的可執(zhí)行語句;
[0015]語法樹生成單元,用于對于每個(gè)所述有效子語句,進(jìn)行語法、詞法和語義分析,生成相應(yīng)的抽象語法樹;
[0016]采集關(guān)聯(lián)單元,用于對于每個(gè)抽象語法樹,遍歷該抽象語法樹中的每個(gè)節(jié)點(diǎn),在每個(gè)節(jié)點(diǎn)采集相應(yīng)的節(jié)點(diǎn)數(shù)據(jù),并將所述節(jié)點(diǎn)數(shù)據(jù)與相應(yīng)的數(shù)據(jù)倉庫元數(shù)據(jù)關(guān)聯(lián)后保存。
[0017]綜上所述,本發(fā)明提出的數(shù)據(jù)倉庫的血統(tǒng)分析方法和裝置,通過將HQL語句段進(jìn)行拆分,細(xì)化分析粒度,可以采集到更多有用數(shù)據(jù),避免關(guān)鍵信息的丟失,從而可以提高血統(tǒng)分析數(shù)據(jù)的應(yīng)用價(jià)值,有利于用戶的數(shù)據(jù)回溯以及分析數(shù)據(jù)倉庫上游元數(shù)據(jù)對下游數(shù)據(jù)應(yīng)用環(huán)節(jié)的影響。
【附圖說明】
[0018]圖1為本發(fā)明實(shí)施例一的方法流程示意圖;
[0019]圖2為本發(fā)明實(shí)施例一的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0020]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0021]本發(fā)明的核心思想是:先將HQL語句段進(jìn)行拆分,然后再對拆分后的每個(gè)單元分別進(jìn)行分析,并生成相應(yīng)的抽象語法樹,最后再基于語法樹采集相應(yīng)的數(shù)據(jù)信息。如此,通過細(xì)化血統(tǒng)分析的數(shù)據(jù)粒度,可以獲得更多有用數(shù)據(jù),避免關(guān)鍵信息的丟失,從而可以提高血統(tǒng)分析數(shù)據(jù)的應(yīng)用價(jià)值,有利于用戶的數(shù)據(jù)回溯以及分析上游元數(shù)據(jù)對下游的影響。
[0022]一種數(shù)據(jù)倉庫的血統(tǒng)分析方法,包括:
[0023]步驟101、對于當(dāng)前執(zhí)行的蜂巢結(jié)構(gòu)化查詢語言(HIVE SQL,HQL)語句段,進(jìn)行拆分預(yù)處理,得到一組有效子語句,每個(gè)所述有效子語句為最小的可執(zhí)行語句。
[0024]本步驟,用于對每個(gè)HQL語句段進(jìn)行拆分預(yù)處理,得到若干個(gè)有效的最小可執(zhí)行語句,以便在后續(xù)步驟中,分別針對各子語句進(jìn)行獨(dú)立分析。如此,通過細(xì)化血統(tǒng)分析的粒度,可以避免關(guān)鍵信息的丟失。
[0025]較佳地,可以采用下述步驟進(jìn)行所述拆分預(yù)處理。
[0026]步驟1011、對所述HQL語句段進(jìn)行拆分,得到相應(yīng)的子語句集合,所述集合中的每個(gè)子語句為最小的可執(zhí)行語句。
[0027]步驟1012、刪除所述子語句集合中對數(shù)據(jù)倉庫有物理操作的語句。
[0028]本步驟用于對子語句集合中的語句進(jìn)行篩選,去除其中對數(shù)據(jù)倉庫有物理操作的語句,如用于添加分區(qū),刪除分區(qū),創(chuàng)建表,刪除表,導(dǎo)出數(shù)據(jù)至本地等語句,以避免改變數(shù)據(jù)倉庫中的數(shù)據(jù)。具體的對數(shù)據(jù)倉庫有物理操作的語句的識別,為本領(lǐng)域技術(shù)人員所掌握,在此不再贅述。
[0029]步驟1013、將所述HQL語句段所屬程序的信息,與當(dāng)前所述子語句集合中的每個(gè)子語句進(jìn)行關(guān)聯(lián)。
[0030]本步驟中,為了便于進(jìn)行全鏈分析,需要將HQL語句段所在的程序信息與其各子語句進(jìn)行關(guān)聯(lián)。
[0031]步驟1014、將所述子語句集合中的子語句作為所述有效子語句。
[0032]步驟102、對于每個(gè)所述有效子語句,進(jìn)行語法、詞法和語義分析,生成相應(yīng)的抽象語法樹。
[0033]本步驟用于生成各有效子語句對應(yīng)的抽象語法樹,以便在步驟103中實(shí)現(xiàn)數(shù)據(jù)的采集。本步驟可采用現(xiàn)有語法分析工具實(shí)現(xiàn)。
[0034]較佳地,可以采用基于Java開發(fā)的功能強(qiáng)大的語言識別工具:Antlr語法分析工具,來進(jìn)行所述語法、詞法和語義分析,生成相應(yīng)的抽象語法樹。
[0035]步驟103、對于每個(gè)抽象語法樹,遍歷該抽象語法樹中的每
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1