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

用于在多租戶應(yīng)用系統(tǒng)中處理物化表的裝置的制作方法

文檔序號(hào):6607183閱讀:251來(lái)源:國(guó)知局
專利名稱:用于在多租戶應(yīng)用系統(tǒng)中處理物化表的裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及多租戶應(yīng)用,尤其涉及多租戶應(yīng)用中數(shù)據(jù)庫(kù)的管理,更具體來(lái)說(shuō),涉及一種用于在多租戶應(yīng)用系統(tǒng)中處理物化表的裝置。
背景技術(shù)
多租戶應(yīng)用系統(tǒng),通過(guò)多租戶MT(Multi-Tenancy)技術(shù),向軟件的用戶提供多租戶應(yīng)用,即在服務(wù)提供商的服務(wù)器上運(yùn)行軟件應(yīng)用程序的單個(gè)實(shí)例,為多個(gè)租戶(例如企業(yè)之類的組織)提供軟件應(yīng)用服務(wù),由此能夠降低軟件應(yīng)用程序的開(kāi)發(fā)、部署和運(yùn)行的費(fèi)用。數(shù)據(jù)庫(kù)是一種系統(tǒng)化的數(shù)據(jù)組織,用于對(duì)數(shù)據(jù)進(jìn)行有效而可靠的存儲(chǔ)、檢索和處理。數(shù)據(jù)庫(kù)由表組成,表中有一行一行的關(guān)聯(lián)數(shù)據(jù)。對(duì)數(shù)據(jù)的訪問(wèn)和操作是通過(guò)查詢 (query)完成的?;緮?shù)據(jù)庫(kù)是一種數(shù)據(jù)庫(kù),顧名思義,基本數(shù)據(jù)庫(kù)中含有基本數(shù)據(jù)。例如,用于商店每日的銷售數(shù)據(jù)的數(shù)據(jù)庫(kù),包括商品、銷售數(shù)量、售價(jià)、售出時(shí)間。根據(jù)基本數(shù)據(jù)庫(kù),就可以進(jìn)行數(shù)據(jù)分析。例如,從商品的角度,計(jì)算出每一種商品每天的銷售總量;隨著時(shí)間的推移,計(jì)算出每一種商品每個(gè)月的銷售總量,計(jì)算出每一種商品每年的銷售總量。在本發(fā)明的上下文中,基本數(shù)據(jù)庫(kù)也被稱作基表BT (Basic Table)。由基表可以創(chuàng)建物化視圖MV(materialized View),亦稱物化表。物化表也是一種數(shù)據(jù)庫(kù),可以存儲(chǔ)從基表導(dǎo)出的中間數(shù)據(jù),例如上文所述的商品月銷售總量。使用物化表進(jìn)行查詢,能利用物化表中的中間數(shù)據(jù),可以減少?gòu)?fù)雜的查詢所需的計(jì)算量,所以可以提高查詢的效率。在大規(guī)模的多租戶應(yīng)用系統(tǒng)中,廣泛采用物化表來(lái)提高數(shù)據(jù)查詢操作的效率。在這種情況下,多個(gè)租戶共享一個(gè)或多個(gè)基表以及與基表對(duì)應(yīng)的物化表,通常在基表和物化表中用租戶標(biāo)識(shí)符來(lái)區(qū)分?jǐn)?shù)據(jù)所屬的租戶。在數(shù)據(jù)庫(kù)對(duì)物化表的設(shè)計(jì)中,基表與物化表之間,必須保持?jǐn)?shù)據(jù)同步。當(dāng)對(duì)基表進(jìn)行增、刪、改等操作時(shí),物化表需要刷新同步后才能被查詢和檢索,當(dāng)物化表在刷新同步的過(guò)程中,物化表會(huì)被鎖定,這時(shí),用戶的SQL查詢將不能利用物化表。例如,當(dāng)在基表中增加新的一天的商品的銷售總量數(shù)據(jù)時(shí),對(duì)應(yīng)的物化表不能用,因?yàn)槲锘碇械纳唐返脑落N售量尚未反映新增加的一天的商品銷售總量,如果使用物化表中的數(shù)據(jù),結(jié)果是錯(cuò)誤的。當(dāng)對(duì)基表進(jìn)行增、刪、改等操作后,物化表必須在其數(shù)據(jù)與修改后的基表的數(shù)據(jù)同步化后,才能被使用,例如,根據(jù)變化了的基表,重新導(dǎo)出或生成物化表,使物化表的商品月銷售總量包括新增加的一天的銷售總量。在采用物化表的多租戶應(yīng)用系統(tǒng)中,不同的租戶對(duì)共享的基表可能有不同的更新模式--例如在不同的時(shí)間和/或以不同的頻率對(duì)基表進(jìn)行數(shù)據(jù)的增、刪、改等更新操作。 如果共用基表和物化表的租戶很多,則在任何時(shí)候,都可能有租戶在對(duì)公用的一個(gè)或多個(gè)基表進(jìn)行更新操作。由于物化表對(duì)應(yīng)多個(gè)基表,從物化表的角度來(lái)看,基表的更新率總是很高。結(jié)果,物化表的刷新機(jī)率很大,被鎖定的頻率也很高,這使得租戶幾乎不可能使用物化表來(lái)提高查詢效率,從而影響租戶的業(yè)務(wù)操作的速度。

發(fā)明內(nèi)容
發(fā)明人發(fā)現(xiàn),對(duì)于有些租戶群來(lái)說(shuō),他們的對(duì)基表的更新模式在一定程度上具有一致性或相似性。據(jù)此,本發(fā)明提出按照租戶的更新模式的相似性構(gòu)造MV,使更新模式一致或相似租戶共享同一個(gè)MV。一旦發(fā)生對(duì)基表的大規(guī)模更新,就暫時(shí)禁用(disable)對(duì)應(yīng)的 MV,而直接使用基表,直到對(duì)應(yīng)的MV與基表重新同步。按照本發(fā)明的一個(gè)方面,提供一種用于在多租戶應(yīng)用系統(tǒng)中處理物化表的裝置, 其中,在所述多租戶應(yīng)用系統(tǒng)中,多個(gè)租戶共享一個(gè)或多個(gè)基表,該裝置包含更新模式分析器,用于根據(jù)多個(gè)租戶的數(shù)據(jù)訪問(wèn)歷史信息,分析所述多個(gè)租戶對(duì)所述一個(gè)或多個(gè)基表的更新的模式的相似程度;租戶分組器,用于按照更新模式分析器的所分析的相似程度,將所述多個(gè)租戶劃分為多個(gè)租戶分組;物化表構(gòu)造器,用于根據(jù)租戶分組器劃分的租戶分組,由所述一個(gè)或多個(gè)基表構(gòu)造租戶分組物化表。按照本發(fā)明的另一個(gè)方面,提供一種用于在多租戶應(yīng)用系統(tǒng)中處理物化表的方法,其中,在所述多租戶應(yīng)用系統(tǒng)中,多個(gè)租戶共享一個(gè)或多個(gè)基表,該方法包含根據(jù)多個(gè)租戶的數(shù)據(jù)訪問(wèn)歷史信息,分析所述多個(gè)租戶對(duì)所述一個(gè)或多個(gè)基表的更新的模式的相似程度;按照所分析的相似程度,將所述多個(gè)租戶劃分為多個(gè)租戶分組; 根據(jù)租戶分組器劃分的租戶分組,由所述一個(gè)或多個(gè)基表構(gòu)造租戶分組物化表。


所附權(quán)利要求中闡述了被認(rèn)為是本發(fā)明的特點(diǎn)的創(chuàng)造性特征。但是,通過(guò)參照附圖閱讀下面對(duì)示例性實(shí)施例的詳細(xì)說(shuō)明可更好地理解發(fā)明本身以及其使用模式、另外的目標(biāo)、特征以及優(yōu)點(diǎn),在附圖中圖1示例性表示基表與物化表的關(guān)系;圖2示意性表示一種可在其中實(shí)施本發(fā)明實(shí)施例的多租戶應(yīng)用系統(tǒng)的體系結(jié)構(gòu);圖3A表示可在圖2A的體系結(jié)構(gòu)中實(shí)現(xiàn)的按照本發(fā)明實(shí)施例的裝置和系統(tǒng);圖;3B示意性表示按照本發(fā)明實(shí)施例構(gòu)造的租戶分組物化表與基表的關(guān)系;
圖4A和4B示例性地表示反映租戶的更新模式的數(shù)據(jù)和圖表;圖5A和5B示例性地表示對(duì)圖4A的數(shù)據(jù)作進(jìn)一步處理后得到的數(shù)據(jù)和圖表;圖6A和6B示例性地對(duì)圖4A和4B數(shù)據(jù)和圖表的處理;圖7示意性表示作為歷史信息源的部分日志內(nèi)容;圖8示例性地表示按照本發(fā)明實(shí)施例的方法的總體流程圖。
具體實(shí)施例方式下面參照附圖來(lái)說(shuō)明本發(fā)明的實(shí)施例。在下面的說(shuō)明中,闡述了許多具體細(xì)節(jié)以便更全面地了解本發(fā)明。但是,對(duì)于本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員很明顯,本發(fā)明的實(shí)現(xiàn)可不具有這些具體細(xì)節(jié)。此外,應(yīng)當(dāng)理解的是,本發(fā)明并不限于所介紹的特定實(shí)施例。相反,可以考慮用下面的特征和元素的任意組合來(lái)實(shí)施和實(shí)踐本發(fā)明。而無(wú)論它們是否涉及不同的實(shí)施例。因此,下面的方面、特征、實(shí)施例和優(yōu)點(diǎn)僅作說(shuō)明之用而不應(yīng)被看作是所附權(quán)利要求的要素或限定,除非權(quán)利要求中明確提出。參看圖1,該圖示例性地表示基表與物化表的關(guān)系。圖1中左側(cè)表示基表BT,右側(cè)表示基表對(duì)應(yīng)的物化表MVO。圖1中例示了三個(gè)基表,即“EMPLOYEE” (職員)、“SALARY”(工資)、 “SALARYITEM” (工資項(xiàng))。基表“EMPLOYEE”的屬性包括主鍵EMP_ID (職員標(biāo)識(shí))和NAME (姓名)。基表“SALARY”的屬性包括主鍵SAL_ID (工資標(biāo)識(shí))、外鍵EMP_ID (職員標(biāo)識(shí))和 MONTH(月份)?;怼癝ALARYITEM”的屬性包括主鍵SI_ID(工資項(xiàng)標(biāo)識(shí))、外鍵SAL_ID(工資標(biāo)識(shí))、WORKITEM(工作項(xiàng))、WORKTIME (工作時(shí)間)和INCOME (收入)。三個(gè)基表之間可以通過(guò)主外鍵相關(guān)聯(lián)。例如,基表“EMPLOYEE”與基表“SALARY” 之間,通過(guò)基表“EMPLOYEE”的主鍵(PK)EMP_ID與基表“SALARY”的外鍵(H()EMP_ID關(guān)聯(lián); 同樣,基表“SALARY”與基表“SALARYITEM”之間,通過(guò)基表“SALARY”的主鍵(PK) SAL_ID 與基表“SALARYITEM”的外鍵(FK) SAL_ID關(guān)聯(lián),由此,三個(gè)基表“EMPLOYEEL”、"SALARY,,和 “SALARYITEM”之間就能實(shí)現(xiàn)關(guān)聯(lián)。通過(guò)這種關(guān)聯(lián),可以構(gòu)造物化表。數(shù)據(jù)庫(kù)模式定義語(yǔ)言DDL (Data Definition Language),是用于描述數(shù)據(jù)庫(kù)中要存儲(chǔ)的現(xiàn)實(shí)世界實(shí)體的語(yǔ)言。數(shù)據(jù)庫(kù)系統(tǒng)通常用DDL腳本(script)來(lái)構(gòu)造物化表。以下是為上述三個(gè)基表EMPLOYEE、SALARY、SALARYITEM創(chuàng)建一個(gè)名稱為EMPL_ SALARY的物化表MVO的DDL腳本的例子。CREATE TABLE EMPL_SALARY AS (SELECT Ε. NAME, S. MONTH, AMOUNT(I. INCOME), AMOUNT(I. W0RKTIME) FROM EMPLOYEE E,SALARY S,SALARYITEM I WHERE E. EMP_ID = S. EMP_ ID AND S. SAL_ID = I. SAL_ID)DATA INITIALLY DEFERRED REFRESH DEFERRED。所構(gòu)造的物化表MVO如圖1右側(cè)所示。該物化表包含以下屬性NAME,MONTH, AMOUNT (I. INCOME),AMOUNT (I. WORKTIME)(圖中未予示出),其中,AMOUNT (I. INCOME)表示收入總計(jì),AMOUNT (I. W0RKTIME)表示工作時(shí)間總計(jì),因此,該物化表的內(nèi)容包含是某人 (NAME)某月(MONTH)的收入總計(jì)和工作時(shí)間總計(jì)。圖2示意性表示一種多租戶MT應(yīng)用系統(tǒng)的體系結(jié)構(gòu),本發(fā)明的各種實(shí)施例可在這種體系結(jié)構(gòu)中實(shí)現(xiàn)。如圖2所示的體系結(jié)構(gòu)包含服務(wù)器21、訪問(wèn)路由器22、存儲(chǔ)多租戶 (MT)應(yīng)用數(shù)據(jù)的數(shù)據(jù)庫(kù)23、存儲(chǔ)多租戶(MT)元數(shù)據(jù)的儲(chǔ)存庫(kù)M。其中,數(shù)據(jù)庫(kù)23包含由多租戶應(yīng)用的多個(gè)租戶Tl、T2. . . Tn共享的基表BT和對(duì)應(yīng)的物化表MV。用于構(gòu)造物化表DDL腳本,也可存儲(chǔ)在例如數(shù)據(jù)庫(kù)23中(未予示出)。當(dāng)多租戶應(yīng)用系統(tǒng)的多個(gè)租戶T1、T2. . . Tn中的某個(gè)租戶Tn通過(guò)多租戶應(yīng)用發(fā)出涉及訪問(wèn)數(shù)據(jù)庫(kù)的請(qǐng)求時(shí),訪問(wèn)路由器22根據(jù)儲(chǔ)存庫(kù)M中的元數(shù)據(jù),將該租戶的請(qǐng)求路由到服務(wù)器21,以執(zhí)行所請(qǐng)求的服務(wù)。租戶發(fā)出的涉及訪問(wèn)數(shù)據(jù)庫(kù)的請(qǐng)求,可以是對(duì)數(shù)據(jù)庫(kù)23的內(nèi)容的查詢。對(duì)于復(fù)雜的SQL查詢,服務(wù)器根據(jù)租戶的身份,判斷是否存在該租戶的查詢請(qǐng)求可用的物化表。如果存在,服務(wù)器在物化表MV上執(zhí)行查詢,否則,服務(wù)器就在基表BT中執(zhí)行查詢。如果租戶的請(qǐng)求屬于僅需要基表中的基本數(shù)據(jù)的簡(jiǎn)單查詢,服務(wù)器只需在租戶共享的基表BT上執(zhí)行查詢。租戶發(fā)出的涉及訪問(wèn)數(shù)據(jù)庫(kù)的請(qǐng)求,也可以是對(duì)數(shù)據(jù)庫(kù)23的內(nèi)容的更新。服務(wù)器將按照請(qǐng)求,對(duì)基表BT進(jìn)行更新操作,例如進(jìn)行對(duì)基表中的數(shù)據(jù)進(jìn)行增、刪、改等操作。在服務(wù)器對(duì)基表進(jìn)行更新操作期間,對(duì)應(yīng)的物化表MV被鎖定,其它租戶都不能訪問(wèn)被鎖定的物化表。當(dāng)對(duì)基表的更新操作完成后,要將物化表與基表進(jìn)行同步。例如,刪除原來(lái)的物化表,然后基于更新后的基表創(chuàng)建或構(gòu)造新的物化表。服務(wù)器21進(jìn)行的操作,都被作為歷史信息保存起來(lái)。租戶對(duì)數(shù)據(jù)訪問(wèn)歷史,也是歷史信息的一部分。歷史信息的一個(gè)例子是系統(tǒng)的日志,例如,日志中記錄的租戶對(duì)數(shù)據(jù)訪問(wèn)的信息,包括操作的時(shí)間、涉及的租戶以及操作類型等等。圖3A表示按照本發(fā)明一個(gè)實(shí)施例的用于管理多租戶應(yīng)用中的物化表的系統(tǒng)。如圖3A所示的用于管理多租戶應(yīng)用中的物化表的系統(tǒng),包含了與圖2所示的體系結(jié)構(gòu)中的相同或相當(dāng)?shù)牟考绶?wù)器21、訪問(wèn)路由器22、數(shù)據(jù)庫(kù)23包含由多租戶應(yīng)用系統(tǒng)的多個(gè)租戶Tl、T2. . . Tn共享的基表BT的數(shù)據(jù)庫(kù)23、存儲(chǔ)多租戶(MT)元數(shù)據(jù)的儲(chǔ)存庫(kù)24。數(shù)據(jù)庫(kù)23中,還可以存儲(chǔ)與多個(gè)租戶T1、T2. . . Tn共享的基表BT對(duì)應(yīng)的物化表MV。同樣,服務(wù)器21進(jìn)行的操作,都被作為歷史信息保存起來(lái),例如被記錄在日志中。 例如,日志中記錄了租戶的數(shù)據(jù)訪問(wèn)的歷史信息,包括操作的時(shí)間、涉及的租戶以及操作類型等等。如上文結(jié)合圖2所述的那樣,物化表MV由多個(gè)租戶共享,并與一個(gè)或多個(gè)基表BT 相關(guān)聯(lián)。與圖2相比,圖3Α的系統(tǒng)還包含一個(gè)用于管理多租戶應(yīng)用中的物化表的裝置300, 該裝置300包含更新模式分析器35、租戶分組器36和物化表構(gòu)造器37。其中,更新模式分析器35用于根據(jù)多個(gè)租戶T1、T2. . . Tn的數(shù)據(jù)訪問(wèn)歷史信息,分析所述多個(gè)租戶對(duì)基表BT進(jìn)行更新的模式(本文中也簡(jiǎn)稱為“更新模式”或“租戶的更新模式”)的相似程度。后文將結(jié)合圖4Α和4Β,更詳細(xì)地說(shuō)明更新模式分析器35分析更新模式的相似程度的具體實(shí)施方式
。租戶分組器36用于按照更新模式分析器35所分析的相似程度,將多個(gè)租戶Tl、 Τ2. . . Tn劃分為多個(gè)租戶分組。例如,租戶分組器36將多個(gè)租戶劃分為兩個(gè)租戶分組TGl和TG2 (圖3Α中未予示出),其中,租戶分組TGl中包含的各個(gè)租戶,具有互相相似的更新模式;租戶分組TG2中包含的各個(gè)租戶,具有互相相似的更新模式。當(dāng)然,租戶分組器36可以根據(jù)具體情況,將多個(gè)租戶劃分為兩個(gè)以上的租戶分組。物化表構(gòu)造器37,用于根據(jù)租戶分組器36劃分的租戶分組,構(gòu)造租戶分組物化表。例如,租戶分組器36將多個(gè)租戶劃分為兩個(gè)租戶分組TGl和TG2,則物化表構(gòu)造器 37根據(jù)這樣的劃分,由基表BT構(gòu)造兩個(gè)租戶分組物化表MVl和MV2,如圖所示。這兩個(gè)租戶分組物化表MVl和MV2,分別對(duì)應(yīng)于對(duì)應(yīng)于租戶分組TG 1和TG2。
租戶分組物化表MVl和MV2與物化表MV的結(jié)構(gòu)相同,只是內(nèi)容因租戶分組的不同而異。例如,租戶分組物化表MVl只含有與租戶分組TGl中的租戶有關(guān)的數(shù)據(jù)。后文將結(jié)合圖6A和6B進(jìn)一步說(shuō)明物化表構(gòu)造器37根據(jù)租戶分組構(gòu)造租戶分組 MV的具體實(shí)施方式
。按照本發(fā)明的一個(gè)實(shí)施例,用于管理多租戶應(yīng)用中的物化表的裝置進(jìn)一步包含物化表調(diào)度器38。物化表調(diào)度器38用于基于租戶對(duì)基表的更新情況,確定啟用還是禁用對(duì)應(yīng)的租戶分組物化表。按照本發(fā)明的一個(gè)實(shí)施例,物化表調(diào)度器基于當(dāng)前將有多個(gè)租戶中至少一個(gè)租戶對(duì)基表的大規(guī)模更新的判斷,確定禁用該租戶所屬租戶分組的租戶分組物化表。就是說(shuō),物化表調(diào)度器38如果判斷當(dāng)前將要發(fā)生租戶對(duì)基表的大規(guī)模更新,則將該租戶所屬租戶分組的租戶分組物化表的狀態(tài)由“啟用”標(biāo)記為“禁用”。按照本發(fā)明的另一個(gè)實(shí)施例,在多個(gè)租戶中至少一個(gè)租戶對(duì)基表的大規(guī)模更新后,物化表調(diào)度器確定啟用通過(guò)物化表構(gòu)造器構(gòu)造的該租戶所屬租戶分組的租戶分組物化表。就是說(shuō),物化表調(diào)度器38在發(fā)生租戶對(duì)基表的大規(guī)模更新后,通過(guò)物化表構(gòu)造器37構(gòu)造該租戶所屬租戶分組的租戶分組物化表以替代被禁用的租戶分組物化表,并將新構(gòu)造的租戶分組物化表的狀態(tài)由“禁用”標(biāo)記為“啟用”。按照本發(fā)明,多租戶應(yīng)用系統(tǒng)的訪問(wèn)路由器22可以響應(yīng)于來(lái)自租戶的數(shù)據(jù)訪問(wèn)請(qǐng)求,例如SQL請(qǐng)求,根據(jù)多租戶元數(shù)據(jù)中存儲(chǔ)的分組與租戶分組物化表的對(duì)應(yīng)關(guān)系,將該 SQL請(qǐng)求路由到與該租戶所屬租戶分組的租戶分組物化表?,F(xiàn)在結(jié)合圖4A和4B,更詳細(xì)地說(shuō)明更新模式分析器35分析更新模式的相似程度的具體實(shí)施方式
。發(fā)明人發(fā)現(xiàn),對(duì)于有些租戶群來(lái)說(shuō),他們的更新模式具有一定的相似性。按照本發(fā)明的一個(gè)實(shí)施例,更新模式分析器35所分析的更新模式的相似程度,包括對(duì)物化表的關(guān)聯(lián)基表的記錄進(jìn)行刪除、插入或重寫操作的時(shí)間的相近度。換言之,在該實(shí)施例中,更新的模式,就是對(duì)物化表的關(guān)聯(lián)基表的記錄進(jìn)行刪除、 插入或重寫操作的模式,包括對(duì)物化表的關(guān)聯(lián)基表的記錄進(jìn)行刪除、插入或重寫操作的時(shí)機(jī)。參看圖4A,該圖以表格的形式示意性地表示不同租戶對(duì)圖1所示的基表BT的更新模式。圖4A中第一列的Tl、T2. . . TlO表示不同的租戶,第一行的1、2. . . 15表示不同的時(shí)間(或時(shí)間段),這里假設(shè)分別表示每月的第1天、第2天...第15天。除第1行和第1 列外的每個(gè)單元,表示某租戶在某天對(duì)基表BT( “EMPLOYEE” “SALARY”或“SALARY ITEM”) 的更新次數(shù)。例如,如第2列所示,在第2天,租戶T5進(jìn)行了 320次更新,租戶TlO進(jìn)行了 110次更新,其余租戶在第2天沒(méi)有進(jìn)行更新。從表1中還可以看出,租戶T7與租戶T9,均在第9天進(jìn)行大量的更新,租戶T4和租戶T8均在第12天進(jìn)行大量的更新。租戶Tl、T2. . . TlO的更新模式,也可以用圖4B的圖表來(lái)表示。圖4B的橫座標(biāo)表示時(shí)間,縱坐標(biāo)表示更新次數(shù)。圖4B的圖表可以由圖4A所示的表格中的數(shù)據(jù)導(dǎo)出,從中可以直觀地觀察租戶的更新在時(shí)間上的分布。
從圖4B可以直觀地看出,租戶T5和租戶TlO對(duì)應(yīng)的曲線在時(shí)間2上重疊,這表明租戶T5和租戶TlO均在第2天進(jìn)行了大量的更新,因此,就更新時(shí)間而言,租戶T5和租戶 TlO的更新模式是相似的,或者具有較高的相似度。同樣,租戶T7和租戶T9的更新模式具有較高的相似度,租戶T4和租戶T8的更新模式具有較高的相似度,租戶Tl和租戶T2的更新模式具有較高的相似度。按照本發(fā)明的一個(gè)實(shí)施例,更新模式分析器35分析更新模式的相似程度所基于的數(shù)據(jù)訪問(wèn)歷史信息,是從日志中記錄的租戶的數(shù)據(jù)訪問(wèn)操作的信息中獲得的。例如,圖4A所示的數(shù)據(jù),就可以從租戶以往對(duì)數(shù)據(jù)庫(kù)(基表、物化表)的操作的歷史信息中收集。后文將結(jié)合圖7,更詳細(xì)地說(shuō)明從計(jì)算機(jī)系統(tǒng)的日志中收集這些數(shù)據(jù)的具體實(shí)施方式
。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,根據(jù)這些數(shù)據(jù),有各種方式可以分析租戶的更新模式的相似程度。如上文結(jié)合圖3A所述的那樣,本發(fā)明的租戶分組器36于是可以根據(jù)多個(gè)租戶對(duì)與物化表的關(guān)聯(lián)基表的更新模式的相似程度,將多個(gè)租戶劃分為多個(gè)租戶分組,如圖6A所
7J\ ο例如,租戶Tl-TlO被劃分為六個(gè)分組TG1-TG6,租戶Tl、T2被劃分在租戶分組 TG1,租戶T5、T10被劃分在租戶分組TG2,租戶Τ4、Τ8被劃分在租戶分組TG3,租戶Τ7、Τ9被劃分在租戶分組TG4,租戶分組TG5只包含租戶Τ5,租戶分組TG6只包含租戶Τ6。圖6Α還表示,與租戶分組TG1-TG6相對(duì)應(yīng),在第13天、第2天、第12天、第9天、第5天和第6天, 分別發(fā)生了對(duì)基表的大規(guī)模更新。按照本發(fā)明的實(shí)施例,租戶分組器36可以將如圖6Α所示的關(guān)于租戶與租戶分組的對(duì)應(yīng)關(guān)系和/或大規(guī)模更新時(shí)間的信息,作為元數(shù)據(jù)的一部分,記錄在儲(chǔ)存庫(kù)M中。該信息可以由物化表構(gòu)造器37使用,也可以由訪問(wèn)路由器22使用。如上文結(jié)合圖3Α所述的那樣,本發(fā)明的物化表構(gòu)造器37于是可以根據(jù)租戶分組器36劃分的租戶分組,構(gòu)造出對(duì)應(yīng)的租戶分組物化表按照本發(fā)明的實(shí)施例,物化表構(gòu)造器37可以根據(jù)租戶分組,用DDL腳本構(gòu)造租戶分組物化表。例如,物化表構(gòu)造器37可以獲得預(yù)先定義的DDL腳本,例如上文結(jié)合圖1所述的 DDL腳本,用來(lái)自MV分組器36的或者從元數(shù)據(jù)中的租戶分組信息,修改DDL腳本,然后用修改后的DDL腳本為租戶分組構(gòu)造租戶分組物化表。例如,為包含租戶Tl和T2的租戶分組TGl創(chuàng)建租戶分組物化表EMPL_SALARY_ TG1,可以用以下修改后的DDL腳本來(lái)實(shí)現(xiàn)。CREATE TABLE EMPL_SALARY AS (SELECT Ε. NAME, S. MONTH, AMOUNT(I. INCOME), AMOUNT(I. WORKTIME)FROM EMPLOYEE E,SALARY S,SALARYITEM I WHERE E. EMP_ID = S. EMP_ ID AND S. SAL_ID = I. SAL_ID)AND a. tenantID IN(‘T1,,‘T2,)AND c. t enantID IN(‘T1,, ‘T2,)DATA INITIALLY DEFERRED REFRESH DEFERRED上述對(duì)DDL腳本的修改,是增加了表示租戶分組TGl的成員租戶Tl和T2的代碼"AND a. tenantID IN( ‘T1,,‘T2,)AND c. tenantID IN( ‘Tl,,‘T2,)”,以使所構(gòu)造的租戶分組EMPL_SALARY_TG1只包含與租戶分組TGl的成員租戶Tl和T2相關(guān)聯(lián)的數(shù)據(jù)。再如,以下是為包含租戶T5和TlO的租戶分組TG2創(chuàng)建租戶分組物化表EMPL_ SALARY_TG2的代碼實(shí)現(xiàn)。CREATE TABLE EMPL_SALARY AS (SELECT Ε. NAME, S. MONTH, AMOUNT(I. INCOME), AMOUNT(I. WORKTIME)FROM EMPLOYEE E, SALARY S, SALARYITEM I WHERE E. EMP_ID = S.EMP_ID AND S.SAL_ID = I.SAL_ID)AND a.tenantID IN( ‘T5,,,T10,)AND c.tenantID IN( ‘T5,,,T10,)DATA INITIALLY DEFERRED REFRESH DEFERRED其中,代碼‘‘ANDa. tenantID IN(‘T5,,‘T10,)AND c. tenantID IN(‘T5,,‘T10,),,, 表示所構(gòu)造的租戶分組EMPL_SALARY_TG2只包含與租戶分組TG 2的成員租戶T5和TlO相關(guān)聯(lián)的數(shù)據(jù)。 類似地,可以為其它租戶分組TG 3-TG6創(chuàng)建租戶分組物化表EMPL_SALARY_ TG3-EMPL_SALARY_TG6,這樣,就可以構(gòu)造出6個(gè)租戶分組物化表EMPL_SALARY_ TGI. . . EMPL_SALARY_TG6。如圖6B所示,這6個(gè)租戶分組物化表與6個(gè)租戶分組TGI. . . TG6 分別對(duì)應(yīng)。所屬技術(shù)領(lǐng)域的技術(shù)人員明白,所構(gòu)造的租戶分組物化表EMPL_SALARY_ TGI. . . EMPL_SALARY_TG6與物化表EMPL_SALARY,結(jié)構(gòu)相同,但是內(nèi)容不同,租戶分組物化表只涉及對(duì)應(yīng)的租戶分組中的租戶的內(nèi)容。例如,EMPL_SALARY_TG1只包含與Tl和T2相關(guān)的內(nèi)容。按照本發(fā)明的一個(gè)實(shí)施例,物化表構(gòu)造器37可以將如圖6B所示的租戶分組物化表與租戶分組物化表之間的對(duì)應(yīng)關(guān)系的信息,作為元數(shù)據(jù)的一部分,記錄在儲(chǔ)存庫(kù)M中。 該信息可以由物化表調(diào)度器38使用,也可以由訪問(wèn)路由器22使用。如圖6B所示的表中還有一欄標(biāo)題為“狀態(tài)”的數(shù)據(jù),用于表示相應(yīng)的租戶分組MV 的狀態(tài)。如果狀態(tài)為“啟用”,表明相應(yīng)的租戶分組MV已經(jīng)與其基表同步,是可用的。如果狀態(tài)為“禁用”,表明相應(yīng)的租戶分組MV是不可用的。按照本發(fā)明的一個(gè)實(shí)施例,構(gòu)造器37在新構(gòu)造一個(gè)租戶分組物化表后,將新構(gòu)造的租戶分組物化表的狀態(tài)設(shè)置為“啟用”,并將該狀態(tài)信息作為元數(shù)據(jù)的一部分,記錄在儲(chǔ)存庫(kù)M中。該信息可以由物化表調(diào)度器38使用,也可以由訪問(wèn)路由器22使用。如在前文結(jié)合圖3A所作的描述中所述,物化表調(diào)度器38用于基于租戶對(duì)基表的更新情況,確定啟用還是禁用對(duì)應(yīng)的租戶分組物化表。物化表調(diào)度器38可以在判斷當(dāng)前將要發(fā)生租戶對(duì)基表的大規(guī)模更新時(shí),將該租戶所屬租戶分組的租戶分組物化表的狀態(tài)由 “啟用”標(biāo)記為“禁用”;可以在發(fā)生租戶對(duì)基表的大規(guī)模更新后,通過(guò)物化表構(gòu)造器37構(gòu)造該租戶所屬租戶分組的租戶分組物化表以替代被禁用的租戶分組物化表,并新構(gòu)造的租戶分組物化表的狀態(tài)由“禁用”標(biāo)記為“啟用”。由物化表調(diào)度器38引起的對(duì)租戶分組物化表的狀態(tài)的改變,也可以作為元數(shù)據(jù)的一部分,記錄在儲(chǔ)存庫(kù)M中。以下更詳細(xì)地說(shuō)明分析租戶的更新模式的相似性的一個(gè)實(shí)施例。按照該實(shí)施例, 通過(guò)對(duì)例如圖4A所示的租戶更新基表的數(shù)據(jù)進(jìn)行歸一化處理,分析租戶的更新模式的相似性??梢愿鶕?jù)下述公式進(jìn)行所述歸一化處理,使得經(jīng)過(guò)歸一化處理后的每個(gè)租戶在特
10定時(shí)間的更新次數(shù)的最大值都是1,最小值都是0。
權(quán)利要求
1.一種用于在多租戶應(yīng)用系統(tǒng)中處理物化表的裝置,其中,在所述多租戶應(yīng)用系統(tǒng)中, 多個(gè)租戶共享一個(gè)或多個(gè)基表,該裝置包含更新模式分析器,用于根據(jù)多個(gè)租戶的數(shù)據(jù)訪問(wèn)歷史信息,分析所述多個(gè)租戶對(duì)所述一個(gè)或多個(gè)基表的更新的模式的相似程度;租戶分組器,用于按照更新模式分析器所分析得到的相似程度,將所述多個(gè)租戶劃分為多個(gè)租戶分組;物化表構(gòu)造器,用于根據(jù)租戶分組器劃分的租戶分組,基于所述一個(gè)或多個(gè)基表構(gòu)造租戶分組物化表。
2.權(quán)利要求1的裝置,進(jìn)一步包含物化表調(diào)度器,用于基于租戶對(duì)所述一個(gè)或多個(gè)基表的更新情況,確定啟用還是禁用對(duì)應(yīng)的租戶分組物化表。
3.權(quán)利要求2的裝置,其中,物化表調(diào)度器基于當(dāng)前將有多個(gè)租戶中至少一個(gè)租戶對(duì)基表的大規(guī)模更新的判斷,確定禁用該租戶所屬租戶分組的租戶分組物化表。
4.權(quán)利要求2的裝置,其中,在多個(gè)租戶中至少一個(gè)租戶對(duì)基表的大規(guī)模更新后,物化表調(diào)度器確定啟用通過(guò)物化表構(gòu)造器構(gòu)造的該租戶所屬租戶分組的租戶分組物化表。
5.權(quán)利要求1-4的任何之一的裝置,其中,所述更新的模式的相似程度,包括對(duì)物化表的關(guān)聯(lián)基表的記錄進(jìn)行刪除、插入或重寫操作的時(shí)間的相近度。
6.權(quán)利要求1-4的任何之一的裝置,其中,物化表構(gòu)造器利用DDL腳本構(gòu)造租戶分組物化表。
7.權(quán)利要求1-4的任何之一的裝置,其中,租戶分組器還用于在元數(shù)據(jù)中存儲(chǔ)以下的至少之一租戶和租戶分組的對(duì)應(yīng)關(guān)系;租戶的大規(guī)模更新時(shí)間。
8.權(quán)利要求2-4的任何之一的裝置,其中,物化表調(diào)度器還用于在元數(shù)據(jù)中存儲(chǔ)租戶分組物化表被啟用或禁用的信息。
9.權(quán)利要求1-4的任何之一的裝置,其中,所述數(shù)據(jù)訪問(wèn)歷史信息是所述多租戶應(yīng)用系統(tǒng)的日志中記錄的租戶的數(shù)據(jù)訪問(wèn)操作的信息。
10.一種用于在多租戶應(yīng)用系統(tǒng)中處理物化表的方法,其中,在所述多租戶應(yīng)用系統(tǒng)中,多個(gè)租戶共享一個(gè)或多個(gè)基表,該方法包含根據(jù)多個(gè)租戶的數(shù)據(jù)訪問(wèn)歷史信息,分析所述多個(gè)租戶對(duì)所述一個(gè)或多個(gè)基表的更新的模式的相似程度;按照更新模式分析器的所分析的相似程度,將所述多個(gè)租戶劃分為多個(gè)租戶分組;根據(jù)租戶分組器劃分的租戶分組,由所述一個(gè)或多個(gè)基表構(gòu)造租戶分組物化表。
11.權(quán)利要求10的方法,進(jìn)一步包含基于租戶對(duì)所述一個(gè)或多個(gè)基表的更新情況,確定啟用還是禁用對(duì)應(yīng)的租戶分組物化表。
12.權(quán)利要求11的方法,進(jìn)一步包含基于當(dāng)前將有多個(gè)租戶中至少一個(gè)租戶對(duì)基表的大規(guī)模更新的判斷,禁用該租戶所屬租戶分組的租戶分組物化表。
13.權(quán)利要求11的方法,進(jìn)一步包含在多個(gè)租戶中至少一個(gè)租戶對(duì)基表的大規(guī)模更新后,啟用通過(guò)物化表構(gòu)造器構(gòu)造的該租戶所屬租戶分組的租戶分組物化表。
14.權(quán)利要求9-13的任何之一的方法,其中,所述更新的模式的相似程度,包括對(duì)物化表的關(guān)聯(lián)基表的記錄進(jìn)行刪除、插入或重寫操作的時(shí)間的相近度。
15.權(quán)利要求9-13的任何之一的方法,其中,所述由所述一個(gè)或多個(gè)基表構(gòu)造租戶分組物化表,包含利用DDL腳本構(gòu)造與租戶分組對(duì)應(yīng)的租戶分組物化表。
16.權(quán)利要求9-13的任何之一的方法,進(jìn)一步包含 存儲(chǔ)以下的至少之一租戶和租戶分組的對(duì)應(yīng)關(guān)系; 租戶的大規(guī)模更新時(shí)間。
17.權(quán)利要求11-13的任何之一的方法,進(jìn)一步包含存儲(chǔ)租戶分組物化表被啟用或禁用的信息。
18.權(quán)利要求11-13的任何之一的方法,其中,所述數(shù)據(jù)訪問(wèn)歷史信息是所述多租戶應(yīng)用系統(tǒng)的日志中記錄的租戶的數(shù)據(jù)訪問(wèn)操作的信息。
全文摘要
本發(fā)明涉及多租戶應(yīng)用系統(tǒng)。公開(kāi)了一種用于在多租戶應(yīng)用系統(tǒng)中處理物化表的裝置和方法,其中,在所述多租戶應(yīng)用系統(tǒng)中,多個(gè)租戶共享一個(gè)或多個(gè)基表,該裝置包含更新模式分析器,用于根據(jù)多個(gè)租戶的數(shù)據(jù)訪問(wèn)歷史信息,分析所述多個(gè)租戶對(duì)所述一個(gè)或多個(gè)基表的更新的模式的相似程度;租戶分組器,用于按照更新模式分析器的所分析的相似程度,將所述多個(gè)租戶劃分為多個(gè)租戶分組;物化表構(gòu)造器,用于根據(jù)租戶分組器劃分的租戶分組,由所述一個(gè)或多個(gè)基表構(gòu)造與租戶分組對(duì)應(yīng)的租戶分組物化表。
文檔編號(hào)G06F17/30GK102346744SQ201010244499
公開(kāi)日2012年2月8日 申請(qǐng)日期2010年7月30日 優(yōu)先權(quán)日2010年7月30日
發(fā)明者安文豪, 段寧, 王芝虎, 郭常杰, 高波 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
邹平县| 白朗县| 清河县| 日喀则市| 上杭县| 河北区| 新竹县| 来凤县| 阿拉善左旗| 若羌县| 大港区| 庆阳市| 乌鲁木齐市| 拉萨市| 西盟| 通辽市| 白沙| 从江县| 宁津县| 额济纳旗| 德阳市| 江阴市| 竹溪县| 天气| 如东县| 大石桥市| 水富县| 繁昌县| 苍梧县| 堆龙德庆县| 汝阳县| 犍为县| 云林县| 策勒县| 碌曲县| 奈曼旗| 霍山县| 武宁县| 涞水县| 九龙城区| 太湖县|