處理多租戶(hù)數(shù)據(jù)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別涉及處理多租戶(hù)數(shù)據(jù)的方法。
【背景技術(shù)】
[0002]多租戶(hù)技術(shù)(mult1-tenancy technology)或稱(chēng)多重租賃技術(shù),是一種軟件架構(gòu)技術(shù),它是在探討與實(shí)現(xiàn)如何于多用戶(hù)的環(huán)境下共用相同的系統(tǒng)或程序組件,并且仍可確保各用戶(hù)間數(shù)據(jù)的隔離性。
[0003]多租戶(hù)技術(shù)在數(shù)據(jù)存儲(chǔ)方面有三種主要方案:獨(dú)立數(shù)據(jù)庫(kù),共享數(shù)據(jù)庫(kù)共享表,共享數(shù)據(jù)庫(kù)單獨(dú)表。其中,共享數(shù)據(jù)庫(kù)共享表模式,即多個(gè)用戶(hù)共享一個(gè)數(shù)據(jù)庫(kù),多個(gè)用戶(hù)共享一個(gè)表。這種數(shù)據(jù)存儲(chǔ)模式使得維護(hù)和購(gòu)置成本低,允許每個(gè)數(shù)據(jù)庫(kù)支持的租戶(hù)數(shù)量多,由于僅有一個(gè)表,因此易于進(jìn)行跨租戶(hù)的管理操作;然而,隨著用戶(hù)數(shù)據(jù)量增加到一個(gè)很大的數(shù)量,特別是多個(gè)表單或多個(gè)應(yīng)用存儲(chǔ)在一個(gè)表的情況,就會(huì)出現(xiàn)存儲(chǔ)越來(lái)越慢,影響數(shù)據(jù)處理的效率。
【發(fā)明內(nèi)容】
[0004]為解決上述技術(shù)問(wèn)題,本發(fā)明采用如下技術(shù)方案:一種處理多租戶(hù)數(shù)據(jù)的方法,多租戶(hù)數(shù)據(jù)存于數(shù)據(jù)共享表中,包括:
[0005]監(jiān)測(cè)各數(shù)據(jù)共享表是否達(dá)到預(yù)設(shè)容量閾值;
[0006]如果是,則將關(guān)系數(shù)據(jù)組遷至其他數(shù)據(jù)共享表并更新關(guān)系映射表;
[0007]其中,所述關(guān)系映射表,指反映數(shù)據(jù)共享表中關(guān)系數(shù)據(jù)組數(shù)據(jù)對(duì)應(yīng)含義的列表。
[0008]第一種可能的實(shí)現(xiàn)方式中,所述關(guān)系數(shù)據(jù)組為數(shù)據(jù)共享表中數(shù)據(jù)容量最大的關(guān)系數(shù)據(jù)組。
[0009]優(yōu)選的,第一種可能的實(shí)現(xiàn)方式中第一實(shí)現(xiàn)方法,所述將數(shù)據(jù)容量最大的關(guān)系數(shù)據(jù)組遷至其他數(shù)據(jù)共享表并更新關(guān)系映射表包括:
[0010]比較數(shù)據(jù)容量最大的關(guān)系數(shù)據(jù)組是否小于其他的數(shù)據(jù)共享表余量;
[0011]如果是,則將容量最大的關(guān)系數(shù)據(jù)組遷至其中一數(shù)據(jù)共享表并更新關(guān)系映射表;
[0012]如果否,則將容量最大的關(guān)系數(shù)據(jù)組遷至新建的數(shù)據(jù)共享表中并更新關(guān)系映射表;
[0013]所述數(shù)據(jù)共享表余量,指預(yù)設(shè)容量閾值與數(shù)據(jù)共享表已有數(shù)據(jù)容量的差額。
[0014]優(yōu)選的,第一種可能的實(shí)現(xiàn)方式中第二實(shí)現(xiàn)方法,所述將數(shù)據(jù)容量最大的關(guān)系數(shù)據(jù)組遷至其他數(shù)據(jù)共享表并更新關(guān)系映射表包括:
[0015]將數(shù)據(jù)容量最大的關(guān)系數(shù)據(jù)組遷至新建的數(shù)據(jù)共享表中并更新關(guān)系映射表。
[0016]第二種可能的實(shí)現(xiàn)方式中,所述關(guān)系數(shù)據(jù)組為數(shù)據(jù)共享表中活躍度最高的關(guān)系數(shù)據(jù)組;其中,所述活躍度,指關(guān)系數(shù)據(jù)組一定時(shí)期的數(shù)據(jù)增長(zhǎng)率。
[0017]優(yōu)選的,第二種可能的實(shí)現(xiàn)方式中第一實(shí)現(xiàn)方法,所述將活躍度最高的關(guān)系數(shù)據(jù)組遷至其他數(shù)據(jù)共享表并更新關(guān)系映射表包括:
[0018]比較活躍度最高的關(guān)系數(shù)據(jù)組數(shù)據(jù)容量是否小于其他的數(shù)據(jù)共享表余量;
[0019]如果是,則將活躍度最高的關(guān)系數(shù)據(jù)組遷至其中一數(shù)據(jù)共享表并更新關(guān)系映射表;
[0020]如果否,則將活躍度最高的關(guān)系數(shù)據(jù)組遷至新建的數(shù)據(jù)共享表中并更新關(guān)系映射表;
[0021]所述數(shù)據(jù)共享表余量,指預(yù)設(shè)容量閾值與數(shù)據(jù)共享表已有數(shù)據(jù)容量的差額。
[0022]優(yōu)選的,第二種可能的實(shí)現(xiàn)方式中第二實(shí)現(xiàn)方法,所述將活躍度最高的關(guān)系數(shù)據(jù)組遷至其他數(shù)據(jù)共享表并更新關(guān)系映射表包括:
[0023]將活躍度最高的關(guān)系數(shù)據(jù)組遷至新建的數(shù)據(jù)共享表中并更新關(guān)系映射表。
[0024]第三種可能的實(shí)現(xiàn)方式中,所述關(guān)系數(shù)據(jù)組為數(shù)據(jù)共享表中活躍度最低的關(guān)系數(shù)據(jù)組;所述活躍度,是指關(guān)系數(shù)據(jù)組一定時(shí)期的數(shù)據(jù)增長(zhǎng)率。
[0025]優(yōu)選的,第三種可能的實(shí)現(xiàn)方式中第一實(shí)現(xiàn)方法,所述將活躍度最低的關(guān)系數(shù)據(jù)組遷至其他數(shù)據(jù)共享表并更新關(guān)系映射表包括:
[0026]比較活躍度最低的關(guān)系數(shù)據(jù)組數(shù)據(jù)容量是否小于其他的數(shù)據(jù)共享表余量;
[0027]如果是,則將活躍度最低的關(guān)系數(shù)據(jù)組遷至其中一數(shù)據(jù)共享表并更新關(guān)系映射表;
[0028]如果否,則將活躍度最低的關(guān)系數(shù)據(jù)組遷至新建的數(shù)據(jù)共享表中并更新關(guān)系映射表;
[0029]所述數(shù)據(jù)共享表余量,指預(yù)設(shè)容量閾值與數(shù)據(jù)共享表已有數(shù)據(jù)容量的差額。
[0030]優(yōu)選的,第三種可能的實(shí)現(xiàn)方式中第二實(shí)現(xiàn)方法,所述將活躍度最低的關(guān)系數(shù)據(jù)組遷至其他數(shù)據(jù)共享表并更新關(guān)系映射表包括:
[0031]將活躍度最低的關(guān)系數(shù)據(jù)組遷至新建的數(shù)據(jù)共享表中并更新關(guān)系映射表。
[0032]優(yōu)選的,所述容量為數(shù)據(jù)筆數(shù)。
[0033]優(yōu)選的,所述容量為數(shù)據(jù)量大小。
[0034]本發(fā)明的有益效果是:通過(guò)設(shè)定閾值,監(jiān)測(cè)每個(gè)數(shù)據(jù)共享表的數(shù)據(jù)容量,再通過(guò)遷移關(guān)系數(shù)據(jù)組數(shù)據(jù),使得每個(gè)數(shù)據(jù)共享表的數(shù)據(jù)量保持在優(yōu)化的狀態(tài),大大提高了數(shù)據(jù)存儲(chǔ)效率。特別是對(duì)于自定義表單或應(yīng)用的情況,無(wú)法預(yù)測(cè)每個(gè)數(shù)據(jù)共享表可以放多少個(gè)表單或應(yīng)用內(nèi)容以及表單或應(yīng)用的數(shù)據(jù)量或活躍度,該數(shù)據(jù)處理方法存儲(chǔ)效率優(yōu)于普通的數(shù)據(jù)表存儲(chǔ)。
【附圖說(shuō)明】
[0035]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0036]圖1為本發(fā)明所提供的處理多租戶(hù)數(shù)據(jù)的方法第一實(shí)施例的流程圖;
[0037]圖2為本發(fā)明所提供的處理多租戶(hù)數(shù)據(jù)的方法第二實(shí)施例的流程圖;
[0038]圖3為本發(fā)明所提供的處理多租戶(hù)數(shù)據(jù)的方法第三實(shí)施例的流程圖;
[0039]圖4為本發(fā)明所提供的處理多租戶(hù)數(shù)據(jù)的方法第四實(shí)施例的流程圖;
[0040]圖5為本發(fā)明所提供的處理多租戶(hù)數(shù)據(jù)的方法第五實(shí)施例的流程圖;
[0041]圖6為本發(fā)明所提供的處理多租戶(hù)數(shù)據(jù)的方法第六實(shí)施例的流程圖。
【具體實(shí)施方式】
[0042]下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。
[0043]圖1為本發(fā)明所提供的處理多租戶(hù)數(shù)據(jù)的方法第一實(shí)施例的流程圖。如圖1所示,該方法主要有以下步驟:
[0044]步驟101,監(jiān)測(cè)各數(shù)據(jù)共享表是否達(dá)到預(yù)設(shè)筆數(shù)閾值。
[0045]其中,筆數(shù)閾值是指數(shù)據(jù)共享表在達(dá)到該值后數(shù)據(jù)仍然可以正常存取,但是存取效率開(kāi)始變差。不同數(shù)據(jù)庫(kù)表的特性不同,同時(shí)考慮到配套硬件設(shè)施的承載能力,筆數(shù)閾值設(shè)置會(huì)存在差異。
[0046]根據(jù)數(shù)據(jù)庫(kù)共享表的特點(diǎn),定期對(duì)共享表進(jìn)行監(jiān)測(cè),例如每隔幾個(gè)小時(shí)監(jiān)測(cè)一次,或者每天凌晨的某個(gè)時(shí)間,或者每隔幾天等,以盡量不影響用戶(hù)數(shù)據(jù)操作為前提。
[0047]如果監(jiān)測(cè)到某數(shù)據(jù)共享表未達(dá)到預(yù)設(shè)的筆數(shù)閾值,則等待下一輪監(jiān)測(cè);
[0048]如果監(jiān)測(cè)到某數(shù)據(jù)共享表達(dá)到預(yù)設(shè)的筆數(shù)閾值,則執(zhí)行步驟102。
[0049]步驟102,數(shù)據(jù)筆數(shù)最多的關(guān)系數(shù)據(jù)組是否小于其他的數(shù)據(jù)共享表余量。
[0050]所述關(guān)系數(shù)據(jù)組為單個(gè)表單或應(yīng)用數(shù)據(jù)記錄在數(shù)據(jù)共享表中的集合,多個(gè)表單或應(yīng)用的數(shù)據(jù)可能存儲(chǔ)在同一數(shù)據(jù)共享表中,故有多個(gè)關(guān)系數(shù)據(jù)組。
[0051]所述數(shù)據(jù)共享表余量,指預(yù)設(shè)筆數(shù)閾值與數(shù)據(jù)共享表已有數(shù)據(jù)筆數(shù)的差額。
[0052]如果數(shù)據(jù)筆數(shù)最多的關(guān)系數(shù)據(jù)組小于數(shù)據(jù)庫(kù)其中某一數(shù)據(jù)共享表余量,則執(zhí)行步驟 103 ;
[0053]如果數(shù)據(jù)筆數(shù)最多的關(guān)系數(shù)據(jù)組不小于數(shù)據(jù)庫(kù)中任一數(shù)據(jù)共享表余量,則執(zhí)行步驟 104。
[0054]步驟103,將數(shù)據(jù)筆數(shù)最多的關(guān)系數(shù)據(jù)組遷至其中一數(shù)據(jù)共享表并更新關(guān)系映射表。
[0055]所述關(guān)系映射表,指反映數(shù)據(jù)共享表中關(guān)系數(shù)據(jù)組數(shù)據(jù)對(duì)應(yīng)含義的列表。關(guān)系數(shù)據(jù)組數(shù)據(jù)遷移,表單或應(yīng)用與數(shù)據(jù)共享表之間的對(duì)應(yīng)關(guān)系發(fā)生變化需要同時(shí)更新關(guān)系映射表。
[0056]數(shù)據(jù)筆數(shù)最多的關(guān)系數(shù)據(jù)組可能小于多個(gè)數(shù)據(jù)共享表余量,此種情形下,可隨機(jī)遷至其中一數(shù)據(jù)共享表,也可設(shè)定相應(yīng)的遷移規(guī)則,例如優(yōu)先遷至余量最大的共享表。
[0057]步驟104,將數(shù)據(jù)筆數(shù)最多的關(guān)系數(shù)據(jù)組遷至新建的數(shù)據(jù)共享表中并更新關(guān)系映射表。
[0058]圖2為本發(fā)明所提供的處理多租戶(hù)數(shù)據(jù)的方法第二實(shí)施例的流程圖,如圖2所示,第二實(shí)施例與第一實(shí)施例的不同之處在于,第二實(shí)施例中不再判斷數(shù)據(jù)筆數(shù)最多的關(guān)系數(shù)據(jù)組是否小于其他的數(shù)據(jù)共享表余量,而是直接將數(shù)據(jù)筆數(shù)最多的關(guān)系數(shù)據(jù)組遷至新建的數(shù)據(jù)共享表并更新關(guān)系映射表。
[0059]其中,第一實(shí)施例和第二實(shí)施例中監(jiān)測(cè)各數(shù)據(jù)共享表是否達(dá)到預(yù)設(shè)筆數(shù)閾值,也可以采用監(jiān)測(cè)各數(shù)據(jù)共享表是否達(dá)到預(yù)設(shè)數(shù)據(jù)量閾值,然后在接下來(lái)的步驟中有關(guān)數(shù)據(jù)筆數(shù)的操作替換為有關(guān)數(shù)據(jù)量的操作,由此衍生出兩個(gè)新的實(shí)施例。
[0060]圖3為本發(fā)明所提供的處理多租戶(hù)數(shù)據(jù)的方法第三實(shí)施例的流程圖,如圖3所示,該方法主要有以下步驟:
[0061]步驟301,監(jiān)測(cè)各數(shù)據(jù)共享表是否達(dá)到預(yù)設(shè)筆數(shù)閾值。
[0062]其中,筆數(shù)閾值是指數(shù)據(jù)共享表在達(dá)到該值后數(shù)據(jù)仍然可以正常存取,但是存取效率開(kāi)始變差。不同數(shù)據(jù)庫(kù)表的特性不同,同時(shí)考慮到配套硬件設(shè)施的承載能力,筆數(shù)閾值設(shè)置會(huì)存在差異。
[0063]根據(jù)數(shù)據(jù)庫(kù)共享表的特點(diǎn),定期對(duì)共享表進(jìn)行監(jiān)測(cè),例如每隔幾個(gè)小時(shí)監(jiān)測(cè)一次,或者每天凌晨的某個(gè)時(shí)間,或者每隔幾天等,以盡量不影響用戶(hù)數(shù)據(jù)操作為前提。
[0064]如果監(jiān)測(cè)到某數(shù)據(jù)共享表未達(dá)到