本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和云計(jì)算軟件技術(shù)的日趨成熟,數(shù)據(jù)存儲(chǔ)領(lǐng)域催生出了一種新型的服務(wù)模式——DBaaS(Database as a Service,數(shù)據(jù)庫即服務(wù))。DBaaS是一種通過互聯(lián)網(wǎng)租用方式提供數(shù)據(jù)庫服務(wù)的模式,在DBaaS模式下,用戶不需要購買數(shù)據(jù)庫系統(tǒng)軟件,省去了數(shù)據(jù)庫系統(tǒng)軟件的購置費(fèi)用,數(shù)據(jù)庫系統(tǒng)平臺(tái)以托管的方式由DSaaS服務(wù)提供商進(jìn)行維護(hù)和運(yùn)營,降低了用戶采購、運(yùn)行維護(hù)成本,同時(shí)提升數(shù)據(jù)庫云元數(shù)據(jù)模型的統(tǒng)一維護(hù)和升級(jí),為數(shù)據(jù)實(shí)時(shí)在線分析提供有效的元數(shù)據(jù)標(biāo)準(zhǔn)。
多租戶技術(shù)是云計(jì)算基礎(chǔ)設(shè)施管理模式下的一種新型的軟件架構(gòu)技術(shù),是云計(jì)算中最關(guān)鍵技術(shù)之一,它充分利用了經(jīng)濟(jì)的規(guī)模效應(yīng),為多租戶,即為“客戶”提供共享的內(nèi)存和后臺(tái)進(jìn)程。多租戶技術(shù)的主要優(yōu)點(diǎn)是更大程度提高了硬件資源的利用率和數(shù)據(jù)存儲(chǔ)密度,數(shù)據(jù)庫秒級(jí)的快速移植,滿足海量數(shù)據(jù)、高并發(fā)在線并行計(jì)算,對(duì)在線實(shí)時(shí)數(shù)據(jù)分析的數(shù)據(jù)處理能力有較大提升。這些優(yōu)點(diǎn)會(huì)大大降低傳統(tǒng)數(shù)據(jù)庫系統(tǒng)的建設(shè)、維護(hù)成本,該技術(shù)也因此吸引了越來越多的服務(wù)提供商。
實(shí)踐發(fā)現(xiàn),現(xiàn)有技術(shù)中并不存在針對(duì)多租戶的DBaaS方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種數(shù)據(jù)處理方法及裝置,以實(shí)現(xiàn)針對(duì)多租戶的數(shù)據(jù)庫即服務(wù)方案。
根據(jù)本發(fā)明的第一方面,提供一種數(shù)據(jù)處理方法,應(yīng)用于云數(shù)據(jù)庫服務(wù)平臺(tái),所述云數(shù)據(jù)庫服務(wù)平臺(tái)包括數(shù)據(jù)庫云服務(wù)門戶單元、數(shù)據(jù)庫管理單元、消息服務(wù)總線以及數(shù)據(jù)庫資源單元;所述方法包括:
數(shù)據(jù)庫管理單元接收消息服務(wù)總線轉(zhuǎn)發(fā)的結(jié)構(gòu)化查詢語言SQL對(duì)象;其中,所述SQL對(duì)象由所述消息服務(wù)總線對(duì)數(shù)據(jù)庫云服務(wù)門戶單元接收到的數(shù)據(jù)庫請(qǐng)求解析得到,所述數(shù)據(jù)庫請(qǐng)求由通過身份認(rèn)證的用戶終端發(fā)送;
所述數(shù)據(jù)庫管理單元根據(jù)所述SQL對(duì)象確定對(duì)應(yīng)的操作指令以及數(shù)據(jù)庫標(biāo)識(shí),并根據(jù)所述數(shù)據(jù)庫標(biāo)識(shí)以及所述用戶終端對(duì)應(yīng)的租戶信息確定所述操作指令的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn);
所述數(shù)據(jù)庫管理單元通過所述消息服務(wù)總線將所述操作指令路由給所述數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),由所述目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)響應(yīng)所述操作指令,并通過所述消息服務(wù)總線將操作結(jié)果返回給所述用戶終端。
根據(jù)本發(fā)明的第二方面,提供一種數(shù)據(jù)處理裝置,應(yīng)用于包括數(shù)據(jù)庫云服務(wù)門戶單元、數(shù)據(jù)庫管理單元、消息服務(wù)總線以及數(shù)據(jù)庫資源單元的云數(shù)據(jù)庫服務(wù)平臺(tái)中的數(shù)據(jù)庫管理單元,所述裝置包括:
接收模塊,用于接收消息服務(wù)總線轉(zhuǎn)發(fā)的結(jié)構(gòu)化查詢語言SQL對(duì)象;其中,所述SQL對(duì)象由所述消息服務(wù)總線對(duì)數(shù)據(jù)庫云服務(wù)門戶單元接收到的數(shù)據(jù)庫請(qǐng)求解析得到,所述數(shù)據(jù)庫請(qǐng)求由通過身份認(rèn)證的用戶終端發(fā)送;
確定模塊,用于確定對(duì)應(yīng)的操作指令以及數(shù)據(jù)庫標(biāo)識(shí),并根據(jù)所述數(shù)據(jù)庫標(biāo)識(shí)以及所述用戶終端對(duì)應(yīng)的租戶信息確定所述操作指令的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn);
發(fā)送模塊,用于通過所述消息服務(wù)總線將所述操作指令路由給所述數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),由所述目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)響應(yīng)所述操作指令,并通過所述消息服務(wù)總線將操作結(jié)果返回給所述用戶終端。
應(yīng)用本發(fā)明公開的技術(shù)方案,當(dāng)數(shù)據(jù)庫管理單元接收消息服務(wù)總線轉(zhuǎn)發(fā)的SQL對(duì)象時(shí),數(shù)據(jù)庫管理單元根據(jù)該SQL對(duì)象確定對(duì)應(yīng)的操作指令以及數(shù)據(jù)庫標(biāo)識(shí),并根據(jù)該數(shù)據(jù)庫標(biāo)識(shí)以及用戶終端對(duì)應(yīng)的租戶信息確定該操作指令的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),進(jìn)而,數(shù)據(jù)庫管理單元可以通過消息服務(wù)總線將操作指令路由給數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),由目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)響應(yīng)該操作指令,并通過消息服務(wù)總線將操作結(jié)果返回給用戶終端,從而可以實(shí)現(xiàn)針對(duì)多租戶的數(shù)據(jù)庫及服務(wù)方案。
附圖說明
圖1是本發(fā)明實(shí)施例提供的一種云數(shù)據(jù)庫服務(wù)平臺(tái)的架構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的流程示意圖;
圖3是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例中技術(shù)方案作進(jìn)一步詳細(xì)的說明。
為了使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實(shí)施例提供的技術(shù)方案,下面先對(duì)本發(fā)明實(shí)施例適用的云數(shù)據(jù)庫服務(wù)平臺(tái)的架構(gòu)進(jìn)行簡單說明。
請(qǐng)參見圖1,為本發(fā)明實(shí)施例提供的一種云數(shù)據(jù)庫服務(wù)平臺(tái)的結(jié)構(gòu)示意圖,如圖1所示,該云數(shù)據(jù)庫服務(wù)平臺(tái)可以包括:數(shù)據(jù)庫云服務(wù)門戶單元110、數(shù)據(jù)庫管理單元120、消息服務(wù)總線130以及數(shù)據(jù)庫資源單元140;其中:
所述數(shù)據(jù)庫資源單元140,用于為租戶提供數(shù)據(jù)庫資源,以存儲(chǔ)租戶信息以及租戶數(shù)據(jù);
所述數(shù)據(jù)庫云服務(wù)門戶單元110,用于為租戶提供統(tǒng)一的訪問門戶;
所述消息服務(wù)總線130,用于數(shù)據(jù)庫云服務(wù)門戶單元110、數(shù)據(jù)庫管理單元120以及數(shù)據(jù)庫資源單元140之間的信息交互;
所述數(shù)據(jù)庫管理單元120,用于管理租戶信息、租戶數(shù)據(jù)以及數(shù)據(jù)庫創(chuàng)建的配置信息,為租戶創(chuàng)建數(shù)據(jù)庫。
請(qǐng)參見圖2,為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的流程示意圖,其中,該數(shù)據(jù)處理方法可以應(yīng)用于圖1所示的云數(shù)據(jù)庫服務(wù)平臺(tái),如圖2所示,該數(shù)據(jù)處理方法可以包括以下步驟:
步驟201、數(shù)據(jù)庫管理單元接收消息服務(wù)總線轉(zhuǎn)發(fā)的SQL對(duì)象;其中,該SQL對(duì)象由消息服務(wù)總線對(duì)數(shù)據(jù)庫云服務(wù)門戶單元接收到的數(shù)據(jù)庫請(qǐng)求解析得到,該數(shù)據(jù)庫請(qǐng)求由通過身份認(rèn)證的用戶終端發(fā)送。
本發(fā)明實(shí)施例中,當(dāng)用戶需要訪問云數(shù)據(jù)庫服務(wù)平臺(tái)時(shí),需要通過用戶終端上安裝的特定應(yīng)用系統(tǒng)登錄到云數(shù)據(jù)庫服務(wù)平臺(tái)進(jìn)行身份認(rèn)證。
其中,云數(shù)據(jù)庫服務(wù)平臺(tái)通過數(shù)據(jù)庫云服務(wù)門戶單元接收到用戶終端發(fā)送的身份認(rèn)證請(qǐng)求時(shí),可以通過消息服務(wù)總線將該身份認(rèn)證請(qǐng)求轉(zhuǎn)發(fā)給數(shù)據(jù)庫管理單元,由數(shù)據(jù)庫管理單元對(duì)用戶終端進(jìn)行身份認(rèn)證,例如,根據(jù)身份認(rèn)證請(qǐng)求中攜帶的租戶信息對(duì)用戶終端進(jìn)行身份認(rèn)證。
本發(fā)明實(shí)施例中,用戶終端通過身份認(rèn)證后,可以向云數(shù)據(jù)庫服務(wù)平臺(tái)發(fā)送數(shù)據(jù)庫請(qǐng)求;當(dāng)云數(shù)據(jù)庫服務(wù)平臺(tái)通過數(shù)據(jù)庫云服務(wù)門戶單元接收到用戶終端發(fā)送的數(shù)據(jù)庫請(qǐng)求時(shí),云數(shù)據(jù)庫服務(wù)平臺(tái)可以通過消息服務(wù)總線對(duì)該數(shù)據(jù)庫請(qǐng)求進(jìn)行包協(xié)議處理、SQL解析以及SQL過濾等處理,過濾掉該數(shù)據(jù)庫請(qǐng)求中的非法字符串,以生成對(duì)應(yīng)的SQL對(duì)象,并將該SQL對(duì)象轉(zhuǎn)發(fā)給數(shù)據(jù)庫管理單元。
步驟202、數(shù)據(jù)庫管理單元根據(jù)該SQL對(duì)象確定對(duì)應(yīng)的操作指令以及數(shù)據(jù)庫標(biāo)識(shí),并根據(jù)該數(shù)據(jù)庫標(biāo)識(shí)以及用戶終端對(duì)應(yīng)的租戶信息確定該操作指令的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)。
本發(fā)明實(shí)施例中,數(shù)據(jù)庫管理單元接收到消息服務(wù)總線轉(zhuǎn)發(fā)的SQL對(duì)象時(shí),可以對(duì)該SQL對(duì)象進(jìn)行解析,以確定對(duì)應(yīng)的操作指令以及數(shù)據(jù)庫標(biāo)識(shí)。
其中,該數(shù)據(jù)庫標(biāo)識(shí)可以包括但不限于數(shù)據(jù)庫名稱、數(shù)據(jù)庫類型等。
本發(fā)明實(shí)施例中,數(shù)據(jù)庫管理單元確定了SQL對(duì)象對(duì)應(yīng)的操作指令以及數(shù)據(jù)庫標(biāo)識(shí)之后,可以根據(jù)該數(shù)據(jù)庫標(biāo)識(shí)以及用戶終端對(duì)應(yīng)的租戶信息(可以在用戶終端進(jìn)行身份認(rèn)證時(shí)獲取,如租戶ID)確定該操作指令對(duì)應(yīng)的數(shù)據(jù)庫節(jié)點(diǎn)(本文中稱為目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn))。
可見,在本發(fā)明實(shí)施例中,由于數(shù)據(jù)庫管理單元可以根據(jù)租戶信息以及數(shù)據(jù)庫標(biāo)識(shí)確定數(shù)據(jù)庫請(qǐng)求的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),因此,對(duì)于不同租戶而言,云數(shù)據(jù)庫服務(wù)平臺(tái)可以為其創(chuàng)建數(shù)據(jù)庫標(biāo)識(shí)相同的數(shù)據(jù)庫(如數(shù)據(jù)庫名稱相同),也即本發(fā)明實(shí)施例提供的方案可以支持多租戶的數(shù)據(jù)庫即服務(wù)的實(shí)現(xiàn)。
進(jìn)一步地,在本發(fā)明實(shí)施例中,為了提高系統(tǒng)安全性,云數(shù)據(jù)庫服務(wù)平臺(tái)通過消息服務(wù)總線對(duì)數(shù)據(jù)庫請(qǐng)求進(jìn)行包協(xié)議處理、SQL解析以及SQL過濾等處理之前,可以先將該數(shù)據(jù)庫請(qǐng)求轉(zhuǎn)發(fā)至數(shù)據(jù)庫管理單元,由數(shù)據(jù)庫管理單元對(duì)該數(shù)據(jù)庫請(qǐng)求進(jìn)行安全審計(jì),若安全審計(jì)通過,數(shù)據(jù)庫戶管理單元可以將該數(shù)據(jù)庫請(qǐng)求再轉(zhuǎn)發(fā)給消息服務(wù)總線,由消息服務(wù)總線對(duì)該數(shù)據(jù)庫請(qǐng)求進(jìn)行包協(xié)議處理、SQL解析以及SQL過濾等處理。
其中,若數(shù)據(jù)庫管理單元對(duì)數(shù)據(jù)庫請(qǐng)求進(jìn)行安全審計(jì)未通過,則數(shù)據(jù)庫管理單元可以不對(duì)該數(shù)據(jù)庫請(qǐng)求進(jìn)行響應(yīng),例如,數(shù)據(jù)庫管理單元可以直接丟棄該數(shù)據(jù)庫請(qǐng)求。
步驟203、數(shù)據(jù)庫管理單元通過消息服務(wù)總線將操作指令路由給數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),由目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)響應(yīng)操作指令,并通過消息服務(wù)總線將操作結(jié)果返回給用戶終端。
本發(fā)明實(shí)施例中,數(shù)據(jù)庫管理單元得到數(shù)據(jù)庫請(qǐng)求對(duì)應(yīng)的操作指令,并確定了該操作指令對(duì)應(yīng)的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)時(shí),數(shù)據(jù)庫管理單元可以通過消息服務(wù)總線將操作指令路由給數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),由目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)對(duì)該操作指令進(jìn)行響應(yīng),并通過消息服務(wù)總線將操作結(jié)果返回給用戶終端。
其中,操作結(jié)果可以包括但不限于操作成功、操作失敗等,例如,數(shù)據(jù)庫請(qǐng)求為數(shù)據(jù)存儲(chǔ)請(qǐng)求時(shí),操作結(jié)果可以包括數(shù)據(jù)存儲(chǔ)成功或失敗等。當(dāng)數(shù)據(jù)庫請(qǐng)求為數(shù)據(jù)查詢請(qǐng)求時(shí),該操作結(jié)果還可以包括查詢到的數(shù)據(jù)等。
在本發(fā)明其中一個(gè)實(shí)施例中,數(shù)據(jù)庫管理單元通過消息服務(wù)總線將操作指令路由給數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),可以包括:
當(dāng)目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)包括多個(gè)時(shí),根據(jù)多個(gè)目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)的可用狀態(tài)以及負(fù)荷狀態(tài),通過消息服務(wù)總線將操作指令路由給可用且負(fù)荷最低的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)。
在該實(shí)施例中,當(dāng)數(shù)據(jù)庫管理單元發(fā)現(xiàn)操作指令對(duì)應(yīng)的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)存在多個(gè)時(shí),數(shù)據(jù)庫管理節(jié)點(diǎn)可以根據(jù)該多個(gè)目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)的可用狀態(tài)以及負(fù)荷狀態(tài),通過消息服務(wù)總線將操作指令路由給可用且負(fù)荷最低的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),以提高系統(tǒng)資源利用率。
值得說明的是,在該實(shí)施例中,當(dāng)操作指令對(duì)應(yīng)的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)存在多個(gè)時(shí),數(shù)據(jù)庫管理節(jié)點(diǎn)并不限于根據(jù)各目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)的負(fù)荷選擇實(shí)際響應(yīng)操作指令的數(shù)據(jù)庫節(jié)點(diǎn),即在該實(shí)施例中,數(shù)據(jù)庫管理節(jié)點(diǎn)也可以通過其它策略選擇時(shí)機(jī)響應(yīng)操作指令的數(shù)據(jù)庫節(jié)點(diǎn),例如,數(shù)據(jù)庫管理節(jié)點(diǎn)可以隨機(jī)從該多個(gè)目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)中選擇一個(gè)目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)來響應(yīng)該操作指令,或者,數(shù)據(jù)庫管理節(jié)點(diǎn)可以依次選擇該多個(gè)目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)中各目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)來響應(yīng)操作指令,其具體實(shí)現(xiàn)在此不做贅述。
其中,數(shù)據(jù)庫管理單元可以監(jiān)控?cái)?shù)據(jù)庫節(jié)點(diǎn)池中的數(shù)據(jù)庫節(jié)點(diǎn)的心跳信息,以對(duì)數(shù)據(jù)庫節(jié)點(diǎn)的可用性進(jìn)行監(jiān)控。
此外,數(shù)據(jù)庫管理單元還可以管理數(shù)據(jù)庫節(jié)點(diǎn)中的數(shù)據(jù)切分規(guī)則。數(shù)據(jù)切分規(guī)則使用一致性哈希算法進(jìn)行數(shù)據(jù)切分,當(dāng)添加新的數(shù)據(jù)庫節(jié)點(diǎn)到數(shù)據(jù)節(jié)點(diǎn)池中時(shí),能夠以最小的代價(jià)把數(shù)據(jù)遷移至新節(jié)點(diǎn)中,保證在不影響用戶使用的情況下能夠完成節(jié)點(diǎn)的加入以及數(shù)據(jù)的遷移。
進(jìn)一步地,在本發(fā)明實(shí)施例中,數(shù)據(jù)庫管理單元將操作指令發(fā)送給消息服務(wù)總線時(shí),消息服務(wù)總線可以將接收到的操作指令加入到消息隊(duì)列中,并按照預(yù)設(shè)規(guī)則將消息隊(duì)列中的操作指令路由給對(duì)應(yīng)的數(shù)據(jù)庫節(jié)點(diǎn)。
進(jìn)一步地,在本發(fā)明其中一個(gè)實(shí)施例中,當(dāng)數(shù)據(jù)庫請(qǐng)求為數(shù)據(jù)查詢請(qǐng)求時(shí),上述數(shù)據(jù)庫管理單元通過消息服務(wù)總線將操作指令路由給數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)之前,可以包括:
數(shù)據(jù)庫管理單元判斷緩存系統(tǒng)中是否存在該數(shù)據(jù)查詢請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)信息;
若不存在,則確定執(zhí)行上述通過消息服務(wù)總線將操作指令路由給數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)的步驟;
若緩存系統(tǒng)中存在數(shù)據(jù)查詢請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)信息,則數(shù)據(jù)庫管理單元從緩存系統(tǒng)中獲取對(duì)應(yīng)的數(shù)據(jù)信息,并通過消息服務(wù)總線將獲取到的數(shù)據(jù)信息返回給應(yīng)用系統(tǒng)。
具體地,在該實(shí)施例中,為了提高業(yè)務(wù)響應(yīng)效率,可以在云數(shù)據(jù)庫服務(wù)平臺(tái)中增加緩存系統(tǒng),當(dāng)數(shù)據(jù)庫管理單元接收到數(shù)據(jù)查詢請(qǐng)求時(shí),數(shù)據(jù)庫管理單元可以先判斷緩存系統(tǒng)中是否存在與該數(shù)據(jù)查詢請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)信息,若存在,則從緩存系統(tǒng)中獲取對(duì)應(yīng)的數(shù)據(jù)信息,并通過消息服務(wù)總線將獲取到的數(shù)據(jù)信息返回給用戶終端。
若緩存系統(tǒng)中不存在對(duì)應(yīng)的數(shù)據(jù)信息,則數(shù)據(jù)庫管理單元可以通過消息服務(wù)總線從數(shù)據(jù)庫資源單元中獲取對(duì)應(yīng)的數(shù)據(jù)信息,獲取到對(duì)應(yīng)的數(shù)據(jù)信息之后,一方面,通過消息服務(wù)總線將獲取到的數(shù)據(jù)信息返回應(yīng)用系統(tǒng);另一方面,將獲取到的數(shù)據(jù)信息保存至緩存系統(tǒng),以提高后續(xù)數(shù)據(jù)查詢的效率。
通過以上描述可以看出,在本發(fā)明實(shí)施例提供的技術(shù)方案中,當(dāng)數(shù)據(jù)庫管理單元接收消息服務(wù)總線轉(zhuǎn)發(fā)的SQL對(duì)象時(shí),數(shù)據(jù)庫管理單元根據(jù)該SQL對(duì)象確定對(duì)應(yīng)的操作指令以及數(shù)據(jù)庫標(biāo)識(shí),并根據(jù)該數(shù)據(jù)庫標(biāo)識(shí)以及用戶終端對(duì)應(yīng)的租戶信息確定該操作指令的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),進(jìn)而,數(shù)據(jù)庫管理單元可以通過消息服務(wù)總線將操作指令路由給數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),由目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)響應(yīng)該操作指令,并通過消息服務(wù)總線將操作結(jié)果返回給用戶終端,從而可以實(shí)現(xiàn)針對(duì)多租戶的數(shù)據(jù)庫及服務(wù)方案。
請(qǐng)參見圖3,為本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,其中,該數(shù)據(jù)處理裝置可以應(yīng)用于上述方法實(shí)施例中的數(shù)據(jù)庫管理單元,如圖3所示,該數(shù)據(jù)處理裝置可以包括:
接收模塊310,用于接收消息服務(wù)總線轉(zhuǎn)發(fā)的結(jié)構(gòu)化查詢語言SQL對(duì)象;其中,所述SQL對(duì)象由所述消息服務(wù)總線對(duì)數(shù)據(jù)庫云服務(wù)門戶單元接收到的數(shù)據(jù)庫請(qǐng)求解析得到,所述數(shù)據(jù)庫請(qǐng)求由通過身份認(rèn)證的用戶終端發(fā)送;
確定模塊320,用于確定對(duì)應(yīng)的操作指令以及數(shù)據(jù)庫標(biāo)識(shí),并根據(jù)所述數(shù)據(jù)庫標(biāo)識(shí)以及所述用戶終端對(duì)應(yīng)的租戶信息確定所述操作指令的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn);
發(fā)送模塊330,用于通過所述消息服務(wù)總線將所述操作指令路由給所述數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),由所述目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)響應(yīng)所述操作指令,并通過所述消息服務(wù)總線將操作結(jié)果返回給所述用戶終端。
請(qǐng)一并參見圖4,為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,如圖4所示,在圖3所示的數(shù)據(jù)處理裝置的基礎(chǔ)上,圖4所示的數(shù)據(jù)處理裝置還可以包括:
判斷模塊340,用于當(dāng)所述數(shù)據(jù)庫請(qǐng)求為數(shù)據(jù)查詢請(qǐng)求時(shí),判斷緩存系統(tǒng)中是否存在對(duì)應(yīng)的數(shù)據(jù)信息;
所述發(fā)送單元330,具體用于若不存在,則通過所述消息服務(wù)總線將所述操作指令路由給所述數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)。
請(qǐng)一并參見圖5,為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,如圖5所示,在圖4所示的數(shù)據(jù)處理裝置的基礎(chǔ)上,圖5所示的數(shù)據(jù)處理裝置還可以包括:
獲取模塊350,用于若緩存系統(tǒng)中存在對(duì)應(yīng)的數(shù)據(jù)信息,則從緩存系統(tǒng)中獲取對(duì)應(yīng)的數(shù)據(jù)信息;
所述發(fā)送單元330,具體用于通過所述消息服務(wù)總線將獲取到的數(shù)據(jù)信息返回給應(yīng)用系統(tǒng)。
在可選實(shí)施例中,所述發(fā)送單元330,具體用于當(dāng)所述目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)包括多個(gè)時(shí),根據(jù)所述多個(gè)目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)的可用狀態(tài)以及負(fù)荷狀態(tài),通過所述消息服務(wù)總線將所述操作指令路由給可用且負(fù)荷最低的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)。
在可選實(shí)施例中,所述發(fā)送單元330,具體用于將所述操作指令發(fā)送給所述消息服務(wù)總線,由所述消息服務(wù)總線將所述操作指令加入消息隊(duì)列中,并按照預(yù)設(shè)規(guī)則將消息隊(duì)列中的操作指令路由給對(duì)應(yīng)的數(shù)據(jù)庫節(jié)點(diǎn)。
上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過程具體詳見上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過程,在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本申請(qǐng)方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
由上述實(shí)施例可見,當(dāng)數(shù)據(jù)庫管理單元接收消息服務(wù)總線轉(zhuǎn)發(fā)的SQL對(duì)象時(shí),數(shù)據(jù)庫管理單元根據(jù)該SQL對(duì)象確定對(duì)應(yīng)的操作指令以及數(shù)據(jù)庫標(biāo)識(shí),并根據(jù)該數(shù)據(jù)庫標(biāo)識(shí)以及用戶終端對(duì)應(yīng)的租戶信息確定該操作指令的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),進(jìn)而,數(shù)據(jù)庫管理單元可以通過消息服務(wù)總線將操作指令路由給數(shù)據(jù)庫資源單元中的目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn),由目標(biāo)數(shù)據(jù)庫節(jié)點(diǎn)響應(yīng)該操作指令,并通過消息服務(wù)總線將操作結(jié)果返回給用戶終端,從而可以實(shí)現(xiàn)針對(duì)多租戶的數(shù)據(jù)庫及服務(wù)方案。
本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。