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