本申請(qǐng)涉及數(shù)據(jù)處理技術(shù),特別涉及一種數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理方法及裝置。
背景技術(shù):
隨著90年代后期因特網(wǎng)的興起與飛速發(fā)展,大量的信息和數(shù)據(jù)迎面而來(lái),用科學(xué)的方法去整理數(shù)據(jù),從而從不同視角對(duì)企業(yè)經(jīng)營(yíng)各方面信息的精確分析、準(zhǔn)確判斷,比以往更為迫切,實(shí)施行為的有效性也比以往更受關(guān)注。使用這些技術(shù)建設(shè)的信息系統(tǒng)稱(chēng)為數(shù)據(jù)倉(cāng)庫(kù)。
數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)環(huán)境,提供用戶(hù)用于決策支持的當(dāng)前和歷史數(shù)據(jù),這些數(shù)據(jù)在傳統(tǒng)的操作型數(shù)據(jù)庫(kù)中很難或不能得到。數(shù)據(jù)倉(cāng)庫(kù)技術(shù)是為了有效的把操作形數(shù)據(jù)集成到統(tǒng)一的環(huán)境中以提供決策型數(shù)據(jù)訪(fǎng)問(wèn)的各種技術(shù)和模塊的總稱(chēng)。所做的一切都是為了讓數(shù)據(jù)使用者能夠更快更方便查詢(xún)所需要的信息,為數(shù)據(jù)使用者提供決策支持。
在現(xiàn)有技術(shù)中,為避免下游數(shù)據(jù)工程師產(chǎn)出的指標(biāo)出現(xiàn)錯(cuò)誤或者數(shù)據(jù)業(yè)務(wù)邏輯出現(xiàn)缺陷;通常采用的手段是不對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)進(jìn)行處理。
采用現(xiàn)有技術(shù)中的數(shù)據(jù)處理方法,將使得已經(jīng)沒(méi)有用的數(shù)據(jù)一直占有計(jì)算資源和存儲(chǔ)資源,導(dǎo)致資源浪費(fèi)。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例中提供了一種數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理方法和裝置,用于解決現(xiàn)有技術(shù)中無(wú)用數(shù)據(jù)占有資源導(dǎo)致的資源浪費(fèi)。
根據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了一種數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理方法, 包括:接收用戶(hù)輸入的查詢(xún)條件,查詢(xún)條件包括待查詢(xún)數(shù)據(jù)的關(guān)鍵詞;根據(jù)關(guān)鍵詞確定待查詢(xún)數(shù)據(jù)與數(shù)據(jù)倉(cāng)庫(kù)中其他數(shù)據(jù)的依賴(lài)關(guān)系,依賴(lài)關(guān)系是下述的一種:無(wú)依賴(lài)、強(qiáng)依賴(lài)、弱依賴(lài);向用戶(hù)返回依賴(lài)關(guān)系;接收用戶(hù)根據(jù)依賴(lài)關(guān)系下發(fā)的數(shù)據(jù)處理指令;觸發(fā)數(shù)據(jù)倉(cāng)庫(kù)對(duì)待查詢(xún)數(shù)據(jù)執(zhí)行數(shù)據(jù)處理指令。
根據(jù)本申請(qǐng)實(shí)施例的另一個(gè)方面,提供了一種數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理裝置,包括:查詢(xún)模塊,用于接收用戶(hù)輸入的查詢(xún)條件,查詢(xún)條件包括待查詢(xún)數(shù)據(jù)的關(guān)鍵詞;依賴(lài)關(guān)系確定模塊,用于根據(jù)關(guān)鍵詞確定待查詢(xún)數(shù)據(jù)與數(shù)據(jù)倉(cāng)庫(kù)中其他數(shù)據(jù)的依賴(lài)關(guān)系,依賴(lài)關(guān)系是下述的一種:無(wú)依賴(lài)、強(qiáng)依賴(lài)、弱依賴(lài);反饋模塊,用于向用戶(hù)返回依賴(lài)關(guān)系;指令接收模塊,用于接收用戶(hù)根據(jù)依賴(lài)關(guān)系下發(fā)的數(shù)據(jù)處理指令;觸發(fā)模塊,用于觸發(fā)數(shù)據(jù)倉(cāng)庫(kù)對(duì)待查詢(xún)數(shù)據(jù)執(zhí)行數(shù)據(jù)處理指令。
采用本申請(qǐng)實(shí)施例中的數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理方法和裝置,能夠在接收到用戶(hù)輸入的查詢(xún)條件后,確定并向用戶(hù)返回待查詢(xún)數(shù)據(jù)與其他數(shù)據(jù)的依賴(lài)關(guān)系;供用戶(hù)根據(jù)依賴(lài)關(guān)系下發(fā)針對(duì)待查詢(xún)數(shù)據(jù)的數(shù)據(jù)處理指令,然后再觸發(fā)數(shù)據(jù)倉(cāng)庫(kù)執(zhí)行數(shù)據(jù)處理指令;從而能夠根據(jù)依賴(lài)關(guān)系對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)進(jìn)行處理,避免了現(xiàn)有技術(shù)中不對(duì)數(shù)據(jù)進(jìn)行處理導(dǎo)致的資源浪費(fèi),提升了數(shù)據(jù)倉(cāng)庫(kù)的資源使用效率。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1為本申請(qǐng)實(shí)施例一所示數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理方法流程圖;
圖2是根據(jù)本申請(qǐng)實(shí)施例二的數(shù)據(jù)處理方法的依賴(lài)關(guān)系查詢(xún)結(jié)果示意圖;
圖3是根據(jù)本申請(qǐng)實(shí)施例三的數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本申請(qǐng)實(shí)施例中的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本申請(qǐng)的示例性實(shí)施例進(jìn)行進(jìn)一步詳細(xì)的說(shuō)明,顯然,所描述的實(shí)施例僅是本申請(qǐng)的一部分實(shí)施例,而不是所有實(shí)施例的窮舉。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
本申請(qǐng)實(shí)施例中的方案能夠應(yīng)用于如數(shù)據(jù)字典等工具的依賴(lài)關(guān)系(血緣)影響分析功能上,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上述應(yīng)用只是為便于本技術(shù)技術(shù)人員理解本申請(qǐng)的目的示出,并不用于限制本申請(qǐng)。
圖1為本申請(qǐng)實(shí)施例一所示數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理方法流程圖。
如圖1所示,根據(jù)本申請(qǐng)實(shí)施例一所示的數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理方法包括以下步驟:
S102,接收用戶(hù)輸入的查詢(xún)條件,查詢(xún)條件包括待查詢(xún)數(shù)據(jù)的關(guān)鍵詞;
S104,根據(jù)關(guān)鍵詞確定待查詢(xún)數(shù)據(jù)與數(shù)據(jù)倉(cāng)庫(kù)中其他數(shù)據(jù)的依賴(lài)關(guān)系,依賴(lài)關(guān)系是下述的一種:無(wú)依賴(lài)、強(qiáng)依賴(lài)、弱依賴(lài);
S106,向用戶(hù)返回依賴(lài)關(guān)系;
S108,接收用戶(hù)根據(jù)依賴(lài)關(guān)系下發(fā)的數(shù)據(jù)處理指令;
S110,觸發(fā)數(shù)據(jù)倉(cāng)庫(kù)對(duì)待查詢(xún)數(shù)據(jù)執(zhí)行數(shù)據(jù)處理指令。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,數(shù)據(jù)倉(cāng)庫(kù)中存儲(chǔ)的數(shù)據(jù)主要是數(shù)據(jù)開(kāi)發(fā)產(chǎn)出的物理表或視圖。表是數(shù)據(jù)倉(cāng)庫(kù)最重要的組成部分,表通常由關(guān)鍵詞key,度量,屬性數(shù)據(jù)組成,例如員工表由員工號(hào)(key),員工姓名,年齡等員工屬性數(shù)據(jù)組成。視圖同表一樣,也包含一系列帶有名稱(chēng)的列和行數(shù)據(jù),但是,視圖在數(shù)據(jù)庫(kù)中并不以存儲(chǔ)的數(shù)據(jù)值集的形式存在,而是由查詢(xún)定義,可以視為虛擬的表。
依賴(lài)關(guān)系是指數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)研發(fā)過(guò)程中,表或視圖被下游其他視圖或任務(wù)使用、消費(fèi)而形成的關(guān)系,或者表或視圖在形成過(guò)程中對(duì)上游其他表或視圖的使用、消費(fèi)而形成的關(guān)系。
無(wú)依賴(lài)是指數(shù)據(jù)與其他數(shù)據(jù)之間沒(méi)有任何的依賴(lài)關(guān)系;強(qiáng)依賴(lài)是指數(shù)據(jù)與 其他數(shù)據(jù)之間存在調(diào)度關(guān)系,是最強(qiáng)也是最直觀(guān)的一種依賴(lài)關(guān)系;弱依賴(lài)是指數(shù)據(jù)之間不是調(diào)度關(guān)系,但可以通過(guò)執(zhí)行例如SQL((Structured Query Language,結(jié)構(gòu)化查詢(xún)語(yǔ)言)日志或視圖DDL(Data Definition Language,數(shù)據(jù)庫(kù)模式定義語(yǔ)言)語(yǔ)句解析出來(lái)的依賴(lài)關(guān)系;弱依賴(lài)在數(shù)據(jù)研發(fā)過(guò)程中比較隱蔽,很容易被忽略掉;例如,表被視圖使用、表或視圖被數(shù)據(jù)工廠(chǎng)、定時(shí)任務(wù)、數(shù)據(jù)回流生產(chǎn)任務(wù)等使用均是弱依賴(lài)關(guān)系。
各表或視圖被下游任務(wù)所依賴(lài)使用,也被數(shù)據(jù)使用者在IDE(Integrated Development Environment,集成開(kāi)發(fā)環(huán)境)、報(bào)表工具、定時(shí)任務(wù)等工具使用,目前數(shù)據(jù)倉(cāng)庫(kù)有上萬(wàn)張表,存在錯(cuò)綜復(fù)雜的依賴(lài)關(guān)系。
在具體實(shí)施時(shí),用戶(hù)輸入的該查詢(xún)條件包括待查詢(xún)數(shù)據(jù)的關(guān)鍵詞,該關(guān)鍵詞可以是表的名字,也可以是節(jié)點(diǎn)ID(IDentity的縮寫(xiě),身份標(biāo)識(shí)號(hào)碼),例如,待查詢(xún)數(shù)據(jù)是員工表時(shí),該關(guān)鍵詞可以是作為該表的關(guān)鍵詞的員工號(hào)。
在具體實(shí)施時(shí),采用oracle、mysql、teradata傳統(tǒng)數(shù)據(jù)庫(kù)或者Greenplum、hadoop、odps等分布式數(shù)據(jù)庫(kù)都可以實(shí)施本申請(qǐng)實(shí)施例中的數(shù)據(jù)處理方法。
在具體實(shí)施時(shí),本申請(qǐng)實(shí)施例中待查詢(xún)數(shù)據(jù)與數(shù)據(jù)倉(cāng)庫(kù)中其他數(shù)據(jù)的依賴(lài)關(guān)系可以是預(yù)先生成的,也可以是在接受到用戶(hù)輸入的查詢(xún)請(qǐng)求之后生成的,本申請(qǐng)對(duì)此并不做限制。
采用本申請(qǐng)實(shí)施例中的數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理方法,能夠在接收到用戶(hù)輸入的查詢(xún)條件后,確定并向用戶(hù)返回待查詢(xún)數(shù)據(jù)與其他數(shù)據(jù)的依賴(lài)關(guān)系;供用戶(hù)根據(jù)依賴(lài)關(guān)系下發(fā)針對(duì)待查詢(xún)數(shù)據(jù)的數(shù)據(jù)處理指令,然后再觸發(fā)數(shù)據(jù)倉(cāng)庫(kù)執(zhí)行數(shù)據(jù)處理指令;從而能夠根據(jù)依賴(lài)關(guān)系對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)進(jìn)行處理,避免了現(xiàn)有技術(shù)中不對(duì)數(shù)據(jù)進(jìn)行處理導(dǎo)致的資源浪費(fèi)。
優(yōu)選地,根據(jù)關(guān)鍵詞確定待查詢(xún)數(shù)據(jù)與數(shù)據(jù)倉(cāng)庫(kù)中其他數(shù)據(jù)的依賴(lài)關(guān)系具體包括:根據(jù)關(guān)鍵詞確定待查詢(xún)數(shù)據(jù);調(diào)用元數(shù)據(jù)生成待查詢(xún)數(shù)據(jù)與數(shù)據(jù)倉(cāng)庫(kù)中其他數(shù)據(jù)的依賴(lài)關(guān)系。
元數(shù)據(jù)是指描述數(shù)據(jù)的數(shù)據(jù),對(duì)數(shù)據(jù)及信息資源的描述性信息,包括業(yè)務(wù) 表結(jié)構(gòu)信息、數(shù)倉(cāng)表結(jié)構(gòu)信息等。
優(yōu)選地,元數(shù)據(jù)包括調(diào)度元數(shù)據(jù)、SQL執(zhí)行日志元數(shù)據(jù)、表結(jié)構(gòu)元數(shù)據(jù)、同步中心元數(shù)據(jù)、定時(shí)任務(wù)元數(shù)據(jù)中的一個(gè)或多個(gè)。
優(yōu)選地,在向用戶(hù)返回依賴(lài)關(guān)系之后,在接收用戶(hù)根據(jù)依賴(lài)關(guān)系下發(fā)的數(shù)據(jù)處理指令之前;還包括:根據(jù)依賴(lài)關(guān)系向用戶(hù)提供針對(duì)待查詢(xún)數(shù)據(jù)的數(shù)據(jù)處理指令。
為了便于用戶(hù)對(duì)查詢(xún)的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,還可以在查詢(xún)到相應(yīng)待查詢(xún)數(shù)據(jù)的依賴(lài)關(guān)系之后,向用戶(hù)提供對(duì)應(yīng)的處理指令,包括:如果查詢(xún)數(shù)據(jù)的依賴(lài)關(guān)系是“無(wú)依賴(lài)”,則向用戶(hù)提供對(duì)應(yīng)于無(wú)依賴(lài)數(shù)據(jù)的數(shù)據(jù)處理指令;如果查詢(xún)數(shù)據(jù)的依賴(lài)關(guān)系是“強(qiáng)依賴(lài)”,則向用戶(hù)提供對(duì)應(yīng)于強(qiáng)依賴(lài)數(shù)據(jù)的數(shù)據(jù)處理指令;如果查詢(xún)數(shù)據(jù)的依賴(lài)關(guān)系是“弱依賴(lài)”,則向用戶(hù)提供對(duì)應(yīng)于弱依賴(lài)數(shù)據(jù)的數(shù)據(jù)處理指令。
優(yōu)選地,數(shù)據(jù)處理指令是下線(xiàn)或變更。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下線(xiàn)是指對(duì)表進(jìn)行物理刪除或重命名備份;變更是指對(duì)表的內(nèi)容或視圖邏輯進(jìn)行更新。
在具體實(shí)施時(shí),對(duì)于無(wú)依賴(lài)關(guān)系的數(shù)據(jù),則提供“下線(xiàn)”和“變更”處理指令,對(duì)于存在強(qiáng)依賴(lài)關(guān)系的數(shù)據(jù),則提供“變更”功能及“變更通知”功能;對(duì)于存在弱依賴(lài)關(guān)系的數(shù)據(jù),則提供“變更”等,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上述依賴(lài)關(guān)系與處理指令之間的關(guān)系僅是為示例的目的而示出,并不用于限制本申請(qǐng)。
在現(xiàn)有技術(shù)中,由于數(shù)據(jù)倉(cāng)庫(kù)中的表與視圖之間的錯(cuò)綜復(fù)雜的依賴(lài)或使用關(guān)系,在數(shù)據(jù)工程師想要對(duì)數(shù)據(jù)進(jìn)行下線(xiàn)或變更時(shí),只能手動(dòng)查詢(xún)?cè)摂?shù)據(jù)與其他數(shù)據(jù)的依賴(lài)關(guān)系,然后再根據(jù)該依賴(lài)關(guān)系進(jìn)行下線(xiàn)或是變更,但是手動(dòng)的查詢(xún)不能窮盡數(shù)據(jù)倉(cāng)庫(kù),導(dǎo)致變更的影響范圍不確定,會(huì)造成使用數(shù)據(jù)的工程師產(chǎn)出指標(biāo)錯(cuò)誤或數(shù)據(jù)業(yè)務(wù)邏輯出現(xiàn)缺陷,導(dǎo)致資損或客戶(hù)投訴;同時(shí)手動(dòng)的維護(hù)工作量也較繁重;如果想要窮盡,則手動(dòng)查詢(xún)的成本很高。
而采用本申請(qǐng)實(shí)施例中的方案,數(shù)據(jù)工程師可以查詢(xún)想要下線(xiàn)或是變更的數(shù)據(jù)的依賴(lài)關(guān)系;然后根據(jù)該依賴(lài)關(guān)系選擇下線(xiàn)或是變更;例如,如果無(wú)依賴(lài),則進(jìn)行下線(xiàn),如果是強(qiáng)依賴(lài),則進(jìn)行變更并通知;如果是弱依賴(lài),則進(jìn)行變更等,從而使得數(shù)據(jù)工程師能夠根據(jù)依賴(lài)關(guān)系對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)進(jìn)行處理,方便了數(shù)據(jù)處理,提升影響評(píng)估準(zhǔn)確性,提高了數(shù)據(jù)處理的效率和準(zhǔn)確度。
在具體實(shí)施時(shí),查詢(xún)條件還可以進(jìn)一步包括查詢(xún)數(shù)據(jù)的依賴(lài)關(guān)系的方向和層級(jí),例如,向上游回溯N級(jí),或者向下游查詢(xún)N級(jí)。
向上游回溯是指向上游查詢(xún)待查詢(xún)數(shù)據(jù)所依賴(lài)的N級(jí)表或視圖;向下游查詢(xún)是指向下游查詢(xún)待查詢(xún)數(shù)據(jù)所被依賴(lài)的N級(jí)表或視圖。
根據(jù)待查詢(xún)數(shù)據(jù)與上游數(shù)據(jù)的依賴(lài)關(guān)系,用戶(hù)可以用于待查詢(xún)數(shù)據(jù)的出錯(cuò)檢查、模型健康檢查、數(shù)據(jù)路徑長(zhǎng)度檢測(cè)、數(shù)據(jù)處理效率評(píng)估等。
對(duì)于待查詢(xún)數(shù)據(jù)與下游數(shù)據(jù)的依賴(lài)關(guān)系,用戶(hù)可以用于待查詢(xún)數(shù)據(jù)的下線(xiàn)或變更處理等。
下面結(jié)合圖2對(duì)根據(jù)本申請(qǐng)實(shí)施例二的數(shù)據(jù)處理方法進(jìn)行介紹。
本申請(qǐng)實(shí)施例中的數(shù)據(jù)處理方法可以基于元數(shù)據(jù)整合的依賴(lài)關(guān)系結(jié)果進(jìn)行功能展現(xiàn),并提供向上游、下游設(shè)定N級(jí)依賴(lài)關(guān)系查詢(xún)及展現(xiàn),具體的依賴(lài)關(guān)系結(jié)果展現(xiàn)如圖2所示。
圖2中,查詢(xún)血緣類(lèi)型即是指用戶(hù)想要查詢(xún)的依賴(lài)關(guān)系的分類(lèi),包括:表血緣、視圖血緣、任務(wù)血緣等。
在具體實(shí)施時(shí),用戶(hù)選擇想要查詢(xún)的血緣類(lèi)型為“表血緣”,待查詢(xún)的數(shù)據(jù)是表名為“dwb_fnd_dback_all_dd”的表;查詢(xún)層次為1,查詢(xún)方向?yàn)橄掠巍?/p>
經(jīng)本申請(qǐng)實(shí)施例的數(shù)據(jù)處理方法處理后,向用戶(hù)反饋與“dwb_fnd_dback_all_dd”表存在依賴(lài)關(guān)系的有以下節(jié)點(diǎn):“dwd1”、“dws1”、“dws2”、“dwb1”、“dws3”、“st1”、“dws4”、“st2”、“adm1”,并提供了與這些節(jié)點(diǎn)相應(yīng)的節(jié)點(diǎn)名、表名、以相應(yīng)的依賴(lài)關(guān)系和表類(lèi)型。
用戶(hù)在相應(yīng)的節(jié)點(diǎn)處點(diǎn)擊右鍵可以選擇相應(yīng)的處理方式,本申請(qǐng)實(shí)施例中 查詢(xún)得到的結(jié)果均為“強(qiáng)依賴(lài)”,因此向用戶(hù)提供“變更”及“變更通知”功能。
采用本申請(qǐng)實(shí)施例中的方案,能夠在接收到用戶(hù)輸入的查詢(xún)條件后,確定并向用戶(hù)返回待查詢(xún)數(shù)據(jù)與其他數(shù)據(jù)的依賴(lài)關(guān)系;供用戶(hù)根據(jù)依賴(lài)關(guān)系下發(fā)針對(duì)待查詢(xún)數(shù)據(jù)的數(shù)據(jù)處理指令,然后再觸發(fā)數(shù)據(jù)倉(cāng)庫(kù)執(zhí)行數(shù)據(jù)處理指令;從而能夠根據(jù)依賴(lài)關(guān)系對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)進(jìn)行處理,避免了現(xiàn)有技術(shù)中的資源浪費(fèi),提升了數(shù)據(jù)倉(cāng)庫(kù)的資源使用效率,降低了數(shù)據(jù)處理的出錯(cuò)概率,提高了數(shù)據(jù)處理的效率和準(zhǔn)確度。
基于同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例中還提供了一種數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理裝置,由于該裝置解決問(wèn)題的原理與數(shù)據(jù)處理方法相似,因此該裝置的實(shí)施可以參見(jiàn)方法的實(shí)施,重復(fù)之處不再贅述。
圖3是根據(jù)本申請(qǐng)實(shí)施例三的數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖。
如圖3所示,根據(jù)本申請(qǐng)實(shí)施例二的數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理裝置20包括:查詢(xún)模塊202,用于接收用戶(hù)輸入的查詢(xún)條件,查詢(xún)條件包括待查詢(xún)數(shù)據(jù)的關(guān)鍵詞;依賴(lài)關(guān)系確定模塊204,用于根據(jù)關(guān)鍵詞確定待查詢(xún)數(shù)據(jù)與數(shù)據(jù)倉(cāng)庫(kù)中其他數(shù)據(jù)的依賴(lài)關(guān)系,依賴(lài)關(guān)系是下述的一種:無(wú)依賴(lài)、強(qiáng)依賴(lài)、弱依賴(lài);反饋模塊206,用于向用戶(hù)返回依賴(lài)關(guān)系;指令接收模塊208,用于接收用戶(hù)根據(jù)依賴(lài)關(guān)系下發(fā)的數(shù)據(jù)處理指令;觸發(fā)模塊210,用于觸發(fā)數(shù)據(jù)倉(cāng)庫(kù)對(duì)待查詢(xún)數(shù)據(jù)執(zhí)行數(shù)據(jù)處理指令。
優(yōu)選地,依賴(lài)關(guān)系確定模塊具體包括:確定子模塊,用于根據(jù)關(guān)鍵詞確定待查詢(xún)數(shù)據(jù);依賴(lài)關(guān)系生成子模塊,用于根據(jù)元數(shù)據(jù)生成待查詢(xún)數(shù)據(jù)的依賴(lài)關(guān)系。
優(yōu)選地,元數(shù)據(jù)包括調(diào)度元數(shù)據(jù)、SQL執(zhí)行日志元數(shù)據(jù)、表結(jié)構(gòu)元數(shù)據(jù)、同步中心元數(shù)據(jù)、定時(shí)任務(wù)元數(shù)據(jù)中的一個(gè)或多個(gè)。
優(yōu)選地,該數(shù)據(jù)處理裝置還包括:指令提供模塊,用于根據(jù)依賴(lài)關(guān)系向用 戶(hù)提供針對(duì)待查詢(xún)數(shù)據(jù)的數(shù)據(jù)處理指令。
優(yōu)選地,數(shù)據(jù)處理指令是下線(xiàn)或變更。
在具體實(shí)施時(shí),可以使用java、jsp或者.net等語(yǔ)言實(shí)現(xiàn)本申請(qǐng)實(shí)施例中的數(shù)據(jù)處理裝置。
數(shù)據(jù)倉(cāng)庫(kù)的表或視圖的下游生產(chǎn)任務(wù)依賴(lài)、數(shù)據(jù)消費(fèi)是錯(cuò)綜復(fù)雜的,建立起全覆蓋的數(shù)據(jù)影響分析,對(duì)于數(shù)據(jù)生產(chǎn)管理至關(guān)重要,可以降低工作復(fù)雜度、提升開(kāi)發(fā)效率、保障工作質(zhì)量。通過(guò)本申請(qǐng)實(shí)施例中的數(shù)據(jù)處理裝置,數(shù)據(jù)開(kāi)發(fā)工程師可以基于該裝置很直觀(guān)地判斷將要處理的表或視圖與其他數(shù)據(jù)的依賴(lài)關(guān)系,從而很直觀(guān)的確定將要執(zhí)行的數(shù)據(jù)處理指令的影響范圍、以及能否進(jìn)行下線(xiàn)處理和變更。
在具體實(shí)施時(shí),本申請(qǐng)實(shí)施例中的數(shù)據(jù)處理裝置可以通過(guò)查詢(xún)模塊向用戶(hù)提供依賴(lài)關(guān)系查詢(xún)服務(wù)、下線(xiàn)、變更通知查詢(xún)服務(wù)等。
在具體實(shí)施時(shí),本申請(qǐng)實(shí)施例中的數(shù)據(jù)處理裝置可以通過(guò)依賴(lài)關(guān)系生成子模塊,對(duì)調(diào)度元數(shù)據(jù)、SQL執(zhí)行日志元數(shù)據(jù)、表結(jié)構(gòu)元數(shù)據(jù)、同步中心元數(shù)據(jù)、定時(shí)任務(wù)元數(shù)據(jù)等進(jìn)行整合,以精準(zhǔn)、全面分析數(shù)據(jù)之間的依賴(lài)關(guān)系,并產(chǎn)出接口表。
在具體實(shí)施時(shí),本申請(qǐng)實(shí)施例中的數(shù)據(jù)處理裝置可以基于元數(shù)據(jù)整合的依賴(lài)關(guān)系結(jié)果進(jìn)行功能展現(xiàn),并提供向上游、下游設(shè)定N級(jí)影響查詢(xún)及展現(xiàn)。
在具體實(shí)施時(shí),本申請(qǐng)實(shí)施例中的數(shù)據(jù)處理裝置可以對(duì)下游沒(méi)有依賴(lài)、使用的表或視圖提供一鍵下線(xiàn)功能,還可以提供對(duì)下游沒(méi)有依賴(lài)的任務(wù)進(jìn)行下線(xiàn),對(duì)表進(jìn)行物理刪除或重命名備份等功能。
在具體實(shí)施時(shí),本申請(qǐng)實(shí)施例中的數(shù)據(jù)處理裝置還可以對(duì)變更后的表或視圖提供變更通知功能,以便于數(shù)據(jù)開(kāi)發(fā)工程師可以基于依賴(lài)關(guān)系對(duì)變更后的表或視圖的下游任務(wù)所有者(owner)或使用者發(fā)送變更通知郵件。
采用本申請(qǐng)實(shí)施例中的方案,用戶(hù)輸入表或名字、設(shè)定層級(jí)、選擇向上游或向下游進(jìn)行依賴(lài)關(guān)系查詢(xún),數(shù)據(jù)處理裝置調(diào)用元數(shù)據(jù)服務(wù)查詢(xún)依賴(lài)關(guān)系結(jié)果 并展示出來(lái),用戶(hù)可以基于結(jié)果判定是進(jìn)行下線(xiàn)操作還是變更通知,如果有下游或使用信息,則不能進(jìn)行下線(xiàn)操作;如果選擇下線(xiàn)操作,則數(shù)據(jù)處理裝置觸發(fā)數(shù)據(jù)倉(cāng)庫(kù)對(duì)表或視圖進(jìn)行物理刪除或重命名并將對(duì)應(yīng)的任務(wù)進(jìn)行下線(xiàn)處理;如果選擇變更,則填寫(xiě)變更描述后,觸發(fā)變更,并發(fā)送變更通知,系統(tǒng)自動(dòng)對(duì)下游任務(wù)owner、使用數(shù)據(jù)工程師發(fā)送變更郵件,內(nèi)容包括變更描述、變更影響清單等。
采用本申請(qǐng)實(shí)施例中的方案,能夠在接收到用戶(hù)輸入的查詢(xún)條件后,確定并向用戶(hù)返回待查詢(xún)數(shù)據(jù)與其他數(shù)據(jù)的依賴(lài)關(guān)系;供用戶(hù)根據(jù)依賴(lài)關(guān)系下發(fā)針對(duì)待查詢(xún)數(shù)據(jù)的數(shù)據(jù)處理指令,然后再觸發(fā)數(shù)據(jù)倉(cāng)庫(kù)執(zhí)行數(shù)據(jù)處理指令;從而能夠根據(jù)依賴(lài)關(guān)系對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)進(jìn)行處理,避免了現(xiàn)有技術(shù)中不對(duì)數(shù)據(jù)進(jìn)行處理導(dǎo)致的資源浪費(fèi),提升了數(shù)據(jù)倉(cāng)庫(kù)的資源使用效率,降低了數(shù)據(jù)處理的出錯(cuò)概率,提高了數(shù)據(jù)處理的準(zhǔn)確度。
為了描述的方便,以上所述裝置的各部分以功能分為各種部件或單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各部件或單元的功能在同一個(gè)或多個(gè)軟件或硬件中實(shí)現(xiàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一 個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)的精神和范圍。這樣,倘若本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。