專利名稱:數(shù)據(jù)倉庫的查詢處理方法及裝置的制作方法
技術(shù)領域:
本發(fā)明實施例涉及數(shù)據(jù)處理技術(shù)領域,尤其涉及一種數(shù)據(jù)倉庫的查詢處理方法及
直O(jiān)
背景技術(shù):
數(shù)據(jù)倉庫(Data Warehouse,簡稱為DW)是決策支持系統(tǒng)(Decision Support System,簡稱為DSS)和聯(lián)機分析應用數(shù)據(jù)源的結(jié)構(gòu)化數(shù)據(jù)環(huán)境。數(shù)據(jù)倉庫研究并解決從數(shù)據(jù)庫中獲取信息的問題。數(shù)據(jù)倉庫的特征在于面向主題、集成性、穩(wěn)定性和時變性?,F(xiàn)有技術(shù)中,TERADATA作為全球最大的企業(yè)級數(shù)據(jù)倉庫廠商,其數(shù)據(jù)倉庫產(chǎn)品一直在各行業(yè)極具影響。數(shù)據(jù)倉庫建設及使用的特性決定了其每日數(shù)據(jù)的提取、轉(zhuǎn)換和加載(Extraction Transformation Loading,簡稱為ETL)過程需要消耗大量的資源,如果在數(shù)據(jù)倉庫ETL過程中對數(shù)據(jù)倉庫進行其他查詢,會增大數(shù)據(jù)庫的查詢壓力,影響ETL的速度。
發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本發(fā)明實施例提供一種數(shù)據(jù)倉庫的查詢處理方法,包括對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測;當檢測到已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件時,對非即時需求的查詢進行處理。一種數(shù)據(jù)倉庫的查詢處理裝置,包括檢測模塊,用于對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測;處理模塊,用于當所述檢測模塊檢測到已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件時,對非即時需求的查詢進行處理。本發(fā)明實施例的數(shù)據(jù)倉庫的查詢處理方法及裝置,通過對預設的處理條件進行檢測,當檢測到滿足條件時,才對非即時需求的查詢進行處理。盡可能利用了系統(tǒng)的空閑時間執(zhí)行非即時需求查詢?nèi)蝿眨行p輕了數(shù)據(jù)倉庫在ETL時系統(tǒng)查詢的資源壓力。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的數(shù)據(jù)倉庫的結(jié)構(gòu)示意圖;圖2為本發(fā)明一個實施例提供的數(shù)據(jù)倉庫的查詢處理方法流程圖;圖3為本發(fā)明一個實施例提供的數(shù)據(jù)倉庫的查詢處理裝置結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖1所示的本發(fā)明實施例提供的數(shù)據(jù)倉庫的結(jié)構(gòu)示意圖,其中,ETL服務器對外圍源系統(tǒng)發(fā)送的數(shù)據(jù)進行提取、轉(zhuǎn)換、加載等處理,處理后的數(shù)據(jù)發(fā)送給數(shù)據(jù)倉庫服務器進行。應用服務器可以從數(shù)據(jù)倉庫服務器中獲得應用需要的數(shù)據(jù)。文件傳輸協(xié)議(File Transfer Protocol,簡稱為FTP)服務器是應用服務器中的一種。圖2為本發(fā)明一個實施例提供的數(shù)據(jù)倉庫的查詢處理方法流程圖,如圖2所示,該方法包括步驟101 數(shù)據(jù)倉庫服務器對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測;其中,在本發(fā)明實施例中,以三種預設的數(shù)據(jù)倉庫的查詢處理條件為例進行說明。第一種預設的數(shù)據(jù)倉庫的查詢處理條件為ETL服務器當前執(zhí)行的ETL任務為預定任務,其中,預定任務在本發(fā)明實施例中可以指的是消耗系統(tǒng)資源低于第一預設值的任務。那么步驟101具體可以包括檢索數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫,該數(shù)據(jù)庫中保存有各ETL 任務消耗系統(tǒng)資源的值,從數(shù)據(jù)庫中找到ETL服務器當前執(zhí)行的ETL任務,獲得其消耗系統(tǒng)資源的值,并與第一預設值進行比較,如果低于第一預設值,則判定ETL服務器當前執(zhí)行的 ETL任務為預定任務,即已滿足預設的數(shù)據(jù)倉庫的查詢處理條件。第二種預設的數(shù)據(jù)倉庫的查詢處理條件為ETL服務器或者數(shù)據(jù)倉庫服務器的中央處理器(Central Processing Unit,簡稱為CPU)或者內(nèi)存或者輸入輸出(Input/ Output,簡稱為1/0)接口的占用率低于第二預設值。那么步驟101具體可以包括通過 ETL服務器(或者數(shù)據(jù)倉庫服務器)的接口應用程序編程接口(Application Programming hterface,簡稱為API),獲得ETL服務器(或者數(shù)據(jù)倉庫服務器)的CPU、內(nèi)存或者1/0接口的使用情況,當ETL服務器(或者數(shù)據(jù)倉庫服務器)的CPU、內(nèi)存或者1/0接口的占用率低于第二預設值時,則判定已滿足預設的數(shù)據(jù)倉庫的查詢處理條件。第三種預設的數(shù)據(jù)倉庫的查詢處理條件為數(shù)據(jù)倉庫服務器的任務序列中的預定任務被觸發(fā)執(zhí)行。該預定任務在任務序列中的位置處于所有重要任務之后,當所有重要任務執(zhí)行完畢之后被自動觸發(fā)執(zhí)行該預定任務,該預定任務執(zhí)行完畢后的結(jié)果是修改數(shù)據(jù)庫中ETL_DATE表的字段數(shù)值,同時觸發(fā)當天其任務序列下游非重要任務開始執(zhí)行。那么步驟101具體可以包括檢測數(shù)據(jù)庫中ETL_DATE表的字段數(shù)值是否被置位,如果被置位,說明 ETL任務中所有重要任務都已經(jīng)運行完畢,所以已滿足預設的數(shù)據(jù)倉庫的查詢處理條件。步驟102 當檢測到已滿足該預設的數(shù)據(jù)倉庫的查詢處理條件時,數(shù)據(jù)倉庫服務器對非即時需求的查詢進行處理。其中,對非即時需求的查詢進行處理可以理解為執(zhí)行一條非即時查詢?nèi)蝿?。?zhí)行完成后,重新執(zhí)行步驟101,直至全部非即時需求查詢?nèi)蝿斩紙?zhí)行完畢。進一步的,在上述實施例的基礎上,在步驟101之前,該方法還可以包括如下步驟
步驟100 在數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫中創(chuàng)建任務序列表,將所有非即時需求的查詢語句更新到任務序列表中;其中,任務序列表用于存儲查詢語句的任務序列順序??梢栽谌蝿招蛄斜碇型ㄟ^置標志位的方式對查詢語句的任務類型屬性進行標識。即不同查詢語句具有不同的任務類型屬性,標志位是為了區(qū)分任務類型屬性的,比如執(zhí)行一次、每天執(zhí)行、每周執(zhí)行、執(zhí)行多次寸。進一步的,在上述實施例的基礎上,在步驟102之后,該方法還可以包括如下步驟步驟103 將處理結(jié)果生成結(jié)果文件,上傳至應用服務器,并將結(jié)果文件的文件名及存儲路徑存入數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫中。這里優(yōu)選生成TXT格式的結(jié)果文件,其他文件格式如word、excel等也是可以。作為應用服務器的一部分,結(jié)果文件可以上傳至指定的FTP服務器中。用戶可以通過頁面程序檢索數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫,得知自己所需要執(zhí)行的任務是否已執(zhí)行完畢,并獲得該文件的下載地址。本發(fā)明實施例提供了一種數(shù)據(jù)倉庫的查詢處理方法,通過對預設的處理條件進行檢測,當檢測到滿足條件時,才對非即時需求的查詢進行處理。盡可能利用了系統(tǒng)的空閑時間執(zhí)行非即時需求查詢?nèi)蝿?,有效減輕了數(shù)據(jù)倉庫在執(zhí)行ETL時系統(tǒng)查詢的資源壓力。圖3為本發(fā)明一個實施例提供的數(shù)據(jù)倉庫的查詢處理裝置結(jié)構(gòu)示意圖,該裝置可以是數(shù)據(jù)倉庫服務器,也可以是獨立于數(shù)據(jù)倉庫服務器的其他實體設備,此處不做贅述。如圖3所示,該裝置包括檢測模塊301和處理模塊302。其中,檢測模塊301用于對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測;處理模塊302用于當檢測模塊301檢測到已滿足預設的數(shù)據(jù)倉庫的查詢處理條件時,對非即時需求的查詢進行處理。一種實施方式下,該預設的數(shù)據(jù)倉庫的查詢處理條件為ETL服務器當前執(zhí)行的 ETL任務為預定任務,該預定任務為消耗系統(tǒng)資源低于第一預設值的任務。相應的,檢測模塊301用于檢索數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫,在數(shù)據(jù)庫中獲得該ETL服務器當前執(zhí)行的ETL 任務及其消耗系統(tǒng)資源的值,判斷該ETL任務消耗系統(tǒng)資源的值是否低于第一預設值,如果低于第一預設值,則說明已滿足預設的數(shù)據(jù)倉庫的查詢處理條件。另一種實施方式下,該預設的數(shù)據(jù)倉庫的查詢處理條件為ETL服務器或者數(shù)據(jù)倉庫服務器的CPU或者內(nèi)存或者I/O接口的占用率低于第二預設值。相應的,檢測模塊301 用于通過檢測ETL服務器或者數(shù)據(jù)倉庫服務器的API接口獲得ETL服務器或者數(shù)據(jù)倉庫服務器的CPU或者內(nèi)存或者I/O接口的占用率,如果該占用率低于第二預設值,則說明已滿足預設的數(shù)據(jù)倉庫的查詢處理條件。再一種實施方式下,該預設的數(shù)據(jù)倉庫的查詢處理條件為數(shù)據(jù)倉庫服務器的任務序列中的預定任務被觸發(fā)執(zhí)行,并修改數(shù)據(jù)庫中的預定標志位;相應的,該檢測模塊301 用于檢測預定標志位是否已置位;如果已置位,則說明已滿足預設的數(shù)據(jù)倉庫的查詢處理條件。在上述實施方式的基礎上,該裝置進一步可以包括更新模塊,該更新模塊用于在數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫中創(chuàng)建任務序列表,將所有非即時需求的查詢語句更新到任務序列表中。
在上述實施方式的基礎上,該裝置進一步可以包括保存模塊,該保存模塊用于將處理結(jié)果生成結(jié)果文件,上傳至應用服務器,并將該結(jié)果文件的文件名及存儲路徑存入到數(shù)據(jù)庫中。本發(fā)明實施例提供了一種數(shù)據(jù)倉庫的查詢處理裝置,通過對預設的處理條件進行檢測,當檢測到滿足條件時,才對非即時需求的查詢進行處理。盡可能利用了系統(tǒng)的空閑時間執(zhí)行非即時需求查詢?nèi)蝿眨行p輕了數(shù)據(jù)倉庫在執(zhí)行ETL時系統(tǒng)查詢的資源壓力。本領域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術(shù)人員應當理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種數(shù)據(jù)倉庫的查詢處理方法,其特征在于,包括 對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測;當檢測到已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件時,對非即時需求的查詢進行處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預設的數(shù)據(jù)倉庫的查詢處理條件為 提取、轉(zhuǎn)換和加載ETL服務器當前執(zhí)行的ETL任務為預定任務,所述預定任務為消耗系統(tǒng)資源低于第一預設值的任務;相應的,所述對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測包括 檢索數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫,在所述數(shù)據(jù)庫中獲得所述ETL服務器當前執(zhí)行的ETL 任務及其消耗系統(tǒng)資源的值,判斷所述消耗系統(tǒng)資源的值是否低于第一預設值; 如果是,則已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預設的數(shù)據(jù)倉庫的查詢處理條件為 提取、轉(zhuǎn)換和加載ETL服務器或者數(shù)據(jù)倉庫服務器的中央處理器CPU或內(nèi)存或輸入輸出I/ 0接口的占用率低于第二預設值;相應的,所述對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測包括 通過檢測ETL服務器或者數(shù)據(jù)倉庫服務器的應用程序編程接口 API獲得所述ETL服務器或數(shù)據(jù)倉庫服務器的CPU或內(nèi)存或I/O接口的占用率;如果所述占用率低于所述第二預設值,則已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預設的數(shù)據(jù)倉庫的查詢處理條件為 數(shù)據(jù)倉庫服務器的任務序列中的預定任務被觸發(fā)執(zhí)行,并修改所述數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫中的預定標志位;相應的,所述對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測包括 檢測所述預定標志位是否已置位; 如果是,則已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件。
5.根據(jù)權(quán)利要求1至4中任一項所述的方法,其特征在于,所述對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測之前,所述方法還包括在數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫中創(chuàng)建任務序列表,將所有非即時需求的查詢語句更新到所述任務序列表中。
6.根據(jù)權(quán)利要求1至4中任一項所述的方法,所述對非即時需求的查詢進行處理之后, 所述方法還包括將處理結(jié)果生成為結(jié)果文件,上傳至應用服務器,并將所述結(jié)果文件的文件名及存儲路徑存入到所述數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫中。
7.一種數(shù)據(jù)倉庫的查詢處理裝置,其特征在于,包括檢測模塊,用于對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測; 處理模塊,用于當所述檢測模塊檢測到已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件時,對非即時需求的查詢進行處理。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述預設的數(shù)據(jù)倉庫的查詢處理條件為 提取、轉(zhuǎn)換和加載ETL服務器當前執(zhí)行的ETL任務為預定任務,所述預定任務為消耗系統(tǒng)資源低于第一預設值的任務;相應的,所述檢測模塊用于檢索數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫,在所述數(shù)據(jù)庫中獲得所述 ETL服務器當前執(zhí)行的ETL任務及其消耗系統(tǒng)資源的值,判斷所述消耗系統(tǒng)資源的值是否低于第一預設值;如果是,則已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述預設的數(shù)據(jù)倉庫的查詢處理條件為 提取、轉(zhuǎn)換和加載ETL服務器或者數(shù)據(jù)倉庫服務器的中央處理器CPU或內(nèi)存或輸入輸出I/ 0接口的占用率低于第二預設值;相應的,所述檢測模塊用于通過檢測ETL服務器或者數(shù)據(jù)倉庫服務器的應用程序編程接口 API獲得所述ETL服務器或數(shù)據(jù)倉庫服務器的CPU或內(nèi)存或I/O接口的占用率; 如果所述占用率低于所述第二預設值,則已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述預設的數(shù)據(jù)倉庫的查詢處理條件為數(shù)據(jù)倉庫服務器的任務序列中的預定任務被觸發(fā)執(zhí)行,并修改數(shù)據(jù)庫中的預定標志位;相應的,所述檢測模塊用于檢測所述預定標志位是否已置位; 如果是,則已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件。
11.根據(jù)權(quán)利要求7至10中任一項所述的裝置,其特征在于,還包括更新模塊,用于在數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫中創(chuàng)建任務序列表,將所有非即時需求的查詢語句更新到所述任務序列表中。
12.根據(jù)權(quán)利要求7至10中任一項所述的裝置,其特征在于,還包括保存模塊,用于將處理結(jié)果生成為結(jié)果文件,上傳至應用服務器,并將所述結(jié)果文件的文件名及存儲路徑存入到所述數(shù)據(jù)倉庫服務器的數(shù)據(jù)庫中。
全文摘要
本發(fā)明提供一種數(shù)據(jù)倉庫的查詢處理方法及裝置。方法包括對預設的數(shù)據(jù)倉庫的查詢處理條件進行檢測;當檢測到已滿足所述預設的數(shù)據(jù)倉庫的查詢處理條件時,對非即時需求的查詢進行處理。裝置包括檢測模塊和處理模塊。本發(fā)明實施例提供的方案,有效解決現(xiàn)有技術(shù)中數(shù)據(jù)倉庫在ETL過程中無法快速執(zhí)行其他查詢的問題,實現(xiàn)查詢處理的動態(tài)優(yōu)化。
文檔編號G06F17/30GK102270235SQ20111021818
公開日2011年12月7日 申請日期2011年8月1日 優(yōu)先權(quán)日2011年8月1日
發(fā)明者張曉勇, 朱江, 李凡, 李炅宇, 趙俊 申請人:中國民生銀行股份有限公司