專(zhuān)利名稱(chēng):數(shù)據(jù)查找方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)查找方法及裝置。
技術(shù)背景
BigTable是一種用于存儲(chǔ)結(jié)構(gòu)化/半結(jié)構(gòu)化數(shù)據(jù)的表,對(duì)該表中存儲(chǔ)的數(shù)據(jù)進(jìn)行 查找時(shí),對(duì)行關(guān)鍵字(Rowkey)的選取是很關(guān)鍵的,這將直接關(guān)系到查找效率的高低。
為了實(shí)現(xiàn)對(duì)BigTable的查找,在建立BigTable時(shí),通常選取BigTable的某一列 中的數(shù)據(jù)分別作為該列中的各數(shù)據(jù)所在行的Rowkey,一般地,被選取的該列中各數(shù)據(jù)的取 值不能有重復(fù),以保證Rowkey的唯一性?,F(xiàn)有技術(shù)中的數(shù)據(jù)查找方式是數(shù)據(jù)查找裝置根 據(jù)用戶輸入的數(shù)據(jù)查找條件,確定該條件中包含的、與上述選取的列中的數(shù)據(jù)一致的數(shù)據(jù), 并以該數(shù)據(jù)作為Rowkey,查找該Rowkey所在的行,最終以查找到的行中的數(shù)據(jù)作為查找結(jié) 果,這種查找方式的缺陷在于,當(dāng)數(shù)據(jù)查找條件中不包含上述選取的列中的數(shù)據(jù)時(shí),不得不 采用遍歷查找的方式對(duì)數(shù)據(jù)進(jìn)行查找,從而會(huì)導(dǎo)致查找效率比較低。發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)查找方法及裝置,用以解決采用現(xiàn)有技術(shù)提供的數(shù)據(jù) 查找方式的查找效率比較低的問(wèn)題。
為此,本發(fā)明實(shí)施例采用以下技術(shù)方案
一種數(shù)據(jù)查找方法,包括數(shù)據(jù)查找裝置獲得用戶提供的數(shù)據(jù)查找條件;
根據(jù)所述數(shù)據(jù)查找條件,按照預(yù)設(shè)的行關(guān)鍵字所在范圍的確定方式,確定用戶需 要查找的數(shù)據(jù)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中所在行對(duì)應(yīng)的行關(guān)鍵字所在范圍;所述數(shù)據(jù)查找裝置根據(jù) 所述確定的范圍,從預(yù)先按照預(yù)設(shè)的行關(guān)鍵字確定方式確定的、與數(shù)據(jù)存儲(chǔ)系統(tǒng)中各行數(shù) 據(jù)分別對(duì)應(yīng)的行關(guān)鍵字中,確定處于所述確定的范圍內(nèi)的行關(guān)鍵字;所述數(shù)據(jù)查找裝置根 據(jù)所述確定的行關(guān)鍵字,查找與所述確定的行關(guān)鍵字對(duì)應(yīng)的行中的數(shù)據(jù)。
較佳地,所述預(yù)設(shè)的行關(guān)鍵字的確定方式具體為所述數(shù)據(jù)查找裝置根據(jù)預(yù)設(shè)的 用于將所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的各列中的數(shù)據(jù)映射為數(shù)值的映射函數(shù),分別將所述數(shù)據(jù)存儲(chǔ)系 統(tǒng)中的各數(shù)據(jù)映射為數(shù)值;所述數(shù)據(jù)查找裝置利用所述各數(shù)據(jù)映射的數(shù)值,針對(duì)所述數(shù)據(jù) 存儲(chǔ)系統(tǒng)中的任意一行數(shù)據(jù),按照下述公式,執(zhí)行對(duì)該行數(shù)據(jù)對(duì)應(yīng)的行關(guān)鍵字的計(jì)算
權(quán)利要求
1.一種數(shù)據(jù)查找方法,其特征在于,包括數(shù)據(jù)查找裝置獲得用戶提供的數(shù)據(jù)查找條件;根據(jù)所述數(shù)據(jù)查找條件,按照預(yù)設(shè)的行關(guān)鍵字所在范圍的確定方式,確定用戶需要查 找的數(shù)據(jù)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中所在行對(duì)應(yīng)的行關(guān)鍵字所在范圍;所述數(shù)據(jù)查找裝置根據(jù)所述確定的范圍,從預(yù)先按照預(yù)設(shè)的行關(guān)鍵字確定方式確定 的、與數(shù)據(jù)存儲(chǔ)系統(tǒng)中各行數(shù)據(jù)分別對(duì)應(yīng)的行關(guān)鍵字中,確定處于所述確定的范圍內(nèi)的行 關(guān)鍵字;所述數(shù)據(jù)查找裝置根據(jù)所述確定的行關(guān)鍵字,查找與所述確定的行關(guān)鍵字對(duì)應(yīng)的行中 的數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)的行關(guān)鍵字的確定方式具體為所述數(shù)據(jù)查找裝置根據(jù)預(yù)設(shè)的用于將所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的各列中的數(shù)據(jù)映射為數(shù)值的映射函數(shù),分別將所述數(shù)據(jù)存儲(chǔ)系統(tǒng)中的各數(shù)據(jù)映射為數(shù)值;所述數(shù)據(jù)查找裝置利用所述各數(shù)據(jù)映射的數(shù)值,針對(duì)所述數(shù)據(jù)存儲(chǔ)系統(tǒng)中的任意一行 數(shù)據(jù),按照下述公式,執(zhí)行對(duì)該行數(shù)據(jù)對(duì)應(yīng)的行關(guān)鍵字的計(jì)算RowL·yr=fJ{Nrq■γ[Cp)q=\p-^+1其中,r為該行數(shù)據(jù)所在行的行序列號(hào);Rowke^為該第r行數(shù)據(jù)所對(duì)應(yīng)的行關(guān)鍵字;η 為所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的總列數(shù);q為該第r行中的數(shù)據(jù)所在列的列序號(hào)為該第r行中 位于第q列的數(shù)據(jù)所映射的數(shù)值;Cp為位于第ρ列的數(shù)據(jù)的勢(shì)。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述數(shù)據(jù)查找裝置根據(jù)所述數(shù)據(jù)查找條 件,按照預(yù)設(shè)的行關(guān)鍵字所在范圍的確定方式,確定用戶需要查找的數(shù)據(jù)在數(shù)據(jù)存儲(chǔ)系統(tǒng) 中所在行的行關(guān)鍵字所在范圍具體為所述數(shù)據(jù)查找裝置根據(jù)所述數(shù)據(jù)查找條件以及所述數(shù)據(jù)存儲(chǔ)系統(tǒng)中各列的排列順序, 確定用戶需要查找的數(shù)據(jù)所在的列,并判斷確定的該列是否為第一列;當(dāng)判斷結(jié)果為是時(shí),所述數(shù)據(jù)查找裝置按照預(yù)設(shè)的第一范圍確定方式,確定與所述數(shù) 據(jù)查找條件相對(duì)應(yīng)的行關(guān)鍵字所在范圍;當(dāng)判斷結(jié)果為否時(shí),所述數(shù)據(jù)查找裝置按照預(yù)設(shè)的第二范圍確定方式,確定與所述數(shù) 據(jù)查找條件相對(duì)應(yīng)的行關(guān)鍵字所在范圍。
4.如權(quán)利要求3所述的方法,其特征在于,所述數(shù)據(jù)查找裝置按照預(yù)設(shè)的第一范圍確 定方式,確定與所述數(shù)據(jù)查找條件相對(duì)應(yīng)的行關(guān)鍵字所在范圍具體包括所述數(shù)據(jù)查找裝置根據(jù)所述數(shù)據(jù)查找條件,確定用戶需要查找的數(shù)據(jù)所在范圍;當(dāng)確定結(jié)果為用戶需要查找的數(shù)據(jù)所在范圍為大于第一數(shù)據(jù)時(shí),所述數(shù)據(jù)查找裝置確 定所述第一數(shù)據(jù)映射的數(shù)值X,并按照下述公式,執(zhí)行與所述數(shù)據(jù)查找條件相對(duì)應(yīng)的行關(guān)鍵 字所在范圍的計(jì)算
5.如權(quán)利要求3所述的方法,其特征在于,所述數(shù)據(jù)查找裝置按照預(yù)設(shè)的第二范圍確 定方式,確定與所述數(shù)據(jù)查找條件相對(duì)應(yīng)的行關(guān)鍵范圍具體包括所述數(shù)據(jù)查找裝置根據(jù)所述數(shù)據(jù)查找條件,確定用戶需要查找的數(shù)據(jù)所在范圍;當(dāng)確定結(jié)果為用戶需要查找的數(shù)據(jù)所在范圍為大于第一數(shù)據(jù)時(shí),所述數(shù)據(jù)查找裝置確 定所述第一數(shù)據(jù)映射的數(shù)值X,并按照下述公式,執(zhí)行與所述數(shù)據(jù)查找條件相對(duì)應(yīng)的行關(guān)鍵 字所在范圍的計(jì)算
6.一種數(shù)據(jù)查找裝置,其特征在于,包括獲得單元,用于獲得用戶提供的數(shù)據(jù)查找條件;范圍確定單元,用于根據(jù)獲得單元獲得的數(shù)據(jù)查找條件,按照預(yù)設(shè)的行關(guān)鍵字所在范 圍的確定方式,確定用戶需要查找的數(shù)據(jù)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中所在行對(duì)應(yīng)的行關(guān)鍵字所在范 圍;行關(guān)鍵字確定單元,用于根據(jù)范圍確定單元確定的范圍,從預(yù)先按照預(yù)設(shè)的行關(guān)鍵字確定方式確定的、與數(shù)據(jù)存儲(chǔ)系統(tǒng)中各行數(shù)據(jù)分別對(duì)應(yīng)的行關(guān)鍵字中,確定處于所述確定 的范圍內(nèi)的行關(guān)鍵字;查找單元,用于根據(jù)所述行關(guān)鍵字確定單元確定的行關(guān)鍵字,查找與所述確定的行關(guān) 鍵字對(duì)應(yīng)的行中的數(shù)據(jù)。
7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括映射單元和確定單元,所述 預(yù)設(shè)的行關(guān)鍵字的確定方式具體為所述映射單元根據(jù)預(yù)設(shè)的用于將所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的各列中的數(shù)據(jù)映射為數(shù)值的映 射函數(shù),分別將所述數(shù)據(jù)存儲(chǔ)系統(tǒng)中的各數(shù)據(jù)映射為數(shù)值;所述確定單元利用所述映射單元得到的各數(shù)據(jù)映射的數(shù)值,針對(duì)所述數(shù)據(jù)存儲(chǔ)系統(tǒng)中 的任意一行數(shù)據(jù),按照下述公式,執(zhí)行對(duì)該行數(shù)據(jù)對(duì)應(yīng)的行關(guān)鍵字的計(jì)算
8.如權(quán)利要求6或7所述的裝置,其特征在于,所述范圍確定單元具體包括列確定模塊,用于根據(jù)所述數(shù)據(jù)查找條件以及所述數(shù)據(jù)存儲(chǔ)系統(tǒng)中各列的排列順序, 確定用戶需要查找的數(shù)據(jù)所在的列;判斷模塊,用于判斷列確定模塊確定的列是否為第一列;第一確定模塊,用于當(dāng)判斷模塊得到的判斷結(jié)果為是時(shí),按照預(yù)設(shè)的第一范圍確定方 式,確定與所述數(shù)據(jù)查找條件相對(duì)應(yīng)的行關(guān)鍵字所在范圍;第二確定模塊,用于當(dāng)判斷模塊得到的判斷結(jié)果為否時(shí),按照預(yù)設(shè)的第二范圍確定方 式,確定與所述數(shù)據(jù)查找條件相對(duì)應(yīng)的行關(guān)鍵字所在范圍。
9.如權(quán)利要求8所述的裝置,其特征在于,所述第一確定模塊具體包括確定子模塊,用于根據(jù)所述數(shù)據(jù)查找條件,確定用戶需要查找的數(shù)據(jù)所在范圍;執(zhí)行子模塊,用于當(dāng)確定子模塊得到的確定結(jié)果為用戶需要查找的數(shù)據(jù)所在范圍為大 于第一數(shù)據(jù)時(shí),確定所述第一數(shù)據(jù)映射的數(shù)值X,并按照下述公式,執(zhí)行與所述數(shù)據(jù)查找條 件相對(duì)應(yīng)的行關(guān)鍵字所在范圍的計(jì)算
10.如權(quán)利要求8所述的裝置,其特征在于,所述第二確定模塊具體包括 確定子模塊,用于根據(jù)所述數(shù)據(jù)查找條件,確定用戶需要查找的數(shù)據(jù)所在范圍; 執(zhí)行子模塊,用于當(dāng)確定子模塊得到的確定結(jié)果為用戶需要查找的數(shù)據(jù)所在范圍為大 于第一數(shù)據(jù)時(shí),確定所述第一數(shù)據(jù)映射的數(shù)值X,并按照下述公式,執(zhí)行與所述數(shù)據(jù)查找條 件相對(duì)應(yīng)的行關(guān)鍵字所在范圍的計(jì)算
全文摘要
本發(fā)明實(shí)施例提供一種數(shù)據(jù)查找方法及裝置,用以解決采用現(xiàn)有技術(shù)提供的數(shù)據(jù)查找方式的查找效率比較低的問(wèn)題。其中,本發(fā)明實(shí)施例提供的該方法包括步驟數(shù)據(jù)查找裝置獲得用戶提供的數(shù)據(jù)查找條件;根據(jù)所述數(shù)據(jù)查找條件,按照預(yù)設(shè)的行關(guān)鍵字所在范圍的確定方式,確定用戶需要查找的數(shù)據(jù)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中所在行對(duì)應(yīng)的行關(guān)鍵字所在范圍;所述數(shù)據(jù)查找裝置根據(jù)所述確定的范圍,從預(yù)先按照預(yù)設(shè)的行關(guān)鍵字確定方式確定的、與數(shù)據(jù)存儲(chǔ)系統(tǒng)中各行數(shù)據(jù)分別對(duì)應(yīng)的行關(guān)鍵字中,確定處于所述確定的范圍內(nèi)的行關(guān)鍵字;所述數(shù)據(jù)查找裝置根據(jù)所述確定的行關(guān)鍵字,查找與所述確定的行關(guān)鍵字對(duì)應(yīng)的行中的數(shù)據(jù)。
文檔編號(hào)G06F17/30GK102033870SQ20091009277
公開(kāi)日2011年4月27日 申請(qǐng)日期2009年9月24日 優(yōu)先權(quán)日2009年9月24日
發(fā)明者孫少陵, 羅治國(guó), 郭磊濤, 錢(qián)嶺, 齊驥 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)公司