欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

存儲(chǔ)數(shù)據(jù)的方法和裝置制造方法

文檔序號(hào):6532462閱讀:178來源:國知局
存儲(chǔ)數(shù)據(jù)的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種存儲(chǔ)數(shù)據(jù)的方法和裝置。該方法包括:確定待存儲(chǔ)到KeyValue類型分布式數(shù)據(jù)庫中的至少兩個(gè)數(shù)據(jù)對象的相同的列屬性;確定該至少兩個(gè)數(shù)據(jù)對象中的每個(gè)數(shù)據(jù)對象在KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的格式,該行標(biāo)識(shí)的格式包括該相同的列屬性和數(shù)據(jù)對象標(biāo)識(shí),不同數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)在該行標(biāo)識(shí)的格式中的位置相同且位于該相同的列屬性之后;根據(jù)每個(gè)數(shù)據(jù)對象的行標(biāo)識(shí)的格式,確定每個(gè)數(shù)據(jù)對象的每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值;在KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值和每條數(shù)據(jù)記錄,該每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值作為該每條數(shù)據(jù)記錄在KeyValue類型分布式數(shù)據(jù)庫中的主索引。本發(fā)明實(shí)施例的存儲(chǔ)數(shù)據(jù)的方法和裝置,能夠提高查詢數(shù)據(jù)的效率。
【專利說明】存儲(chǔ)數(shù)據(jù)的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息【技術(shù)領(lǐng)域】,并且更具體地,涉及存儲(chǔ)數(shù)據(jù)的方法和裝置?!颈尘凹夹g(shù)】
[0002]鍵值(KeyValue)類型分布式數(shù)據(jù)庫作為分布式列存儲(chǔ)數(shù)據(jù)庫具有高可伸縮性和魯棒性,已經(jīng)在越來越多的系統(tǒng)中得到了廣泛的使用。KeyValue類型分布式數(shù)據(jù)庫的用戶表通常被設(shè)計(jì)用來存放數(shù)據(jù)格式相對簡單,關(guān)系簡單但可能是海量的數(shù)據(jù),例如:用來存儲(chǔ)網(wǎng)頁地址信息,用來存儲(chǔ)通話記錄信息,用來存儲(chǔ)上網(wǎng)記錄信息,等等。它能夠根據(jù)數(shù)據(jù)記錄的行鍵(RowKey)提供快速的查詢,無關(guān)數(shù)據(jù)量的大小。它能夠在當(dāng)前的存儲(chǔ)空間使用率達(dá)到一定閾值的時(shí)候動(dòng)態(tài)的擴(kuò)充物理節(jié)點(diǎn)。
[0003]在企業(yè)現(xiàn)有數(shù)據(jù)庫應(yīng)用中,通常關(guān)聯(lián)很多個(gè)用戶數(shù)據(jù)表,這些數(shù)據(jù)表的大小不一,并且表與表之間的數(shù)據(jù)可能存在內(nèi)在的關(guān)聯(lián)。而基于稀疏矩陣的KeyValue類型的分布式數(shù)據(jù)庫適合存放大數(shù)據(jù)量表,如果原樣將這些表導(dǎo)入到KeyValue類型分布式數(shù)據(jù)庫中,則存在過多的小表,不僅難以實(shí)現(xiàn)跨表的關(guān)聯(lián)查詢,而且會(huì)增加管理上的復(fù)雜度。也就是說,當(dāng)將傳統(tǒng)應(yīng)用中的數(shù)據(jù)遷移到KeyValue類型的分布式數(shù)據(jù)庫中,為了完成用戶表與用戶表之間的關(guān)聯(lián)查詢,需要查詢不同的表,不斷進(jìn)行數(shù)據(jù)定位導(dǎo)致效率低下。

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

[0004]本發(fā)明實(shí)施例提供了 一種存儲(chǔ)數(shù)據(jù)的方法和裝置,能夠提高查詢數(shù)據(jù)的效率。
[0005]第一方面,提供了一種存儲(chǔ)數(shù)據(jù)的方法,包括:確定待存儲(chǔ)到KeyValue類型分布式數(shù)據(jù)庫中的至少兩個(gè)數(shù)據(jù)對象的相同的列屬性;確定該至少兩個(gè)數(shù)據(jù)對象中的每個(gè)數(shù)據(jù)對象在該KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的格式,其中,該行標(biāo)識(shí)的格式包括該相同的列屬性和數(shù)據(jù)對象標(biāo)識(shí),該至少兩個(gè)數(shù)據(jù)對象中的不同數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)在該行標(biāo)識(shí)的格式中的位置相同且位于該相同的列屬性之后;根據(jù)確定的該每個(gè)數(shù)據(jù)對象的該行標(biāo)識(shí)的格式,確定該每個(gè)數(shù)據(jù)對象的每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值;在該KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)該每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值和該每條數(shù)據(jù)記錄,其中,該每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值作為該每條數(shù)據(jù)記錄在該KeyValue類型分布式數(shù)據(jù)庫中的主索引。
[0006]在第一種可能的實(shí)現(xiàn)方式中,該方法還包括:針對該每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值,按照第一順序?qū)υ撁織l數(shù)據(jù)記錄進(jìn)行排序,使該至少兩個(gè)數(shù)據(jù)對象的所有數(shù)據(jù)記錄形成聚簇表。
[0007]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,該第一順序?yàn)樽值漤樞颉?br> [0008]結(jié)合第一方面或第一方面的第一或二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,該方法還包括:接收數(shù)據(jù)請求,該數(shù)據(jù)請求指示對該至少兩個(gè)數(shù)據(jù)對象中的數(shù)據(jù)記錄進(jìn)行查詢或獲取;根據(jù)該行標(biāo)識(shí)的格式,構(gòu)造在該KeyValue類型分布式數(shù)據(jù)庫中進(jìn)行查詢的查詢信息,其中,該查詢信息包括該相同的列屬性;根據(jù)該查詢信息,導(dǎo)出該KeyValue類型分布式數(shù)據(jù)庫中主索引包含該查詢信息的數(shù)據(jù)記錄。
[0009]結(jié)合第一方面或第一方面的第一至三種可能的實(shí)現(xiàn)方式中的任一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,確定該至少兩個(gè)數(shù)據(jù)對象中的每個(gè)數(shù)據(jù)對象在該KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的格式,包括:為該至少兩個(gè)數(shù)據(jù)對象指定在該KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的第一前綴,其中,該第一前綴為常量;確定該至少兩個(gè)數(shù)據(jù)對象中的第一數(shù)據(jù)對象的該行標(biāo)識(shí)的格式包括該第一前綴、該相同的列屬性和該第一數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí);或者,確定該至少兩個(gè)數(shù)據(jù)對象中的第二數(shù)據(jù)對象的該行標(biāo)識(shí)的格式包括該第一前綴、該相同的列屬性、該第二數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)和該第二數(shù)據(jù)對象的列屬性中能區(qū)分該第二數(shù)據(jù)對象的所有數(shù)據(jù)記錄的列屬性。
[0010]結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,該查詢信息包括該第一前綴和該相同的列屬性。
[0011]結(jié)合第一方面的第四或五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,該方法還包括:確定該至少兩個(gè)數(shù)據(jù)對象中任一個(gè)數(shù)據(jù)對象在該KeyValue類型分布式數(shù)據(jù)庫中的二級(jí)索引的格式為第二前綴,第二屬性和該相同的列屬性,其中,該第二屬性為該任一個(gè)數(shù)據(jù)對象的列屬性中不同于該相同屬性的列屬性,該第二前綴為與該第一前綴不同的常量;根據(jù)該任一個(gè)數(shù)據(jù)對象的該二級(jí)索引的格式確定該任一個(gè)數(shù)據(jù)對象的二級(jí)索引;在該KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)該任一個(gè)數(shù)據(jù)對象的二級(jí)索引。
[0012]結(jié)合第一方面或第一方面的第一至六種可能的實(shí)現(xiàn)方式中的任一種可能的實(shí)現(xiàn)方式,在第七種可能的實(shí)現(xiàn)方式中,該行標(biāo)識(shí)的格式中的各個(gè)字段之間設(shè)置分隔符,或者,該各個(gè)字段具有固定長度。
[0013]第二方面,提供了一種存儲(chǔ)數(shù)據(jù)的裝置,包括:確定模塊,用于確定待存儲(chǔ)到鍵值KeyValue類型分布式數(shù)據(jù)庫中的至少兩個(gè)數(shù)據(jù)對象的相同的列屬性,確定該至少兩個(gè)數(shù)據(jù)對象中的每個(gè)數(shù)據(jù)對象在該KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的格式,其中,該行標(biāo)識(shí)的格式包括該相同的列屬性和數(shù)據(jù)對象標(biāo)識(shí),該至少兩個(gè)數(shù)據(jù)對象中的不同數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)在該行標(biāo)識(shí)的格式中的位置相同且位于該相同的列屬性之后,根據(jù)確定的該每個(gè)數(shù)據(jù)對象的該行標(biāo)識(shí)的格式,確定該每個(gè)數(shù)據(jù)對象的每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值;存儲(chǔ)模塊,用于在該KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)該每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值和該每條數(shù)據(jù)記錄,其中,該每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值作為該每條數(shù)據(jù)記錄在該KeyValue類型分布式數(shù)據(jù)庫中的主索引。
[0014]在第一種可能的實(shí)現(xiàn)方式中,該存儲(chǔ)模塊還用于,針對該每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值,按照第一順序?qū)υ撁織l數(shù)據(jù)記錄進(jìn)行排序,使該至少兩個(gè)數(shù)據(jù)對象的所有數(shù)據(jù)記錄形成聚簇表。
[0015]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,該第一順序?yàn)樽值漤樞颉?br> [0016]結(jié)合第二方面或第二方面的第一或二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,該裝置還包括:接收模塊,用于接收數(shù)據(jù)請求,該數(shù)據(jù)請求指示對該至少兩個(gè)數(shù)據(jù)對象中的數(shù)據(jù)記錄進(jìn)行查詢或獲??;查詢模塊,用于根據(jù)該行標(biāo)識(shí)的格式,構(gòu)造在該KeyValue類型分布式數(shù)據(jù)庫中進(jìn)行查詢的查詢信息,其中,該查詢信息包括該相同的列屬性,根據(jù)該查詢信息,導(dǎo)出該KeyValue類型分布式數(shù)據(jù)庫中主索引包含該查詢信息的數(shù)據(jù)記錄。
[0017]結(jié)合第二方面或第二方面的第一至三種可能的實(shí)現(xiàn)方式中的任一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,該確定模塊具體用于,為該至少兩個(gè)數(shù)據(jù)對象指定在該KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的第一前綴,其中,該第一前綴為常量,確定該至少兩個(gè)數(shù)據(jù)對象中的第一數(shù)據(jù)對象的該行標(biāo)識(shí)的格式包括該第一前綴、該相同的列屬性和該第一數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí),或者,確定該至少兩個(gè)數(shù)據(jù)對象中的第二數(shù)據(jù)對象的該行標(biāo)識(shí)的格式包括該第一前綴、該相同的列屬性、該第二數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)和該第二數(shù)據(jù)對象的列屬性中能區(qū)分該第二數(shù)據(jù)對象的所有數(shù)據(jù)記錄的列屬性。
[0018]結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,該查詢信息包括該第一前綴和該相同的列屬性。
[0019]結(jié)合第二方面的第四或五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,該確定模塊還用于,確定該至少兩個(gè)數(shù)據(jù)對象中任一個(gè)數(shù)據(jù)對象在該KeyValue類型分布式數(shù)據(jù)庫中的二級(jí)索引的格式為第二前綴,第二屬性和該相同的列屬性,其中,該第二屬性為該任一個(gè)數(shù)據(jù)對象的列屬性中不同于該相同屬性的列屬性,該第二前綴為與該第一前綴不同的常量,根據(jù)該任一個(gè)數(shù)據(jù)對象的該二級(jí)索引的格式確定該任一個(gè)數(shù)據(jù)對象的二級(jí)索引;該存儲(chǔ)模塊還用于在該KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)該任一個(gè)數(shù)據(jù)對象的二級(jí)索引。
[0020]結(jié)合第二方面或第二方面的第一至六種可能的實(shí)現(xiàn)方式中的任一種可能的實(shí)現(xiàn)方式,在第七種可能的實(shí)現(xiàn)方式中,該行標(biāo)識(shí)的格式中的各個(gè)字段之間設(shè)置分隔符,或者,該各個(gè)字段具有固定長度。
[0021]基于上述技術(shù)方案,本發(fā)明實(shí)施例的存儲(chǔ)數(shù)據(jù)的方法和裝置,通過將相關(guān)聯(lián)的數(shù)據(jù)對象采用包括相同的列屬性的行標(biāo)識(shí)的格式存儲(chǔ)到KeyValue類型分布式數(shù)據(jù)庫中,可以實(shí)現(xiàn)對多個(gè)數(shù)據(jù)對象進(jìn)行關(guān)聯(lián)查詢,從而能夠提高查詢數(shù)據(jù)的效率。
【專利附圖】

【附圖說明】
[0022]為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對本發(fā)明實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0023]圖1是根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)數(shù)據(jù)的方法的示意性流程圖。
[0024]圖2是根據(jù)本發(fā)明實(shí)施例的確定行標(biāo)識(shí)的格式的方法的示意性流程圖。
[0025]圖3是根據(jù)本發(fā)明另一實(shí)施例的存儲(chǔ)數(shù)據(jù)的方法的示意性流程圖
[0026]圖4是根據(jù)本發(fā)明又一實(shí)施例的存儲(chǔ)數(shù)據(jù)的方法的示意性流程圖
[0027]圖5是根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)數(shù)據(jù)的裝置的示意性框圖。
[0028]圖6是根據(jù)本發(fā)明另一實(shí)施例的存儲(chǔ)數(shù)據(jù)的裝置的示意性框圖。
[0029]圖7是根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0030]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都應(yīng)屬于本發(fā)明保護(hù)的范圍。
[0031]本發(fā)明實(shí)施例的技術(shù)方案可以應(yīng)用于KeyValue類型分布式數(shù)據(jù)庫。
[0032]在本發(fā)明實(shí)施例中,數(shù)據(jù)對象為數(shù)據(jù)表(也簡稱為表)或者具有數(shù)據(jù)表格式的一類數(shù)據(jù)。例如,該類數(shù)據(jù)可以是通話記錄數(shù)據(jù)或者上網(wǎng)記錄數(shù)據(jù),等等。為了描述方便,下述實(shí)施例將以數(shù)據(jù)表為例進(jìn)行說明。
[0033]圖1示出了根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)數(shù)據(jù)的方法100的示意性流程圖。圖1的方法由存儲(chǔ)數(shù)據(jù)的裝置執(zhí)行。如圖1所示,該方法100包括:
[0034]S110,確定待存儲(chǔ)到KeyValue類型分布式數(shù)據(jù)庫中的至少兩個(gè)數(shù)據(jù)對象的相同的列屬性;
[0035]S120,確定該至少兩個(gè)數(shù)據(jù)對象中的每個(gè)數(shù)據(jù)對象在該KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的格式,其中,該行標(biāo)識(shí)的格式包括該相同的列屬性和數(shù)據(jù)對象標(biāo)識(shí),該至少兩個(gè)數(shù)據(jù)對象中的不同數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)在該行標(biāo)識(shí)的格式中的位置相同且位于該相同的列屬性之后;
[0036]S130,根據(jù)確定的該每個(gè)數(shù)據(jù)對象的該行標(biāo)識(shí)的格式,確定該每個(gè)數(shù)據(jù)對象的每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值;
[0037]S140,在該KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)該每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值和該每條數(shù)據(jù)記錄,其中,該每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值作為該每條數(shù)據(jù)記錄在該KeyValue類型分布式數(shù)據(jù)庫中的主索引。
[0038]在本發(fā)明實(shí)施例中,在多個(gè)(即至少兩個(gè))數(shù)據(jù)對象相關(guān)聯(lián)時(shí),即多個(gè)數(shù)據(jù)對象具有相同的列屬性時(shí),為了方便對多個(gè)數(shù)據(jù)對象的關(guān)聯(lián)查詢,存儲(chǔ)數(shù)據(jù)的裝置將多個(gè)數(shù)據(jù)對象存儲(chǔ)到KeyValue類型分布式數(shù)據(jù)庫的一個(gè)表中。存儲(chǔ)數(shù)據(jù)的裝置基于該相同的列屬性確定每個(gè)數(shù)據(jù)對象在KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)(如RowKey)的格式,其中,該行標(biāo)識(shí)的格式包括該相同的列屬性和數(shù)據(jù)對象標(biāo)識(shí),該至少兩個(gè)數(shù)據(jù)對象中的不同數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)在該行標(biāo)識(shí)的格式中的位置相同且位于該相同的列屬性之后。也就是說,每個(gè)數(shù)據(jù)對象的行標(biāo)識(shí)的格式都包括該相同的列屬性以便于查詢,另外,還包括與數(shù)據(jù)對象對應(yīng)的數(shù)據(jù)對象標(biāo)識(shí)以區(qū)別不同數(shù)據(jù)對象。不同數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)在行標(biāo)識(shí)的格式中的位置相同且位于相同的列屬性之后以使不同數(shù)據(jù)對象的行標(biāo)識(shí)的格式保持相一致的結(jié)構(gòu)。然后,存儲(chǔ)數(shù)據(jù)的裝置根據(jù)確定的行標(biāo)識(shí)的格式確定每個(gè)數(shù)據(jù)對象中的每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值,再在KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值和每條數(shù)據(jù)記錄,其中,每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值作為每條數(shù)據(jù)記錄在KeyValue類型分布式數(shù)據(jù)庫中的主索引。由于相關(guān)聯(lián)的多個(gè)數(shù)據(jù)對象采用了一致的行標(biāo)識(shí)的格式,這樣,在查詢數(shù)據(jù)時(shí),按照行標(biāo)識(shí)的格式構(gòu)造查詢信息,可以實(shí)現(xiàn)在一個(gè)數(shù)據(jù)表中對多個(gè)數(shù)據(jù)對象進(jìn)行關(guān)聯(lián)查詢,從而能夠提高查詢數(shù)據(jù)的效率。
[0039]因此,本發(fā)明實(shí)施例的存儲(chǔ)數(shù)據(jù)的方法,通過將相關(guān)聯(lián)的數(shù)據(jù)對象采用包括相同的列屬性的行標(biāo)識(shí)的格式存儲(chǔ)到KeyValue類型分布式數(shù)據(jù)庫中,可以實(shí)現(xiàn)對多個(gè)數(shù)據(jù)對象進(jìn)行關(guān)聯(lián)查詢,從而能夠提高查詢數(shù)據(jù)的效率。
[0040]應(yīng)理解,在本發(fā)明實(shí)施例中,行標(biāo)識(shí)為每一行數(shù)據(jù)的標(biāo)識(shí)。行標(biāo)識(shí)可以表述為RowKey,也可以表述為Key,本發(fā)明對此并不限定。為了描述方便,下述實(shí)施例以RowKey為例進(jìn)行說明。[0041]下面結(jié)合具體的例子對本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。應(yīng)注意,其中的例子只是為了幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實(shí)施例,而非限制本發(fā)明實(shí)施例的范圍。
[0042]在SllO中,存儲(chǔ)數(shù)據(jù)的裝置確定待存儲(chǔ)到KeyValue類型分布式數(shù)據(jù)庫中的至少兩個(gè)數(shù)據(jù)對象的相同的列屬性
[0043]多個(gè)數(shù)據(jù)對象具有相同的列屬性即多個(gè)數(shù)據(jù)對象相關(guān)聯(lián)。
[0044]例如,數(shù)據(jù)對象A,以記錄學(xué)生信息的表1為例,其屬性信息包括姓名(Name),學(xué)號(hào)(Id),性別(Sex),班級(jí)(Dept)等列(Column)屬性。
[0045]表1
[0046]
【權(quán)利要求】
1.一種存儲(chǔ)數(shù)據(jù)的方法,其特征在于,包括: 確定待存儲(chǔ)到鍵值KeyValue類型分布式數(shù)據(jù)庫中的至少兩個(gè)數(shù)據(jù)對象的相同的列屬性; 確定所述至少兩個(gè)數(shù)據(jù)對象中的每個(gè)數(shù)據(jù)對象在所述KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的格式,其中,所述行標(biāo)識(shí)的格式包括所述相同的列屬性和數(shù)據(jù)對象標(biāo)識(shí),所述至少兩個(gè)數(shù)據(jù)對象中的不同數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)在所述行標(biāo)識(shí)的格式中的位置相同且位于所述相同的列屬性之后; 根據(jù)確定的所述每個(gè)數(shù)據(jù)對象的所述行標(biāo)識(shí)的格式,確定所述每個(gè)數(shù)據(jù)對象的每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值; 在所述KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)所述每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值和所述每條數(shù)據(jù)記錄,其中,所述每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值作為所述每條數(shù)據(jù)記錄在所述KeyValue類型分布式數(shù)據(jù)庫中的主索引。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 針對所述每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值,按照第一順序?qū)λ雒織l數(shù)據(jù)記錄進(jìn)行排序,使所述至少兩個(gè)數(shù)據(jù)對象的所有數(shù)據(jù)記錄形成聚簇表。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一順序?yàn)樽值漤樞颉?br> 4.根據(jù)權(quán)利要 求1至3中任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 接收數(shù)據(jù)請求,所述數(shù)據(jù)請求指示對所述至少兩個(gè)數(shù)據(jù)對象中的數(shù)據(jù)記錄進(jìn)行查詢或獲??; 根據(jù)所述行標(biāo)識(shí)的格式,構(gòu)造在所述KeyValue類型分布式數(shù)據(jù)庫中進(jìn)行查詢的查詢信息,其中,所述查詢信息包括所述相同的列屬性; 根據(jù)所述查詢信息,導(dǎo)出所述KeyValue類型分布式數(shù)據(jù)庫中主索引包含所述查詢信息的數(shù)據(jù)記錄。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述確定所述至少兩個(gè)數(shù)據(jù)對象中的每個(gè)數(shù)據(jù)對象在所述KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的格式,包括: 為所述至少兩個(gè)數(shù)據(jù)對象指定在所述KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的第一前綴,其中,所述第一前綴為常量; 確定所述至少兩個(gè)數(shù)據(jù)對象中的第一數(shù)據(jù)對象的所述行標(biāo)識(shí)的格式包括所述第一前綴、所述相同的列屬性和所述第一數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí);或者, 確定所述至少兩個(gè)數(shù)據(jù)對象中的第二數(shù)據(jù)對象的所述行標(biāo)識(shí)的格式包括所述第一前綴、所述相同的列屬性、所述第二數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)和所述第二數(shù)據(jù)對象的列屬性中能區(qū)分所述第二數(shù)據(jù)對象的所有數(shù)據(jù)記錄的列屬性。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述查詢信息包括所述第一前綴和所述相同的列屬性。
7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述方法還包括: 確定所述至少兩個(gè)數(shù)據(jù)對象中任一個(gè)數(shù)據(jù)對象在所述KeyValue類型分布式數(shù)據(jù)庫中的二級(jí)索引的格式為第二前綴,第二屬性和所述相同的列屬性,其中,所述第二屬性為所述任一個(gè)數(shù)據(jù)對象的列屬性中不同于所述相同屬性的列屬性,所述第二前綴為與所述第一前綴不同的常量;根據(jù)所述任一個(gè)數(shù)據(jù)對象的所述二級(jí)索引的格式確定所述任一個(gè)數(shù)據(jù)對象的二級(jí)索引 ; 在所述KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)所述任一個(gè)數(shù)據(jù)對象的二級(jí)索引。
8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的方法,其特征在于,所述行標(biāo)識(shí)的格式中的各個(gè)字段之間設(shè)置分隔符,或者,所述各個(gè)字段具有固定長度。
9.一種存儲(chǔ)數(shù)據(jù)的裝置,其特征在于,包括: 確定模塊,用于確定待存儲(chǔ)到鍵值KeyValue類型分布式數(shù)據(jù)庫中的至少兩個(gè)數(shù)據(jù)對象的相同的列屬性,確定所述至少兩個(gè)數(shù)據(jù)對象中的每個(gè)數(shù)據(jù)對象在所述KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的格式,其中,所述行標(biāo)識(shí)的格式包括所述相同的列屬性和數(shù)據(jù)對象標(biāo)識(shí),所述至少兩個(gè)數(shù)據(jù)對象中的不同數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)在所述行標(biāo)識(shí)的格式中的位置相同且位于所述相同的列屬性之后,根據(jù)確定的所述每個(gè)數(shù)據(jù)對象的所述行標(biāo)識(shí)的格式,確定所述每個(gè)數(shù)據(jù)對象的每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值; 存儲(chǔ)模塊,用于在所述KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)所述每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值和所述每條數(shù)據(jù)記錄,其中,所述每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值作為所述每條數(shù)據(jù)記錄在所述KeyValue類型分布式數(shù)據(jù)庫中的主索引。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述存儲(chǔ)模塊還用于,針對所述每條數(shù)據(jù)記錄的行標(biāo)識(shí)的值,按照第一順序?qū)λ雒織l數(shù)據(jù)記錄進(jìn)行排序,使所述至少兩個(gè)數(shù)據(jù)對象的所有數(shù)據(jù)記錄形成聚簇表。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述第一順序?yàn)樽值漤樞颉?br> 12.根據(jù)權(quán)利要求9至11中任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括: 接收模塊,用于接收數(shù)據(jù)請求,所述數(shù)據(jù)請求指示對所述至少兩個(gè)數(shù)據(jù)對象中的數(shù)據(jù)記錄進(jìn)行查詢或獲??; 查詢模塊,用于根據(jù)所述行標(biāo)識(shí)的格式,構(gòu)造在所述KeyValue類型分布式數(shù)據(jù)庫中進(jìn)行查詢的查詢信息,其中,所述查詢信息包括所述相同的列屬性,根據(jù)所述查詢信息,導(dǎo)出所述KeyValue類型分布式數(shù)據(jù)庫中主索引包含所述查詢信息的數(shù)據(jù)記錄。
13.根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的裝置,其特征在于,所述確定模塊具體用于,為所述至少兩個(gè)數(shù)據(jù)對象指定在所述KeyValue類型分布式數(shù)據(jù)庫中的行標(biāo)識(shí)的第一前綴,其中,所述第一前綴為常量,確定所述至少兩個(gè)數(shù)據(jù)對象中的第一數(shù)據(jù)對象的所述行標(biāo)識(shí)的格式包括所述第一前綴、所述相同的列屬性和所述第一數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí),或者,確定所述至少兩個(gè)數(shù)據(jù)對象中的第二數(shù)據(jù)對象的所述行標(biāo)識(shí)的格式包括所述第一前綴、所述相同的列屬性、所述第二數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識(shí)和所述第二數(shù)據(jù)對象的列屬性中能區(qū)分所述第二數(shù)據(jù)對象的所有數(shù)據(jù)記錄的列屬性。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述查詢信息包括所述第一前綴和所述相同的列屬性。
15.根據(jù)權(quán)利要求13或14所述的裝置,其特征在于,所述確定模塊還用于,確定所述至少兩個(gè)數(shù)據(jù)對象中任一個(gè)數(shù)據(jù)對象在所述KeyValue類型分布式數(shù)據(jù)庫中的二級(jí)索引的格式為第二前綴,第二屬性和所述相同的列屬性,其中,所述第二屬性為所述任一個(gè)數(shù)據(jù)對象的列屬性中不同于所述相同屬性的列屬性,所述第二前綴為與所述第一前綴不同的常量,根據(jù)所述任一個(gè)數(shù)據(jù)對象的所述二級(jí)索引的格式確定所述任一個(gè)數(shù)據(jù)對象的二級(jí)索引;所述存儲(chǔ)模塊還用于在所述KeyValue類型分布式數(shù)據(jù)庫中存儲(chǔ)所述任一個(gè)數(shù)據(jù)對象的二級(jí)索引。
16.根據(jù)權(quán)利要求9至15中任一項(xiàng)所述的裝置,其特征在于,所述行標(biāo)識(shí)的格式中的各個(gè)字段之間設(shè)置分隔符,或者,所述各個(gè)字段具有固定長度。
17.一種計(jì)算機(jī),其特征在于,包括:處理器、存儲(chǔ)器、總線和通信接口 ; 所述存儲(chǔ)器用于存儲(chǔ) 計(jì)算機(jī)執(zhí)行指令,所述處理器與所述存儲(chǔ)器通過所述總線連接,當(dāng)所述計(jì)算機(jī)運(yùn)行時(shí),所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的所述計(jì)算機(jī)執(zhí)行指令,以使所述計(jì)算機(jī)執(zhí)行權(quán)利要求1-8中任意一項(xiàng)所述的方法。
18.一種計(jì)算機(jī)可讀介質(zhì),其特征在于,包括計(jì)算機(jī)執(zhí)行指令,當(dāng)計(jì)算機(jī)的處理器執(zhí)行所述計(jì)算機(jī)執(zhí)行指令時(shí),所述計(jì)算機(jī)執(zhí)行權(quán)利要求1-8中任意一項(xiàng)所述的方法。
【文檔編號(hào)】G06F17/30GK103703467SQ201380001160
【公開日】2014年4月2日 申請日期:2013年8月29日 優(yōu)先權(quán)日:2013年8月29日
【發(fā)明者】畢杰山, 智偉 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
丰顺县| 靖边县| 冷水江市| 秦安县| 保康县| 中山市| 且末县| 定襄县| 寻甸| 香格里拉县| 洛隆县| 临夏市| 新宁县| 南溪县| 庆安县| 德江县| 全椒县| 澳门| 长丰县| 阿鲁科尔沁旗| 青田县| 新河县| 盖州市| 宁乡县| 邹平县| 太原市| 浦江县| 康保县| 扶沟县| 九江县| 丹阳市| 阿荣旗| 蒙自县| 吉木乃县| 含山县| 和平区| 莎车县| 会东县| 南投县| 衡山县| 宁陕县|