亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)查詢方法和裝置制造方法

文檔序號:6509702閱讀:150來源:國知局
數(shù)據(jù)查詢方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)查詢方法和裝置。其中,該方法包括:獲取用于在數(shù)據(jù)表中查詢滿足預(yù)設(shè)查詢條件的目標(biāo)數(shù)據(jù)記錄的查詢指令;根據(jù)預(yù)設(shè)查詢條件在行存儲文件和列存儲文件中判斷出查詢成本較低的一個作為查詢對象,其中,在行存儲文件中數(shù)據(jù)表中的數(shù)據(jù)記錄按行保存,在列存儲文件中數(shù)據(jù)表中的數(shù)據(jù)記錄按列或列組保存;在判斷出的查詢對象中查詢目標(biāo)數(shù)據(jù)記錄,并將查詢出的目標(biāo)數(shù)據(jù)記錄進(jìn)行返回。本發(fā)明解決了現(xiàn)有的數(shù)據(jù)查詢方法的查詢效率較低的技術(shù)問題,達(dá)到了提高數(shù)據(jù)查詢效率的技術(shù)效果。
【專利說明】數(shù)據(jù)查詢方法和裝置

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)通信領(lǐng)域,具體而言,涉及一種數(shù)據(jù)查詢方法和裝置。

【背景技術(shù)】
[0002] 在互聯(lián)網(wǎng)通信領(lǐng)域中,數(shù)據(jù)倉庫是決策支持系統(tǒng)和聯(lián)機(jī)分析應(yīng)用數(shù)據(jù)源的結(jié)構(gòu)化 數(shù)據(jù)環(huán)境。數(shù)據(jù)倉庫研究和解決從數(shù)據(jù)庫中獲取信息的問題,是在數(shù)據(jù)庫已經(jīng)大量存在的 情況下,為了進(jìn)一步挖掘數(shù)據(jù)資源、為了決策需要而產(chǎn)生的?;贛apReduce的分布式數(shù)據(jù) 倉庫,在超大規(guī)模數(shù)據(jù)分析中扮演了重要角色,對于典型的互聯(lián)網(wǎng)服務(wù)供應(yīng)商,這些分析有 助于它們快速理解動態(tài)的用戶行為及變化的用戶需求。
[0003] 分布式數(shù)據(jù)倉庫涉及到多個系統(tǒng),特別是在成百上千服務(wù)器上部署的數(shù)據(jù)倉庫, 任何一個組件都有可能失效,硬件錯誤是常態(tài),因此錯誤檢測和快速、自動的恢復(fù)是分布式 數(shù)據(jù)倉庫的核心架構(gòu)目標(biāo)之一??紤]到系統(tǒng)容錯,一般使用數(shù)據(jù)復(fù)制來保證數(shù)據(jù)的可用,如 使用硬盤鏡像(Disk Mirroring),將數(shù)據(jù)同時寫入二個硬盤,二個硬盤上的數(shù)據(jù)完全相同, 因此一個硬盤故障時,另一個硬盤可提供數(shù)據(jù)?;贖adoop分布式文件系統(tǒng)HDFS(Had 〇〇p Distributed File System)的分布式數(shù)據(jù)倉庫HIVE,則依賴于底層的HDFS文件系統(tǒng)的數(shù) 據(jù)復(fù)制,來保證數(shù)據(jù)的高可用性。HDFS文件系統(tǒng)對文件進(jìn)行數(shù)據(jù)塊(或者說文件帶區(qū))劃分, 并通過對數(shù)據(jù)塊做數(shù)據(jù)復(fù)制和數(shù)據(jù)一致性檢查達(dá)到容錯的效果,此外,數(shù)據(jù)的帶區(qū)化,也是 并行訪問數(shù)據(jù)的基礎(chǔ)。
[0004] 另一方面,數(shù)據(jù)存儲結(jié)構(gòu)是影響數(shù)據(jù)倉庫性能的關(guān)鍵因素之一。數(shù)據(jù)倉庫中為了 快速的查詢處理和適應(yīng)不同的查詢負(fù)載,一般會對數(shù)據(jù)使用不同的存儲結(jié)構(gòu),在分布式數(shù) 據(jù)倉庫系統(tǒng)中,多種結(jié)構(gòu)存儲得到了廣泛的研究和應(yīng)用。然而,在現(xiàn)有的針對數(shù)據(jù)倉庫的數(shù) 據(jù)查詢方法中,這些存儲結(jié)構(gòu)各自存在不同的缺陷,從而在面臨多樣化的查詢?nèi)蝿?wù)時,時而 存在數(shù)據(jù)查詢效率較低、難以滿足大規(guī)模數(shù)據(jù)分析的要求的問題。
[0005] 針對上述的問題,目前尚未提出有效的解決方案。


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

[0006] 本發(fā)明實施例提供了一種數(shù)據(jù)查詢方法和裝置,以至少解決現(xiàn)有的數(shù)據(jù)查詢方法 的查詢效率較低的技術(shù)問題。
[0007] 根據(jù)本發(fā)明實施例的一個方面,提供了一種數(shù)據(jù)查詢方法,包括:獲取用于在數(shù)據(jù) 表中查詢滿足預(yù)設(shè)查詢條件的目標(biāo)數(shù)據(jù)記錄的查詢指令;根據(jù)上述預(yù)設(shè)查詢條件在行存儲 文件和列存儲文件中判斷出查詢成本較低的一個作為查詢對象,其中,在上述行存儲文件 中上述數(shù)據(jù)表中的數(shù)據(jù)記錄按行保存,在上述列存儲文件中上述數(shù)據(jù)表中的數(shù)據(jù)記錄按列 或列組保存;在判斷出的上述查詢對象中查詢上述目標(biāo)數(shù)據(jù)記錄,并將查詢出的上述目標(biāo) 數(shù)據(jù)記錄進(jìn)行返回。
[0008] 根據(jù)本發(fā)明實施例的另一方面,還提供了一種數(shù)據(jù)查詢裝置,包括:獲取單元,用 于獲取用于在數(shù)據(jù)表中查詢滿足預(yù)設(shè)查詢條件的目標(biāo)數(shù)據(jù)記錄的查詢指令;判斷單元,用 于根據(jù)上述預(yù)設(shè)查詢條件在行存儲文件和列存儲文件中判斷出查詢成本較低的一個作為 查詢對象,其中,在上述行存儲文件中上述數(shù)據(jù)表中的數(shù)據(jù)記錄按行保存,在上述列存儲文 件中上述數(shù)據(jù)表中的數(shù)據(jù)記錄按列或列組保存;查詢單元,用于在判斷出的上述查詢對象 中查詢上述目標(biāo)數(shù)據(jù)記錄,并將查詢出的上述目標(biāo)數(shù)據(jù)記錄進(jìn)行返回。
[0009] 在本發(fā)明實施例中,區(qū)別于固定地在行存儲文件或者固定地在列存儲文件中執(zhí)行 查詢?nèi)蝿?wù),而是通過在行存儲文件和列存儲文件之間進(jìn)行判斷以選取合適的查詢對象,并 在判斷出的查詢對象中查找滿足查詢指令中攜帶的預(yù)設(shè)查詢條件的數(shù)據(jù)記錄,從而在一定 程度上規(guī)避了行存儲結(jié)構(gòu)和列存儲結(jié)構(gòu)各自的缺點,達(dá)到了提高查詢效率的技術(shù)效果,進(jìn) 而解決了現(xiàn)有的數(shù)據(jù)查詢方法的查詢效率較低的技術(shù)問題。

【專利附圖】

【附圖說明】
[0010] 此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0011] 圖1是根據(jù)本發(fā)明實施例的一種可選的數(shù)據(jù)查詢方法的示意圖;
[0012] 圖2是根據(jù)本發(fā)明實施例的另一種可選的數(shù)據(jù)查詢方法的示意圖;
[0013] 圖3是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢方法的示意圖;
[0014] 圖4 (a)是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢方法的示意圖;
[0015] 圖4 (b)是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢方法的示意圖;
[0016] 圖5是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢方法的示意圖;
[0017] 圖6是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢方法的示意圖;
[0018] 圖7是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢方法的示意圖;
[0019] 圖8是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢方法的示意圖;
[0020] 圖9是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢方法的示意圖;
[0021] 圖10是根據(jù)本發(fā)明實施例的一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0022] 圖11是根據(jù)本發(fā)明實施例的另一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0023] 圖12是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0024] 圖13 (a)是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0025] 圖13 (b)是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0026] 圖14是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0027] 圖15是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0028] 圖16是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0029] 圖17是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0030] 圖18是根據(jù)本發(fā)明實施例的又一種可選的數(shù)據(jù)查詢裝置的示意圖;
[0031] 圖19是根據(jù)本發(fā)明實施例的一種可選的HDFS的示意圖;
[0032] 圖20是根據(jù)本發(fā)明實施例的一種可選的行存儲文件及行存儲結(jié)構(gòu)的示意圖;
[0033] 圖21是根據(jù)本發(fā)明實施例的一種可選的列存儲文件及列存儲結(jié)構(gòu)的示意圖。

【具體實施方式】
[0034] 為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的 附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是 本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù) 人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范 圍。
[0035] 需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語"第一"、"第 二"等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用 的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或 描述的那些以外的順序?qū)嵤4送?,術(shù)語"包括"和"具有"以及他們的任何變形,意圖在于 覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限 于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn) 品或設(shè)備固有的其它步驟或單元。
[0036] 實施例1
[0037] 根據(jù)本發(fā)明實施例,提供了一種數(shù)據(jù)查詢方法,如圖1所示,該方法包括:
[0038] S102 :獲取用于在數(shù)據(jù)表中查詢滿足預(yù)設(shè)查詢條件的目標(biāo)數(shù)據(jù)記錄的查詢指令;
[0039] S104 :根據(jù)預(yù)設(shè)查詢條件在行存儲文件和列存儲文件中判斷出查詢成本較低的一 個作為查詢對象,其中,在行存儲文件中數(shù)據(jù)表中的數(shù)據(jù)記錄按行保存,在列存儲文件中數(shù) 據(jù)表中的數(shù)據(jù)記錄按列或列組保存;
[0040] S106 :在判斷出的查詢對象中查詢目標(biāo)數(shù)據(jù)記錄,并將查詢出的目標(biāo)數(shù)據(jù)記錄進(jìn) 行返回。
[0041] 應(yīng)當(dāng)明確的是,本發(fā)明所要解決的技術(shù)問題之一是提供一種方法,對查詢指令進(jìn) 行響應(yīng),具體地,可以根據(jù)該方法在數(shù)據(jù)表中查詢滿足查詢指令所攜帶的預(yù)設(shè)查詢條件的 目標(biāo)數(shù)據(jù)記錄,并返回查詢到的該目標(biāo)數(shù)據(jù)記錄。從而,根據(jù)本發(fā)明實施例提供的數(shù)據(jù)查詢 方法,在步驟S102中,可以獲取攜帶有上述預(yù)設(shè)查詢條件的查詢指令,并可以在步驟S106 中將查詢到的目標(biāo)數(shù)據(jù)記錄進(jìn)行返回。
[0042] 在本發(fā)明實施例中,一般而言,上述查詢指令可以表現(xiàn)為結(jié)構(gòu)化查詢語言SQL (Structured Query Language)命令,例如SELECT命令等。然而這并不意味著對本發(fā)明構(gòu) 成了限定,例如,在本發(fā)明的一些實施例中,該查詢指令也可以通過關(guān)系數(shù)據(jù)庫的其他操作 語言、非關(guān)系型數(shù)據(jù)庫的操作語言或者其他可行的計算機(jī)語言或信息傳輸格式來實現(xiàn),t匕 如該查詢指令也可以表現(xiàn)為超文本傳輸協(xié)議http (Hypertext Transfer Protocol)請求, 例如應(yīng)用GET方法的數(shù)據(jù)請求等。
[0043] 在另一方面,查詢指令中攜帶的查詢條件也可以有多種具體表現(xiàn)形式,且根據(jù)查 詢指令的不同,其表現(xiàn)形式也各有不同。例如,一條最基本的SQL查詢命令可以表現(xiàn)為 "SELECT ID,Name FROM Student WHERE ID=5",用于在數(shù)據(jù)表 Student 中查詢 ID 為 5 的 學(xué)生的編號和姓名信息,從而該查詢指令中的查詢條件可以包括兩部分,其中一部分為在 SELECT標(biāo)識符之后出現(xiàn)的"ID"和"Name",用于表示查詢出的數(shù)據(jù)記錄的屬性,另一部分為 WHERE標(biāo)識符之后出現(xiàn)的" ID=5 ",用于表示這些數(shù)據(jù)記錄所要滿足的條件。
[0044] 從以上描述可以看出,在本申請實施例中,查詢命令中所攜帶的查詢條件可以不 僅包括一個,且該查詢條件也可以不僅限于數(shù)值化的關(guān)系式,而查詢出的數(shù)據(jù)記錄應(yīng)滿足 該查詢指令中的所有查詢條件。
[0045] 當(dāng)然,以上只是一種示例,本發(fā)明對于查詢條件的具體形式不作任何限定,例如, 在本發(fā)明的一些實施例中,也可以根據(jù)行地址和/或列地址對目標(biāo)數(shù)據(jù)記錄進(jìn)行定位,從 而該查詢指令對應(yīng)的查詢條件即可以為行地址和/或列地址的相關(guān)信息。
[0046] 值得注意的是,在本發(fā)明實施例中,通過步驟S102獲取的查詢指令可以表示服務(wù) 器接收的客戶端發(fā)送的消息,也可以來自于在服務(wù)器本地運行的進(jìn)程,特別地,還可以表示 對接收到的消息進(jìn)行解析所得到的查詢指令,等。上述情形并不影響本發(fā)明技術(shù)方案的實 施,本發(fā)明對此也不作任何限定。
[0047] 在另一方面,通過上述實施例所給出的對于查詢指令的響應(yīng)方式,在現(xiàn)有技術(shù)中 也還有多種可行的實施方式,本發(fā)明在此不作累述。通過上述方式,可以實現(xiàn)對查詢指令的 準(zhǔn)確響應(yīng),而在實現(xiàn)這一效果的基礎(chǔ)上,本發(fā)明所要進(jìn)一步達(dá)到的目的是提高響應(yīng)于查詢 指令所進(jìn)行的數(shù)據(jù)查詢的查詢效率,例如,其可以體現(xiàn)為縮短查詢時間或者降低處理成本 等。
[0048] 為達(dá)到這一目的,區(qū)別與現(xiàn)有技術(shù),在根據(jù)本發(fā)明實施例提供的數(shù)據(jù)查詢方法中, 可以在通過步驟S102獲取查詢指令之后、通過步驟S106返回目標(biāo)數(shù)據(jù)記錄之前,對在哪一 種數(shù)據(jù)存儲結(jié)構(gòu)的文件中對目標(biāo)數(shù)據(jù)記錄進(jìn)行查詢進(jìn)行判斷,并進(jìn)一步地面向判斷出的查 詢對象執(zhí)行查詢?nèi)蝿?wù)。
[0049] 具體地,根據(jù)本發(fā)明實施例提供的數(shù)據(jù)查詢方法,在步驟S104中,可以根據(jù)獲取 的查詢指令對應(yīng)的預(yù)設(shè)查詢條件來判斷后續(xù)執(zhí)行的查詢?nèi)蝿?wù)的查詢對象。其中,作為可選 的查詢對象,可以包括行存儲文件和列存儲文件。
[0050] 在本發(fā)明實施例中,提出了行存儲文件和列存儲文件的概念。一般而言,行存儲文 件可以視為按行存儲結(jié)構(gòu)保存的數(shù)據(jù)表,而列存儲文件可以視為按列存儲結(jié)構(gòu)保存的數(shù)據(jù) 表,其中,行存儲結(jié)構(gòu)和列存儲結(jié)構(gòu)可以適用于同一張數(shù)據(jù)表,也即,上述行存儲文件和列 存儲文件所記錄的數(shù)據(jù)記錄的總和可以是一致的,而僅僅表現(xiàn)出存儲結(jié)構(gòu)的不同。
[0051] 下面將結(jié)合表1對行存儲結(jié)構(gòu)和列存儲結(jié)構(gòu)進(jìn)行詳細(xì)闡述。其中,表1用于表示 包含M個屬性和N行數(shù)據(jù)的一張數(shù)據(jù)表T。
[0052] 如表1所示,數(shù)據(jù)表T可以包括M個屬性,或者說M個列=F1, F2, ......,F(xiàn)m,以及N 行數(shù)據(jù)=R1, R2,……,Rn,其中,第i行的第j個屬性,或者說第i行第j列的數(shù)據(jù)記錄為V (i,j),其中,l〈=i〈=N,l〈=j〈=M。
[0053] 表 I
[0054]

【權(quán)利要求】
1. 一種數(shù)據(jù)查詢方法,其特征在于,包括: 獲取用于在數(shù)據(jù)表中查詢滿足預(yù)設(shè)查詢條件的目標(biāo)數(shù)據(jù)記錄的查詢指令; 根據(jù)所述預(yù)設(shè)查詢條件在行存儲文件和列存儲文件中判斷出查詢成本較低的一個作 為查詢對象,其中,在所述行存儲文件中所述數(shù)據(jù)表中的數(shù)據(jù)記錄按行保存,在所述列存儲 文件中所述數(shù)據(jù)表中的數(shù)據(jù)記錄按列或列組保存; 在判斷出的所述查詢對象中查詢所述目標(biāo)數(shù)據(jù)記錄,并將查詢出的所述目標(biāo)數(shù)據(jù)記錄 進(jìn)行返回。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述預(yù)設(shè)查詢條件在行存儲文 件和列存儲文件中判斷出查詢成本較低的一個作為查詢對象包括: 根據(jù)所述預(yù)設(shè)查詢條件獲取行查詢?nèi)蝿?wù)的查詢成本和列查詢?nèi)蝿?wù)的查詢成本,其中, 所述行查詢?nèi)蝿?wù)表示在所述行存儲文件中查找所述目標(biāo)數(shù)據(jù)記錄的查詢?nèi)蝿?wù),所述列查詢 任務(wù)表示在所述列存儲文件中查找所述目標(biāo)數(shù)據(jù)記錄的查詢?nèi)蝿?wù); 在獲取的所述行查詢?nèi)蝿?wù)的查詢成本和所述列查詢?nèi)蝿?wù)的查詢成本之間進(jìn)行比較,若 所述行查詢?nèi)蝿?wù)的查詢成本低于所述列查詢?nèi)蝿?wù)的查詢成本,則判斷出所述查詢對象為所 述行存儲文件,若所述行查詢?nèi)蝿?wù)的查詢成本高于所述列查詢?nèi)蝿?wù)的查詢成本,則判斷出 所述查詢對象為所述列存儲文件。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述預(yù)設(shè)查詢條件獲取行查詢 任務(wù)的查詢成本和列查詢?nèi)蝿?wù)的查詢成本包括: 根據(jù)行查詢?nèi)蝿?wù)中所需執(zhí)行的所有操作中屬于每一操作類型的操作的個數(shù)以及所述 每一操作類型對應(yīng)的預(yù)置時間開銷獲取所述行查詢?nèi)蝿?wù)的時間成本,并將所述行查詢?nèi)蝿?wù) 的時間成本作為所述行查詢?nèi)蝿?wù)的查詢成本; 根據(jù)列查詢?nèi)蝿?wù)中所需執(zhí)行的所有操作中屬于每一操作類型的操作的個數(shù)以及所述 每一操作類型對應(yīng)的預(yù)置時間開銷獲取所述列查詢?nèi)蝿?wù)的時間成本,并將所述列查詢?nèi)蝿?wù) 的時間成本作為所述列查詢?nèi)蝿?wù)的查詢成本。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述預(yù)設(shè)查詢條件獲取行查詢 任務(wù)的查詢成本和列查詢?nèi)蝿?wù)的查詢成本包括: 根據(jù)所述行查詢?nèi)蝿?wù)中所需調(diào)用的所有線程中屬于每一線程類型的線程的個數(shù)以及 所述每一線程類型對應(yīng)的預(yù)置系統(tǒng)開銷獲取所述行查詢?nèi)蝿?wù)的執(zhí)行成本,并將所述行查詢 任務(wù)的執(zhí)行成本作為所述列查詢?nèi)蝿?wù)的查詢成本; 根據(jù)所述列查詢?nèi)蝿?wù)中所需調(diào)用的所有線程中屬于每一線程類型的線程的個數(shù)以及 所述每一線程類型對應(yīng)的預(yù)置系統(tǒng)開銷獲取所述列查詢?nèi)蝿?wù)的執(zhí)行成本,并將所述列查詢 任務(wù)的執(zhí)行成本作為所述列查詢?nèi)蝿?wù)的查詢成本。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述預(yù)設(shè)查詢條件在行存儲文 件和列存儲文件中判斷出查詢成本較低的一個作為查詢對象包括: 若所述預(yù)設(shè)查詢條件中包括的所述數(shù)據(jù)表中的屬性的個數(shù)大于第一閾值,則判斷出所 述查詢對象為所述行存儲文件; 若所述預(yù)設(shè)查詢條件中包括的所述數(shù)據(jù)表中的屬性的個數(shù)小于第二閾值,則判斷出所 述查詢對象為所述列存儲文件。
6. 根據(jù)權(quán)利要求1至5中任一項所述的方法,其特征在于,所述行存儲文件和/或所述 列存儲文件被劃分為多個數(shù)據(jù)塊,其中,所述多個數(shù)據(jù)塊存儲在不同的數(shù)據(jù)節(jié)點上,所述數(shù) 據(jù)節(jié)點中的每一個存有一個或多個所述數(shù)據(jù)塊,其中,所述在判斷出的所述查詢對象中查 詢所述目標(biāo)數(shù)據(jù)記錄包括: 在預(yù)存映射表中查找滿足所述預(yù)設(shè)查詢條件的數(shù)據(jù)塊以及滿足所述預(yù)存查詢條件的 數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點; 訪問查找出的所述數(shù)據(jù)節(jié)點,并在查找出的所述數(shù)據(jù)塊中查詢所述目標(biāo)數(shù)據(jù)記錄。
7. 根據(jù)權(quán)利要求1至5中任一項所述的方法,其特征在于,還包括: 在接收到所述行存儲文件的第一報錯信息時,判斷是否存在所述行存儲文件的備份文 件,若不存在,則根據(jù)所述列存儲文件對所述行存儲文件進(jìn)行恢復(fù)操作;和/或, 在接收到所述列存儲文件的第二報錯信息時,判斷是否存在所述列存儲文件的備份文 件,若不存在,則根據(jù)所述行存儲文件對所述列存儲文件進(jìn)行恢復(fù)操作。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于, 所述根據(jù)所述列存儲文件對所述行存儲文件進(jìn)行恢復(fù)操作包括:按照所述行存儲文件 中所述第一報錯信息所指示的出錯行數(shù)據(jù)塊的存儲格式從所述列存儲文件中獲取與所述 出錯行數(shù)據(jù)塊對應(yīng)的正常行數(shù)據(jù)塊,并在所述行存儲文件中將所述出錯行數(shù)據(jù)塊替換為獲 取到的所述正常行數(shù)據(jù)塊; 所述根據(jù)所述行存儲文件對所述列存儲文件進(jìn)行恢復(fù)操作包括:按照所述列存儲文件 中所述第二報錯信息所指示的出錯列數(shù)據(jù)塊的存儲格式從所述行存儲文件中獲取與所述 出錯列數(shù)據(jù)塊對應(yīng)的正常列數(shù)據(jù)形成的數(shù)據(jù)塊,并在所述列存儲文件中將所述出錯列數(shù)據(jù) 塊替換為獲取到的所述正常列數(shù)據(jù)形成的數(shù)據(jù)塊。
9. 根據(jù)權(quán)利要求7所述的方法,其特征在于, 在接收到所述第一報錯信息時,若判斷出存在所述行存儲文件的備份文件,則從所述 行存儲文件的備份文件中獲取與所述行存儲文件中所述第一報錯信息所指示的出錯行數(shù) 據(jù)塊對應(yīng)的正常行數(shù)據(jù)塊,并在所述行存儲文件中將所述出錯行數(shù)據(jù)塊替換為獲取到的所 述正常行數(shù)據(jù)塊; 在接收到所述第二報錯信息時,若判斷出存在所述列存儲文件的備份文件,則從所述 列存儲文件的備份文件中獲取與所述列存儲文件中所述第二報錯信息所指示的出錯列數(shù) 據(jù)塊對應(yīng)的正常列數(shù)據(jù)形成的數(shù)據(jù)塊,并在所述列存儲文件中將所述出錯列數(shù)據(jù)塊替換為 獲取到的所述正常列數(shù)據(jù)形成的數(shù)據(jù)塊。
10. 根據(jù)權(quán)利要求1至5中任一項所述的方法,其特征在于,在所述獲取用于在數(shù)據(jù)表 中查詢滿足預(yù)設(shè)查詢條件的目標(biāo)數(shù)據(jù)記錄的查詢指令之前,還包括: 接收向所述數(shù)據(jù)表中導(dǎo)入所述數(shù)據(jù)記錄的導(dǎo)入指令; 根據(jù)按行存儲格式將所述數(shù)據(jù)記錄導(dǎo)入用于存儲所述數(shù)據(jù)表的所述行存儲文件,并根 據(jù)按列存儲格式或按列組存儲格式將所述數(shù)據(jù)記錄導(dǎo)入用于存儲所述數(shù)據(jù)表的所述列存 儲文件。
11. 一種數(shù)據(jù)查詢裝置,其特征在于,包括: 獲取單元,用于獲取用于在數(shù)據(jù)表中查詢滿足預(yù)設(shè)查詢條件的目標(biāo)數(shù)據(jù)記錄的查詢指 令; 判斷單元,用于根據(jù)所述預(yù)設(shè)查詢條件在行存儲文件和列存儲文件中判斷出查詢成本 較低的一個作為查詢對象,其中,在所述行存儲文件中所述數(shù)據(jù)表中的數(shù)據(jù)記錄按行保存, 在所述列存儲文件中所述數(shù)據(jù)表中的數(shù)據(jù)記錄按列或列組保存; 查詢單元,用于在判斷出的所述查詢對象中查詢所述目標(biāo)數(shù)據(jù)記錄,并將查詢出的所 述目標(biāo)數(shù)據(jù)記錄進(jìn)行返回。
12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述判斷單元包括: 獲取模塊,用于根據(jù)所述預(yù)設(shè)查詢條件獲取行查詢?nèi)蝿?wù)的查詢成本和列查詢?nèi)蝿?wù)的查 詢成本,其中,所述行查詢?nèi)蝿?wù)表示在所述行存儲文件中查找所述目標(biāo)數(shù)據(jù)記錄的查詢?nèi)?務(wù),所述列查詢?nèi)蝿?wù)表示在所述列存儲文件中查找所述目標(biāo)數(shù)據(jù)記錄的查詢?nèi)蝿?wù); 第一判斷模塊,用于在獲取的所述行查詢?nèi)蝿?wù)的查詢成本和所述列查詢?nèi)蝿?wù)的查詢成 本之間進(jìn)行比較,若所述行查詢?nèi)蝿?wù)的查詢成本低于所述列查詢?nèi)蝿?wù)的查詢成本,則判斷 出所述查詢對象為所述行存儲文件,若所述行查詢?nèi)蝿?wù)的查詢成本高于所述列查詢?nèi)蝿?wù)的 查詢成本,則判斷出所述查詢對象為所述列存儲文件。
13. 根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述獲取模塊包括: 第一獲取子模塊,用于根據(jù)行查詢?nèi)蝿?wù)中所需執(zhí)行的所有操作中屬于每一操作類型的 操作的個數(shù)以及所述每一操作類型對應(yīng)的預(yù)置時間開銷獲取所述行查詢?nèi)蝿?wù)的時間成本, 并將所述行查詢?nèi)蝿?wù)的時間成本作為所述行查詢?nèi)蝿?wù)的查詢成本; 第二獲取子模塊,用于根據(jù)列查詢?nèi)蝿?wù)中所需執(zhí)行的所有操作中屬于每一操作類型的 操作的個數(shù)以及所述每一操作類型對應(yīng)的預(yù)置時間開銷獲取所述列查詢?nèi)蝿?wù)的時間成本, 并將所述列查詢?nèi)蝿?wù)的時間成本作為所述列查詢?nèi)蝿?wù)的查詢成本。
14. 根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述獲取模塊包括: 第三獲取子模塊,用于根據(jù)所述行查詢?nèi)蝿?wù)中所需調(diào)用的所有線程中屬于每一線程類 型的線程的個數(shù)以及所述每一線程類型對應(yīng)的預(yù)置系統(tǒng)開銷獲取所述行查詢?nèi)蝿?wù)的執(zhí)行 成本,并將所述行查詢?nèi)蝿?wù)的執(zhí)行成本作為所述列查詢?nèi)蝿?wù)的查詢成本; 第四獲取子模塊,用于根據(jù)所述列查詢?nèi)蝿?wù)中所需調(diào)用的所有線程中屬于每一線程類 型的線程的個數(shù)以及所述每一線程類型對應(yīng)的預(yù)置系統(tǒng)開銷獲取所述列查詢?nèi)蝿?wù)的執(zhí)行 成本,并將所述列查詢?nèi)蝿?wù)的執(zhí)行成本作為所述列查詢?nèi)蝿?wù)的查詢成本。
15. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述判斷單元包括: 第二判斷模塊,用于在所述預(yù)設(shè)查詢條件中包括的所述數(shù)據(jù)表中的屬性的個數(shù)大于第 一閾值時,判斷出所述查詢對象為所述行存儲文件;在所述預(yù)設(shè)查詢條件中包括的所述數(shù) 據(jù)表中的屬性的個數(shù)小于第二閾值時,判斷出所述查詢對象為所述列存儲文件。
16. 根據(jù)權(quán)利要求11至15中任一項所述的裝置,其特征在于,所述行存儲文件和/或 所述列存儲文件被劃分為多個數(shù)據(jù)塊,其中,所述多個數(shù)據(jù)塊存儲在不同的數(shù)據(jù)節(jié)點上,所 述數(shù)據(jù)節(jié)點中的每一個存有一個或多個所述數(shù)據(jù)塊,其中,所述查詢單元包括: 查找模塊,用于在預(yù)存映射表中查找滿足所述預(yù)設(shè)查詢條件的數(shù)據(jù)塊以及滿足所述預(yù) 存查詢條件的數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點; 訪問模塊,用于訪問查找出的所述數(shù)據(jù)節(jié)點,并在查找出的所述數(shù)據(jù)塊中查詢所述目 標(biāo)數(shù)據(jù)記錄。
17. 根據(jù)權(quán)利要求11至15中任一項所述的裝置,其特征在于,還包括: 第一恢復(fù)單元,用于在接收到所述行存儲文件的第一報錯信息時,判斷是否存在所述 行存儲文件的備份文件,若不存在,則根據(jù)所述列存儲文件對所述行存儲文件進(jìn)行恢復(fù)操 作;和/或, 第二恢復(fù)單元,用于在接收到所述列存儲文件的第二報錯信息時,判斷是否存在所述 列存儲文件的備份文件,若不存在,則根據(jù)所述行存儲文件對所述列存儲文件進(jìn)行恢復(fù)操 作。
18. 根據(jù)權(quán)利要求17所述的裝置,其特征在于, 所述第一恢復(fù)單元包括:第一恢復(fù)模塊,用于按照所述行存儲文件中所述第一報錯信 息所指示的出錯行數(shù)據(jù)塊的存儲格式從所述列存儲文件中獲取與所述出錯行數(shù)據(jù)塊對應(yīng) 的正常行數(shù)據(jù)塊,并在所述行存儲文件中將所述出錯行數(shù)據(jù)塊替換為獲取到的所述正常行 數(shù)據(jù)塊; 所述第二恢復(fù)單元包括:第二恢復(fù)模塊,用于按照所述列存儲文件中所述第二報錯信 息所指示的出錯列數(shù)據(jù)塊的存儲格式從所述行存儲文件中獲取與所述出錯列數(shù)據(jù)塊對應(yīng) 的正常列數(shù)據(jù)形成的數(shù)據(jù)塊,并在所述列存儲文件中將所述出錯列數(shù)據(jù)塊替換為獲取到的 所述正常列數(shù)據(jù)形成的數(shù)據(jù)塊。
19. 根據(jù)權(quán)利要求17所述的裝置,其特征在于, 所述第一恢復(fù)單元包括:第三恢復(fù)模塊,用于在接收到所述第一報錯信息時,若判斷出 存在所述行存儲文件的備份文件,則從所述行存儲文件的備份文件中獲取與所述行存儲文 件中所述第一報錯信息所指示的出錯行數(shù)據(jù)塊對應(yīng)的正常行數(shù)據(jù)塊,并在所述行存儲文件 中將所述出錯行數(shù)據(jù)塊替換為獲取到的所述正常行數(shù)據(jù)塊; 所述第二恢復(fù)單元包括:第四恢復(fù)模塊,用于在接收到所述第二報錯信息時,若判斷出 存在所述列存儲文件的備份文件,則從所述列存儲文件的備份文件中獲取與所述列存儲文 件中所述第二報錯信息所指示的出錯列數(shù)據(jù)塊對應(yīng)的正常列數(shù)據(jù)形成的數(shù)據(jù)塊,并在所述 列存儲文件中將所述出錯列數(shù)據(jù)塊替換為獲取到的所述正常列數(shù)據(jù)形成的數(shù)據(jù)塊。
20. 根據(jù)權(quán)利要求11至15中任一項所述的裝置,其特征在于,還包括: 接收單元,用于在所述獲取用于在數(shù)據(jù)表中查詢滿足預(yù)設(shè)查詢條件的目標(biāo)數(shù)據(jù)記錄的 查詢指令之前,接收向所述數(shù)據(jù)表中導(dǎo)入所述數(shù)據(jù)記錄的導(dǎo)入指令; 導(dǎo)入單元,用于根據(jù)按行存儲格式將所述數(shù)據(jù)記錄導(dǎo)入用于存儲所述數(shù)據(jù)表的所述行 存儲文件,并根據(jù)按列存儲格式或按列組存儲格式將所述數(shù)據(jù)記錄導(dǎo)入用于存儲所述數(shù)據(jù) 表的所述列存儲文件。
【文檔編號】G06F17/30GK104424287SQ201310389717
【公開日】2015年3月18日 申請日期:2013年8月30日 優(yōu)先權(quán)日:2013年8月30日
【發(fā)明者】蔡斌, 李勇, 肖磊, 薛偉, 劉大鵬, 言艷花, 姜磊, 郭偉昭, 胡少鋒, 柳金晶, 張書彬, 黃丕培, 王洋, 徐妙, 羅川江 申請人:深圳市騰訊計算機(jī)系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1