本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種分布式索引實(shí)現(xiàn)方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和應(yīng)用軟件的成熟,在21世紀(jì)開(kāi)始興起的一種完全創(chuàng)新的軟件應(yīng)用模式軟件即服務(wù)(software-as-a-service,簡(jiǎn)稱saas)。它是一種通過(guò)internet提供軟件的模式,廠商將應(yīng)用軟件統(tǒng)一部署在自己的服務(wù)器上,客戶可以根據(jù)自己實(shí)際需求,通過(guò)互聯(lián)網(wǎng)向廠商定購(gòu)所需的應(yīng)用軟件服務(wù),按定購(gòu)的服務(wù)多少和時(shí)間長(zhǎng)短向廠商支付費(fèi)用,并通過(guò)互聯(lián)網(wǎng)獲得廠商提供的服務(wù)。對(duì)于許多小型企業(yè)來(lái)說(shuō),saas是采用先進(jìn)技術(shù)的最好途徑,它消除了企業(yè)購(gòu)買(mǎi)、構(gòu)建和維護(hù)基礎(chǔ)設(shè)施和應(yīng)用程序的需要。
分布式架構(gòu)與傳統(tǒng)單節(jié)點(diǎn)架構(gòu)不同,一張全局的表會(huì)分片于每一個(gè)原子節(jié)點(diǎn)中,在進(jìn)行數(shù)據(jù)存取及修改時(shí),有可能需要查找多個(gè)原子節(jié)點(diǎn)才能查找到所需信息,造成查找效率低下,影響數(shù)據(jù)存取及修改效率,大大影響用戶體驗(yàn),因此,需要采用索引的方式來(lái)優(yōu)化數(shù)據(jù)訪問(wèn)效率,為了進(jìn)一步提高數(shù)據(jù)訪問(wèn)效率,有必要設(shè)計(jì)一種分布式索引實(shí)現(xiàn)方法來(lái)管理索引,以提高索引的維護(hù)效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種分布式索引實(shí)現(xiàn)方法及裝置,用以解決索引的維護(hù)效率低的技術(shù)問(wèn)題。
本發(fā)明一方面提供一種分布式索引實(shí)現(xiàn)方法,包括:
從第一級(jí)元數(shù)據(jù)表中獲取第一標(biāo)識(shí);其中,第一級(jí)元數(shù)據(jù)表用于存儲(chǔ)租戶的所有數(shù)據(jù)表元數(shù)據(jù);
根據(jù)第一標(biāo)識(shí)在節(jié)點(diǎn)索引元數(shù)據(jù)表中進(jìn)行查找,以獲得查找結(jié)果;其中,節(jié)點(diǎn)索引元數(shù)據(jù)表包括第一標(biāo)識(shí)和字段名;
獲取篩選條件,并根據(jù)篩選條件對(duì)查找結(jié)果進(jìn)行篩選,以獲得篩選結(jié)果,篩選條件包括字段名;
根據(jù)第二標(biāo)識(shí)在第二級(jí)元數(shù)據(jù)表中進(jìn)行查找,以獲取與第二標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)標(biāo)識(shí),其中,第二級(jí)元數(shù)據(jù)表包括第一標(biāo)識(shí)和數(shù)據(jù)庫(kù)標(biāo)識(shí);數(shù)據(jù)庫(kù)標(biāo)識(shí)為數(shù)據(jù)庫(kù)表的主鍵,數(shù)據(jù)庫(kù)表還包括數(shù)據(jù)庫(kù)地址;第二標(biāo)識(shí)為從篩選結(jié)果中獲取的第一標(biāo)識(shí);
根據(jù)數(shù)據(jù)庫(kù)標(biāo)識(shí)在數(shù)據(jù)庫(kù)表中進(jìn)行查找,以獲得與數(shù)據(jù)庫(kù)標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)地址;
根據(jù)與數(shù)據(jù)庫(kù)標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)地址對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)。
進(jìn)一步的,第一級(jí)元數(shù)據(jù)表位于父存儲(chǔ)設(shè)備中,第二級(jí)元數(shù)據(jù)表及節(jié)點(diǎn)索引元數(shù)據(jù)表位于子存儲(chǔ)設(shè)備中,且子存儲(chǔ)設(shè)備有多個(gè)。
進(jìn)一步的,上述方法還包括:
從第一級(jí)元數(shù)據(jù)表中獲取第三標(biāo)識(shí);
根據(jù)第三標(biāo)識(shí),在第二級(jí)元數(shù)據(jù)表中生成第一新增數(shù)據(jù),其中,第一新增數(shù)據(jù)包括第三標(biāo)識(shí)和對(duì)應(yīng)的數(shù)據(jù)庫(kù)標(biāo)識(shí);
根據(jù)第三標(biāo)識(shí),在節(jié)點(diǎn)索引元數(shù)據(jù)表中生成第二新增數(shù)據(jù),其中,第二新增數(shù)據(jù)包括第三標(biāo)識(shí)和對(duì)應(yīng)的字段名。
進(jìn)一步的,上述方法還包括:
從父存儲(chǔ)設(shè)備的第一級(jí)元數(shù)據(jù)表中獲取第四標(biāo)識(shí);
根據(jù)第四標(biāo)識(shí),對(duì)各子存儲(chǔ)設(shè)備中的節(jié)點(diǎn)索引元數(shù)據(jù)表的相應(yīng)數(shù)據(jù)進(jìn)行修改或刪除。
進(jìn)一步的,第一級(jí)元數(shù)據(jù)表還包括索引完成數(shù)、第一創(chuàng)建時(shí)間和第一修改時(shí)間;節(jié)點(diǎn)索引元數(shù)據(jù)表還包括索引字段、第二創(chuàng)建時(shí)間和第二修改時(shí)間。
本發(fā)明另一方面提供一種分布式索引實(shí)現(xiàn)裝置,包括:
第一獲取模塊,用于從第一級(jí)元數(shù)據(jù)表中獲取第一標(biāo)識(shí);其中,第一級(jí)元數(shù)據(jù)表用于存儲(chǔ)租戶的所有數(shù)據(jù)表元數(shù)據(jù);
查找模塊,用于根據(jù)第一標(biāo)識(shí)在節(jié)點(diǎn)索引元數(shù)據(jù)表中進(jìn)行查找,以獲得查找結(jié)果;其中,節(jié)點(diǎn)索引元數(shù)據(jù)表包括第一標(biāo)識(shí)和字段名;
篩選模塊,用于獲取篩選條件,并根據(jù)篩選條件對(duì)查找結(jié)果進(jìn)行篩選,以獲得篩選結(jié)果,篩選條件包括字段名;
第二獲取模塊,用于根據(jù)第二標(biāo)識(shí)在第二級(jí)元數(shù)據(jù)表中進(jìn)行查找,以獲取與第二標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)標(biāo)識(shí),其中,第二級(jí)元數(shù)據(jù)表包括第一標(biāo)識(shí)和數(shù)據(jù)庫(kù)標(biāo)識(shí);數(shù)據(jù)庫(kù)標(biāo)識(shí)為數(shù)據(jù)庫(kù)表的主鍵,數(shù)據(jù)庫(kù)表還包括數(shù)據(jù)庫(kù)地址;第二標(biāo)識(shí)為從篩選結(jié)果中獲取的第一標(biāo)識(shí);
數(shù)據(jù)庫(kù)地址獲取模塊,用于根據(jù)數(shù)據(jù)庫(kù)標(biāo)識(shí)在數(shù)據(jù)庫(kù)表中進(jìn)行查找,以獲得與數(shù)據(jù)庫(kù)標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)地址;
數(shù)據(jù)訪問(wèn)模塊,用于根據(jù)與數(shù)據(jù)庫(kù)標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)地址對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)。
進(jìn)一步的,第一級(jí)元數(shù)據(jù)表位于父存儲(chǔ)設(shè)備中,第二級(jí)元數(shù)據(jù)表及節(jié)點(diǎn)索引元數(shù)據(jù)表位于子存儲(chǔ)設(shè)備中,且子存儲(chǔ)設(shè)備有多個(gè)。
進(jìn)一步的,上述裝置還包括:
第三獲取模塊,用于從第一級(jí)元數(shù)據(jù)表中獲取第三標(biāo)識(shí);
第一新增數(shù)據(jù)生成模塊,用于根據(jù)第三標(biāo)識(shí),在第二級(jí)元數(shù)據(jù)表中生成第一新增數(shù)據(jù),其中,第一新增數(shù)據(jù)包括第三標(biāo)識(shí)和對(duì)應(yīng)的數(shù)據(jù)庫(kù)標(biāo)識(shí);
第二新增數(shù)據(jù)生成模塊,用于根據(jù)第三標(biāo)識(shí),在節(jié)點(diǎn)索引元數(shù)據(jù)表中生成第二新增數(shù)據(jù),其中,第二新增數(shù)據(jù)包括第三標(biāo)識(shí)和對(duì)應(yīng)的字段名。
進(jìn)一步的,上述裝置還包括:
第四獲取模塊,用于從父存儲(chǔ)設(shè)備的第一級(jí)元數(shù)據(jù)表中獲取第四標(biāo)識(shí);
更新模塊,用于根據(jù)第四標(biāo)識(shí),對(duì)各子存儲(chǔ)設(shè)備中的節(jié)點(diǎn)索引元數(shù)據(jù)表的相應(yīng)數(shù)據(jù)進(jìn)行修改或刪除。
進(jìn)一步的,第一級(jí)元數(shù)據(jù)表還包括索引完成數(shù)、第一創(chuàng)建時(shí)間和第一修改時(shí)間;節(jié)點(diǎn)索引元數(shù)據(jù)表還包括索引字段、第二創(chuàng)建時(shí)間和第二修改時(shí)間。
本發(fā)明提供的分布式索引實(shí)現(xiàn)方法及裝置,通過(guò)節(jié)點(diǎn)索引元數(shù)據(jù)表存儲(chǔ)第二級(jí)元數(shù)據(jù)表的索引元數(shù)據(jù),在進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),可通過(guò)查找節(jié)點(diǎn)索引元數(shù)據(jù)表獲得第二標(biāo)識(shí),然后根據(jù)第二標(biāo)識(shí)查找第二級(jí)元數(shù)據(jù)表,從而獲得數(shù)據(jù)庫(kù)標(biāo)識(shí),最終根據(jù)數(shù)據(jù)庫(kù)標(biāo)識(shí)查找數(shù)據(jù)庫(kù)表,從而獲得數(shù)據(jù)庫(kù)地址,以實(shí)現(xiàn)對(duì)數(shù)據(jù)的訪問(wèn),提高了數(shù)據(jù)訪問(wèn)效率。同時(shí),通過(guò)上述索引實(shí)現(xiàn)方法及裝置,可通過(guò)第一級(jí)元數(shù)據(jù)中的第一標(biāo)識(shí)來(lái)更新節(jié)點(diǎn)索引元數(shù)據(jù)表,從而方便索引的管理,以提高索引的維護(hù)效率。
附圖說(shuō)明
在下文中將基于實(shí)施例并參考附圖來(lái)對(duì)本發(fā)明進(jìn)行更詳細(xì)的描述。其中:
圖1為本發(fā)明實(shí)施例一提供的分布式索引實(shí)現(xiàn)方法的一流程示意圖;
圖2為本發(fā)明實(shí)施例一提供的存儲(chǔ)數(shù)據(jù)表之間的關(guān)系示意圖;
圖3為本發(fā)明實(shí)施例一提供的分布式索引實(shí)現(xiàn)方法的另一流程示意圖;
圖4為本發(fā)明實(shí)施例二提供的分布式索引實(shí)現(xiàn)裝置的一結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例二提供的分布式索引實(shí)現(xiàn)裝置的另一結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例二提供的分布式索引實(shí)現(xiàn)裝置的又一結(jié)構(gòu)示意圖。
在附圖中,相同的部件使用相同的附圖標(biāo)記。附圖并未按照實(shí)際的比例繪制。
具體實(shí)施方式
下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
以下將結(jié)合附圖及實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式,借此本發(fā)明的實(shí)施人員可以充分理解本發(fā)明如何應(yīng)用技術(shù)手段來(lái)解決技術(shù)問(wèn)題,并達(dá)成技術(shù)效果的實(shí)現(xiàn)過(guò)程并依據(jù)上述實(shí)現(xiàn)過(guò)程具體實(shí)施本發(fā)明。需要說(shuō)明的是,只要不構(gòu)成沖突,本發(fā)明中的各個(gè)實(shí)施例以及各實(shí)施例中的各個(gè)特征可以相互結(jié)合,所形成的技術(shù)方案均在本發(fā)明的保護(hù)范圍之內(nèi)。
本發(fā)明實(shí)施例以saas系統(tǒng)為例進(jìn)行說(shuō)明,當(dāng)然本發(fā)明實(shí)施例中的分布式索引實(shí)現(xiàn)方法及裝置也可以應(yīng)用到其他分布式系統(tǒng)中,在此不做限定。
實(shí)施例一
圖1為本發(fā)明實(shí)施例一提供的分布式索引實(shí)現(xiàn)方法的流程示意圖;如圖1所示,本實(shí)施例提供一種分布式索引實(shí)現(xiàn)方法,包括步驟101-步驟106。
具體的,步驟101,從第一級(jí)元數(shù)據(jù)表中獲取第一標(biāo)識(shí);其中,第一級(jí)元數(shù)據(jù)表用于存儲(chǔ)租戶的所有數(shù)據(jù)表元數(shù)據(jù),即第一級(jí)元數(shù)據(jù)表中存儲(chǔ)租戶的所有數(shù)據(jù)表的相關(guān)信息,通過(guò)該第一級(jí)元數(shù)據(jù)表可查找到與租戶數(shù)據(jù)存儲(chǔ)相關(guān)的所有表的信息。如圖2所示的各存儲(chǔ)數(shù)據(jù)表之間的關(guān)系圖,圖2中,第一級(jí)元數(shù)據(jù)表的屬性id即為第一標(biāo)識(shí)。
步驟102,根據(jù)第一標(biāo)識(shí)在節(jié)點(diǎn)索引元數(shù)據(jù)表中進(jìn)行查找,以獲得查找結(jié)果;其中,節(jié)點(diǎn)索引元數(shù)據(jù)表包括第一標(biāo)識(shí)和字段名。
節(jié)點(diǎn)索引元數(shù)據(jù)表中存儲(chǔ)第二級(jí)元數(shù)據(jù)表的索引元數(shù)據(jù)。根據(jù)獲取到的第一標(biāo)識(shí)在節(jié)點(diǎn)索引元數(shù)據(jù)表中進(jìn)行查找,查找結(jié)果為第一標(biāo)識(shí)符合要求的所有數(shù)據(jù)項(xiàng)集合。
步驟103,獲取篩選條件,并根據(jù)篩選條件對(duì)查找結(jié)果進(jìn)行篩選,以獲得篩選結(jié)果,篩選條件包括字段名。
本步驟為篩選步驟,如使用rdbms數(shù)據(jù)庫(kù)引擎根據(jù)優(yōu)化器的需要對(duì)查找結(jié)果進(jìn)行篩選,篩選條件包括字段名,即根據(jù)字段名對(duì)查找結(jié)果進(jìn)行篩選,以獲得篩選結(jié)果。
步驟104,根據(jù)第二標(biāo)識(shí)在第二級(jí)元數(shù)據(jù)表中進(jìn)行查找,以獲取與第二標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)標(biāo)識(shí),其中,第二級(jí)元數(shù)據(jù)表包括第一標(biāo)識(shí)和數(shù)據(jù)庫(kù)標(biāo)識(shí);數(shù)據(jù)庫(kù)標(biāo)識(shí)為數(shù)據(jù)庫(kù)表的主鍵,數(shù)據(jù)庫(kù)表還包括數(shù)據(jù)庫(kù)地址;第二標(biāo)識(shí)為從篩選結(jié)果中獲取的第一標(biāo)識(shí)。
在本步驟中,為了區(qū)分篩選步驟前后不同數(shù)據(jù)項(xiàng)集合的第一標(biāo)識(shí),將篩選結(jié)果中的數(shù)據(jù)項(xiàng)集合的第一標(biāo)識(shí)稱為第二標(biāo)識(shí)(第一標(biāo)識(shí)和第二標(biāo)識(shí)用于表示節(jié)點(diǎn)索引元數(shù)據(jù)表中的同一屬性,即圖2中的表id或者第一級(jí)元數(shù)據(jù)表中的id,下文中的第三標(biāo)識(shí)與第四標(biāo)識(shí)同樣用于表示表id或者第一級(jí)元數(shù)據(jù)表中的id)。如圖2所示,根據(jù)第二標(biāo)識(shí)在第二級(jí)元數(shù)據(jù)表查找到對(duì)應(yīng)的數(shù)據(jù)庫(kù)標(biāo)識(shí)。
步驟105,根據(jù)數(shù)據(jù)庫(kù)標(biāo)識(shí)在數(shù)據(jù)庫(kù)表中進(jìn)行查找,以獲得對(duì)應(yīng)的數(shù)據(jù)庫(kù)地址。
步驟106,根據(jù)數(shù)據(jù)庫(kù)地址對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)。
在本實(shí)施例中,通過(guò)節(jié)點(diǎn)索引元數(shù)據(jù)表存儲(chǔ)第二級(jí)元數(shù)據(jù)表的索引元數(shù)據(jù),在進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),可通過(guò)查找節(jié)點(diǎn)索引元數(shù)據(jù)表獲得第二標(biāo)識(shí),然后根據(jù)第二標(biāo)識(shí)查找第二級(jí)元數(shù)據(jù)表,從而獲得數(shù)據(jù)庫(kù)標(biāo)識(shí),最終根據(jù)數(shù)據(jù)庫(kù)標(biāo)識(shí)查找數(shù)據(jù)庫(kù)表,從而獲得數(shù)據(jù)庫(kù)地址,以實(shí)現(xiàn)對(duì)數(shù)據(jù)的訪問(wèn),提高了數(shù)據(jù)訪問(wèn)效率。同時(shí),通過(guò)上述索引實(shí)現(xiàn)方法,可通過(guò)第一級(jí)元數(shù)據(jù)中的第一標(biāo)識(shí)來(lái)更新節(jié)點(diǎn)索引元數(shù)據(jù)表,從而方便索引的管理,以提高索引的維護(hù)效率。
進(jìn)一步的,在本發(fā)明另一個(gè)具體實(shí)施例中,第一級(jí)元數(shù)據(jù)表位于父存儲(chǔ)設(shè)備中,第二級(jí)元數(shù)據(jù)表及節(jié)點(diǎn)索引元數(shù)據(jù)表位于子存儲(chǔ)設(shè)備中,且子存儲(chǔ)設(shè)備有多個(gè),即每個(gè)子存儲(chǔ)設(shè)備均包括相同的第二級(jí)元數(shù)據(jù)表及節(jié)點(diǎn)索引元數(shù)據(jù)表。本實(shí)
在本實(shí)施例中,第一級(jí)元數(shù)據(jù)表中存儲(chǔ)租戶的所有數(shù)據(jù)表元數(shù)據(jù),在從第一級(jí)元數(shù)據(jù)表中獲取到第一標(biāo)識(shí)后,可對(duì)任何一個(gè)子存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)(因?yàn)槊恳粋€(gè)子存儲(chǔ)設(shè)備中存儲(chǔ)相同的第二級(jí)元數(shù)據(jù)表及節(jié)點(diǎn)索引元數(shù)據(jù)表),這種設(shè)置可均衡各子存儲(chǔ)設(shè)備的被訪問(wèn)負(fù)荷(系統(tǒng)可根據(jù)實(shí)際情況分配空閑的子存儲(chǔ)設(shè)備,從而實(shí)現(xiàn)均衡訪問(wèn)),從而提高子存儲(chǔ)設(shè)備(節(jié)點(diǎn)主機(jī))的使用效率。
在本發(fā)明另一個(gè)具體實(shí)施例中,上述方法還包括:從父存儲(chǔ)設(shè)備的第一級(jí)元數(shù)據(jù)表中獲取第四標(biāo)識(shí);根據(jù)第四標(biāo)識(shí),對(duì)各子存儲(chǔ)設(shè)備中的節(jié)點(diǎn)索引元數(shù)據(jù)表的相應(yīng)數(shù)據(jù)進(jìn)行修改或刪除。即在對(duì)節(jié)點(diǎn)索引元數(shù)據(jù)表的相應(yīng)數(shù)據(jù)進(jìn)行修改或刪除時(shí),需要對(duì)所有子存儲(chǔ)設(shè)備中的節(jié)點(diǎn)索引元數(shù)據(jù)表進(jìn)行操作,以保證各子存儲(chǔ)設(shè)備中節(jié)點(diǎn)索引元數(shù)據(jù)表存儲(chǔ)數(shù)據(jù)的一致性。本實(shí)施例用于對(duì)索引(即節(jié)點(diǎn)索引元數(shù)據(jù)表中存儲(chǔ)的數(shù)據(jù))進(jìn)行修改或刪除。
如圖3所示,在本發(fā)明一個(gè)具體實(shí)施例中,還包括步驟107-步驟109。
其中,步驟107,從第一級(jí)元數(shù)據(jù)表中獲取第三標(biāo)識(shí)。
步驟108,根據(jù)第三標(biāo)識(shí),在第二級(jí)元數(shù)據(jù)表中生成第一新增數(shù)據(jù),其中,第一新增數(shù)據(jù)包括第三標(biāo)識(shí)和對(duì)應(yīng)的數(shù)據(jù)庫(kù)標(biāo)識(shí)。
步驟109,根據(jù)第三標(biāo)識(shí),在節(jié)點(diǎn)索引元數(shù)據(jù)表中生成第二新增數(shù)據(jù),其中,第二新增數(shù)據(jù)包括第三標(biāo)識(shí)和對(duì)應(yīng)的字段名。
在本實(shí)施例中,步驟107-步驟109用于創(chuàng)建新的索引。
進(jìn)一步的,第一級(jí)元數(shù)據(jù)表還包括索引完成數(shù)、第一創(chuàng)建時(shí)間和第一修改時(shí)間;節(jié)點(diǎn)索引元數(shù)據(jù)表還包括索引字段、第二創(chuàng)建時(shí)間和第二修改時(shí)間。
索引完成數(shù)用于記錄子存儲(chǔ)設(shè)備中節(jié)點(diǎn)索引元數(shù)據(jù)表的完成情況,當(dāng)創(chuàng)建或修改節(jié)點(diǎn)索引元數(shù)據(jù)表中的數(shù)據(jù)時(shí),若某一子存儲(chǔ)設(shè)備已完成該任務(wù),則索引完成數(shù)的值加1,一般情況下,索引完成數(shù)應(yīng)當(dāng)與所有子存儲(chǔ)設(shè)備的個(gè)數(shù)相同。第一創(chuàng)建時(shí)間為在創(chuàng)建新的索引時(shí),在第二級(jí)元數(shù)據(jù)表中生成第一新增數(shù)據(jù)的時(shí)間。第一修改時(shí)間為在修改索引時(shí),索引修改完成時(shí)間。第二創(chuàng)建時(shí)間為在節(jié)點(diǎn)索引元數(shù)據(jù)表中生成第二新增數(shù)據(jù)的時(shí)間,第二修改時(shí)間為對(duì)節(jié)點(diǎn)索引元數(shù)據(jù)表的索引進(jìn)行修改的時(shí)間。
實(shí)施例二
本實(shí)施例為裝置實(shí)施例,用于執(zhí)行上述實(shí)施例中的方法。
圖4為本發(fā)明實(shí)施例二提供的分布式索引實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖;如圖4所示,本實(shí)施例提供一種分布式索引實(shí)現(xiàn)裝置,包括第一獲取模塊201、查找模塊202、篩選模塊203、第二獲取模塊204、數(shù)據(jù)庫(kù)地址獲取模塊205和數(shù)據(jù)訪問(wèn)模塊206。
其中,第一獲取模塊201,用于從第一級(jí)元數(shù)據(jù)表中獲取第一標(biāo)識(shí);其中,第一級(jí)元數(shù)據(jù)表用于存儲(chǔ)租戶的所有數(shù)據(jù)表元數(shù)據(jù);
查找模塊202,用于根據(jù)第一標(biāo)識(shí)在節(jié)點(diǎn)索引元數(shù)據(jù)表中進(jìn)行查找,以獲得查找結(jié)果;其中,節(jié)點(diǎn)索引元數(shù)據(jù)表包括第一標(biāo)識(shí)和字段名;
篩選模塊203,用于獲取篩選條件,并根據(jù)篩選條件對(duì)查找結(jié)果進(jìn)行篩選,以獲得篩選結(jié)果,篩選條件包括字段名;
第二獲取模塊204,用于根據(jù)第二標(biāo)識(shí)在第二級(jí)元數(shù)據(jù)表中進(jìn)行查找,以獲取與第二標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)標(biāo)識(shí),其中,第二級(jí)元數(shù)據(jù)表包括第一標(biāo)識(shí)和數(shù)據(jù)庫(kù)標(biāo)識(shí);數(shù)據(jù)庫(kù)標(biāo)識(shí)為數(shù)據(jù)庫(kù)表的主鍵,數(shù)據(jù)庫(kù)表還包括數(shù)據(jù)庫(kù)地址;第二標(biāo)識(shí)為從篩選結(jié)果中獲取的第一標(biāo)識(shí);
數(shù)據(jù)庫(kù)地址獲取模塊205,用于根據(jù)數(shù)據(jù)庫(kù)標(biāo)識(shí)在數(shù)據(jù)庫(kù)表中進(jìn)行查找,以獲得對(duì)應(yīng)的數(shù)據(jù)庫(kù)地址;
數(shù)據(jù)訪問(wèn)模塊206,用于根據(jù)數(shù)據(jù)庫(kù)地址對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)。
在本發(fā)明一個(gè)具體實(shí)施例中,第一級(jí)元數(shù)據(jù)表位于父存儲(chǔ)設(shè)備中,第二級(jí)元數(shù)據(jù)表及節(jié)點(diǎn)索引元數(shù)據(jù)表位于子存儲(chǔ)設(shè)備中,且子存儲(chǔ)設(shè)備有多個(gè)。
如圖5所示,在本發(fā)明另一個(gè)具體實(shí)施例中,分布式索引實(shí)現(xiàn)裝置還包括第四獲取模塊207和更新模塊208。
其中,第四獲取模塊207,用于從父存儲(chǔ)設(shè)備的第一級(jí)元數(shù)據(jù)表中獲取第四標(biāo)識(shí);
更新模塊208,用于根據(jù)第四標(biāo)識(shí),對(duì)各子存儲(chǔ)設(shè)備中的節(jié)點(diǎn)索引元數(shù)據(jù)表的相應(yīng)數(shù)據(jù)進(jìn)行修改或刪除。
如圖6所示,在本發(fā)明另一個(gè)具體實(shí)施例中,分布式索引實(shí)現(xiàn)裝置還包括第三獲取模塊209、第一新增數(shù)據(jù)生成模塊210和第二新增數(shù)據(jù)生成模塊211。
其中,第三獲取模塊209用于從第一級(jí)元數(shù)據(jù)表中獲取第三標(biāo)識(shí);
第一新增數(shù)據(jù)生成模塊210用于根據(jù)第三標(biāo)識(shí),在第二級(jí)元數(shù)據(jù)表中生成第一新增數(shù)據(jù),其中,第一新增數(shù)據(jù)包括第三標(biāo)識(shí)和對(duì)應(yīng)的數(shù)據(jù)庫(kù)標(biāo)識(shí);
第二新增數(shù)據(jù)生成模塊211用于根據(jù)第三標(biāo)識(shí),在節(jié)點(diǎn)索引元數(shù)據(jù)表中生成第二新增數(shù)據(jù),其中,第二新增數(shù)據(jù)包括第三標(biāo)識(shí)和對(duì)應(yīng)的字段名。
進(jìn)一步的,第一級(jí)元數(shù)據(jù)表還包括索引完成數(shù)、第一創(chuàng)建時(shí)間和第一修改時(shí)間;節(jié)點(diǎn)索引元數(shù)據(jù)表還包括索引字段、第二創(chuàng)建時(shí)間和第二修改時(shí)間。
本實(shí)施例是與方法實(shí)施例一對(duì)應(yīng)的裝置實(shí)施例,具體可參見(jiàn)實(shí)施例一中的描述,在此不再贅述。
應(yīng)該理解的是,本發(fā)明所公開(kāi)的實(shí)施例不限于這里所公開(kāi)的特定結(jié)構(gòu)、處理步驟或材料,而應(yīng)當(dāng)延伸到相關(guān)領(lǐng)域的普通技術(shù)人員所理解的這些特征的等同替代。還應(yīng)當(dāng)理解的是,在此使用的術(shù)語(yǔ)僅用于描述特定實(shí)施例的目的,而并不意味著限制。
說(shuō)明書(shū)中提到的“一個(gè)實(shí)施例”或“實(shí)施例”意指結(jié)合實(shí)施例描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,說(shuō)明書(shū)通篇各個(gè)地方出現(xiàn)的短語(yǔ)“一個(gè)實(shí)施例”或“實(shí)施例”并不一定均指同一個(gè)實(shí)施例。
此外,所描述的特征、結(jié)構(gòu)或特性可以任何其他合適的方式結(jié)合到一個(gè)或多個(gè)實(shí)施例中。在上面的描述中,提供一些具體的細(xì)節(jié),例如材料等,以提供對(duì)本發(fā)明的實(shí)施例的全面理解。然而,相關(guān)領(lǐng)域的技術(shù)人員將明白,本發(fā)明無(wú)需上述一個(gè)或多個(gè)具體的細(xì)節(jié)便可實(shí)現(xiàn),或者也可采用其它方法、組件、材料等實(shí)現(xiàn)。在其它示例中,周知的結(jié)構(gòu)、材料或操作并未詳細(xì)示出或描述以免模糊本發(fā)明的各個(gè)方面。
雖然上述示例用于說(shuō)明本發(fā)明在一個(gè)或多個(gè)應(yīng)用中的原理,但對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),在不背離本發(fā)明的原理和思想的情況下,明顯可以在形式上、用法及實(shí)施的細(xì)節(jié)上作各種修改而不用付出創(chuàng)造性勞動(dòng)。因此,本發(fā)明由所附的權(quán)利要求書(shū)來(lái)限定。