国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于分布式數(shù)據(jù)庫(kù)數(shù)據(jù)處理的研究

2013-08-22 07:34:38侯佳佳喬運(yùn)華卜建國(guó)王海丹
制造業(yè)自動(dòng)化 2013年1期
關(guān)鍵詞:數(shù)據(jù)量數(shù)據(jù)源子系統(tǒng)

侯佳佳,喬運(yùn)華,卜建國(guó),王海丹

(北京機(jī)械工業(yè)自動(dòng)化研究所,北京 100120)

0 引言

由于數(shù)據(jù)量和并發(fā)訪問(wèn)量的急劇增加,數(shù)據(jù)庫(kù)的連接遇到瓶頸,大數(shù)據(jù)量的表訪問(wèn)速度慢、效率低的問(wèn)題日益突出。對(duì)于海量數(shù)據(jù)的處理,非關(guān)系型數(shù)據(jù)庫(kù)使用日益增多,如何部署分布式數(shù)據(jù)庫(kù),解決關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)的共同使用以及大數(shù)據(jù)量的表訪問(wèn)效率低的問(wèn)題已成為重中之重,通過(guò)把數(shù)據(jù)拆分到不同的數(shù)據(jù)庫(kù),在應(yīng)用層對(duì)不同數(shù)據(jù)源整合的方案,是解決數(shù)據(jù)層性能問(wèn)題的關(guān)鍵。

1 數(shù)據(jù)拆分

隨著網(wǎng)絡(luò)流量爆發(fā)式的增長(zhǎng),業(yè)務(wù)拆分勢(shì)在必行。拆分的業(yè)務(wù)形成一個(gè)個(gè)獨(dú)立的子系統(tǒng),RS10系統(tǒng)包括生產(chǎn)、物流、財(cái)務(wù)等子系統(tǒng),每個(gè)子系統(tǒng)之間耦合度低,功能模塊劃分清晰,數(shù)據(jù)易于拆分。把生產(chǎn)、物流、財(cái)務(wù)等子系統(tǒng)的數(shù)據(jù)從存放在一個(gè)數(shù)據(jù)庫(kù)服務(wù)器上拆分成存放在不同的數(shù)據(jù)庫(kù)服務(wù)器上,通過(guò)中間數(shù)據(jù)層框架進(jìn)行數(shù)據(jù)整合,使得業(yè)務(wù)層訪問(wèn)數(shù)據(jù)仍像訪問(wèn)單個(gè)數(shù)據(jù)庫(kù)一樣,不造成任何影響。業(yè)務(wù)分級(jí)與關(guān)聯(lián)是業(yè)務(wù)劃分、信息共享和資源整合的過(guò)程,使用數(shù)據(jù)層框架解決分布式數(shù)據(jù)庫(kù)對(duì)業(yè)務(wù)分級(jí)和關(guān)聯(lián)帶來(lái)的影響。通過(guò)分庫(kù)分表、讀寫(xiě)分離,數(shù)據(jù)庫(kù)的性能問(wèn)題也迎刃而解。

數(shù)據(jù)拆分就是通過(guò)某種特定的條件,將我們存放在同一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)分散存放到多個(gè)數(shù)據(jù)庫(kù)(主機(jī))上面,以達(dá)到分散單臺(tái)設(shè)備負(fù)載的效果。數(shù)據(jù)拆分同時(shí)還可以提高系統(tǒng)的總體可用性,即使單臺(tái)設(shè)備崩潰之后,只是總體數(shù)據(jù)的某部分不可用,而不是所有數(shù)據(jù)。

數(shù)據(jù)拆分根據(jù)其拆分規(guī)則,可以分為兩種拆分模式。一種是按照不同的表拆分到不同的數(shù)據(jù)庫(kù)(主機(jī))之上,這種拆分稱之為數(shù)據(jù)的垂直拆分;另外一種則是根據(jù)表中的數(shù)據(jù)的邏輯關(guān)系,將同一個(gè)表中的數(shù)據(jù)按照某種條件拆分到多臺(tái)數(shù)據(jù)庫(kù)(主機(jī))上面,這種拆分稱之為數(shù)據(jù)的水平拆分。

1.1 垂直拆分

數(shù)據(jù)的垂直拆分也稱縱向拆分,數(shù)據(jù)庫(kù)是由很多個(gè)數(shù)據(jù)塊組成,我們垂直地將這些數(shù)據(jù)塊拆開(kāi),將它們分散到多臺(tái)數(shù)據(jù)庫(kù)主機(jī)上面。

一個(gè)架構(gòu)設(shè)計(jì)較好的應(yīng)用系統(tǒng),其總體功能肯定是由很多個(gè)功能模塊所組成的,而每一個(gè)功能模塊所需要的數(shù)據(jù)對(duì)應(yīng)到數(shù)據(jù)庫(kù)中就是一個(gè)或者多個(gè)表。不同功能模塊的數(shù)據(jù)存放于不同的數(shù)據(jù)庫(kù)主機(jī),可以容易避免跨數(shù)據(jù)庫(kù)的連接存在。

垂直拆分的架構(gòu),如圖1所示。

圖1 垂直拆分架構(gòu)圖

垂直拆分的優(yōu)點(diǎn)表現(xiàn)在:

1)數(shù)據(jù)庫(kù)的拆分簡(jiǎn)單明了,拆分規(guī)則明確;

2)應(yīng)用程序模塊清晰明確,容易整合;

3)數(shù)據(jù)維護(hù)方便易行,容易定位。

垂直拆分的缺點(diǎn)則表現(xiàn)在:

1)部分表關(guān)聯(lián)無(wú)法在數(shù)據(jù)庫(kù)級(jí)別完成,需要在程序中完成;

2)訪問(wèn)及其頻繁且數(shù)據(jù)量超大的表依然存在性能瓶頸;

3)事務(wù)處理相對(duì)更加復(fù)雜。

1.2 水平拆分

水平拆分主要是將某個(gè)訪問(wèn)及其頻繁的表再按照某個(gè)字段的某種規(guī)則來(lái)分散到多個(gè)表中,每個(gè)表中包含一部分?jǐn)?shù)據(jù)。

數(shù)據(jù)的水平拆分是按照數(shù)據(jù)行的拆分,將表中的某些行拆分到一個(gè)數(shù)據(jù)庫(kù),而另外的某些行拆分到其他的數(shù)據(jù)庫(kù)中。為了我們?nèi)菀着卸ǜ餍袛?shù)據(jù)放在數(shù)據(jù)庫(kù)中,拆分需要按照特定的規(guī)則來(lái)進(jìn)行。如根據(jù)公司號(hào)或者用戶編碼等進(jìn)行拆分。

基于用戶的編碼進(jìn)行數(shù)據(jù)水平拆分,如圖2所示。

圖2 水平拆分架構(gòu)圖

水平拆分的優(yōu)點(diǎn)表現(xiàn)在:

1)表關(guān)聯(lián)基本能夠在數(shù)據(jù)庫(kù)端全部完成;

2)不存在超大型數(shù)據(jù)量和高負(fù)載的表;

3)事務(wù)處理相對(duì)簡(jiǎn)單;

水平拆分的缺點(diǎn)則表現(xiàn)在:

1)切分規(guī)則相對(duì)更為復(fù)雜,很難抽象出一個(gè)滿足整個(gè)數(shù)據(jù)庫(kù)的切分規(guī)則;

2)后期數(shù)據(jù)的維護(hù)難度有所增加,人為手工定位數(shù)據(jù)更困難;

3)應(yīng)用系統(tǒng)各模塊耦合度較高,對(duì)數(shù)據(jù)的遷移拆分造成一定的困難。

1.3 聯(lián)合拆分

在實(shí)際的應(yīng)用場(chǎng)景中,系統(tǒng)的業(yè)務(wù)邏輯比較復(fù)雜,系統(tǒng)負(fù)載比較大,無(wú)法通過(guò)單獨(dú)的一種數(shù)據(jù)拆分方式來(lái)實(shí)現(xiàn),需要兩種拆分方法結(jié)合使用,分布式數(shù)據(jù)庫(kù)應(yīng)采用垂直拆分與水平拆分聯(lián)合使用,如圖3所示。

圖3 聯(lián)合拆分架構(gòu)圖

聯(lián)合拆分的優(yōu)點(diǎn):

1)可以充分利用垂直拆分和水平拆分各自的優(yōu)勢(shì)而避免各自的缺陷;

2)讓系統(tǒng)擴(kuò)展性得到最大化提升;

聯(lián)合拆分的缺點(diǎn):

1)數(shù)據(jù)庫(kù)系統(tǒng)架構(gòu)比較復(fù)雜,維護(hù)難度更大;

2)應(yīng)用程序架構(gòu)也相對(duì)更復(fù)雜。

2 數(shù)據(jù)整合

數(shù)據(jù)庫(kù)在經(jīng)過(guò)垂直和(或)水平拆分被存放在不同的數(shù)據(jù)庫(kù)之后,RS10系統(tǒng)最大的問(wèn)題是訪問(wèn)業(yè)務(wù)數(shù)據(jù),讓業(yè)務(wù)數(shù)據(jù)得到較好的整合,因此,存在兩種解決方案:

第一種方案,在每個(gè)子系統(tǒng)中配置和管理需要的數(shù)據(jù)源,直接訪問(wèn)各個(gè)數(shù)據(jù)庫(kù),在每個(gè)子系統(tǒng)內(nèi)完成數(shù)據(jù)的整合;

第二種方案,使用數(shù)據(jù)層框架來(lái)統(tǒng)一管理所有的數(shù)據(jù)源,數(shù)據(jù)庫(kù)集群對(duì)每個(gè)子系統(tǒng)透明。

針對(duì)RS10,我們采用第二種解決方案來(lái)實(shí)現(xiàn)數(shù)據(jù)的整合。

3 分布式數(shù)據(jù)庫(kù)層架構(gòu)

在選擇通過(guò)數(shù)據(jù)庫(kù)的中間代理層來(lái)解決數(shù)據(jù)的拆分和整合方案之后,我們選取開(kāi)源的Amoeba框架,在它基礎(chǔ)上開(kāi)發(fā)出適合RS10的數(shù)據(jù)拆分和整合方案。

Amoeba是一個(gè)基于java開(kāi)發(fā)的,專注于解決分布式數(shù)據(jù)庫(kù)數(shù)據(jù)源整合的開(kāi)源框架,可用來(lái)監(jiān)視、分析或者傳輸他們之間的通訊信息,實(shí)現(xiàn)連接路由、Query分析、Query過(guò)濾和修改、負(fù)載均衡以及基本的HA機(jī)制等。

所有客戶端請(qǐng)求都是通過(guò)這個(gè)中間層,然后經(jīng)由中間層進(jìn)行相應(yīng)的分析,判斷出是讀操作還是寫(xiě)操作,然后分發(fā)到相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器上,我們基于這個(gè)框架來(lái)實(shí)現(xiàn)和部署RS10的分布式數(shù)據(jù)庫(kù),架構(gòu)圖如圖4所示。

圖4 分布式數(shù)據(jù)庫(kù)層架構(gòu)

Amoeba能解決RS10以下問(wèn)題:

1)RS10分庫(kù)分表以及拆分之后數(shù)據(jù)的整合;

2)提供了數(shù)據(jù)拆分規(guī)則,降低拆分規(guī)則給數(shù)據(jù)庫(kù)帶來(lái)的影響;

3)減少了數(shù)據(jù)庫(kù)與客戶端的連接數(shù),用戶只訪問(wèn)自己需要的數(shù)據(jù);

4)通過(guò)中間層代理,實(shí)現(xiàn)讀寫(xiě)分離。

基于這個(gè)開(kāi)源框架我們能開(kāi)發(fā)出同時(shí)連接不同的數(shù)據(jù)庫(kù)的數(shù)據(jù)源為前端應(yīng)用程序提供服務(wù),我們通過(guò)Amoeba框架分析Query語(yǔ)句,根據(jù)Query語(yǔ)句中所請(qǐng)求的數(shù)據(jù)來(lái)自動(dòng)識(shí)別Query語(yǔ)句的數(shù)據(jù)源是什么類型數(shù)據(jù)庫(kù),在哪個(gè)物理主機(jī)上面,然后選擇特定的JDBC驅(qū)動(dòng)和相應(yīng)協(xié)議連接后臺(tái)數(shù)據(jù)庫(kù)。

通過(guò)數(shù)據(jù)的垂直和水平拆分,增強(qiáng)數(shù)據(jù)庫(kù)的整體服務(wù)能力,通過(guò)數(shù)據(jù)層框架解決數(shù)據(jù)拆分和整合,使數(shù)據(jù)庫(kù)很容易擴(kuò)展,只需要增加廉價(jià)的PC服務(wù)器,即可線性增加數(shù)據(jù)庫(kù)集群的整體服務(wù)能力,從而實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)的部署和擴(kuò)展。

4 結(jié)束語(yǔ)

目前,關(guān)于分布式數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)處理的研究很多,針對(duì)RS10大數(shù)據(jù)量的性能以及并發(fā)訪問(wèn)效率低的問(wèn)題,基于Amoeba框架,對(duì)大數(shù)據(jù)量的表進(jìn)行拆分,對(duì)集中式部署的數(shù)據(jù)庫(kù)采用分布式部署,有效的解決數(shù)據(jù)量大、并發(fā)訪問(wèn)效率低的問(wèn)題。分布式數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的拆分和整合是最關(guān)鍵的環(huán)節(jié),只有充分解決這個(gè)問(wèn)題,分布式數(shù)據(jù)庫(kù)才能得到有效地使用。

[1] http://info.52z.com.[EB/OL.]

[2] MySql數(shù)據(jù)切分及整合方案—IT科技以人為本[J],2009.

[3] 王玉奎.通用高性能網(wǎng)絡(luò)棋牌游戲服務(wù)端的研究和設(shè)計(jì)[D].武漢理工大學(xué),2011.

猜你喜歡
數(shù)據(jù)量數(shù)據(jù)源子系統(tǒng)
不對(duì)中轉(zhuǎn)子系統(tǒng)耦合動(dòng)力學(xué)特性研究
基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
計(jì)算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
GSM-R基站子系統(tǒng)同步方案研究
寬帶信號(hào)采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計(jì)與研究
電子制作(2019年13期)2020-01-14 03:15:18
駝峰測(cè)長(zhǎng)設(shè)備在線監(jiān)測(cè)子系統(tǒng)的設(shè)計(jì)與應(yīng)用
Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
高雄县| 开阳县| 达尔| 芮城县| 赤水市| 望奎县| 德保县| 博湖县| 厦门市| 新龙县| 寿阳县| 广昌县| 商城县| 遂平县| 保山市| 博乐市| 阳城县| 西青区| 德保县| 姜堰市| 沙田区| 库尔勒市| 日喀则市| 盈江县| 沈丘县| 藁城市| 昭觉县| 监利县| 屏东市| 荆州市| 石河子市| 竹山县| 札达县| 阿克苏市| 漯河市| 阆中市| 嘉义市| 肥乡县| 米脂县| 荔浦县| 德兴市|