亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        列式數(shù)據(jù)庫(kù)Ver tica的特性分析

        2011-02-27 05:42:42唐亞男
        電腦與電信 2011年5期
        關(guān)鍵詞:快照列式體系結(jié)構(gòu)

        唐亞男

        (亞信聯(lián)創(chuàng)科技(中國(guó))有限公司,北京 100086)

        1.前言

        與以往常見(jiàn)的行式關(guān)系型數(shù)據(jù)庫(kù)不同,Vertica是一種基于列存儲(chǔ)(Column-Oriented)的數(shù)據(jù)庫(kù)體系結(jié)構(gòu),這種存儲(chǔ)機(jī)構(gòu)更適合在數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)和商業(yè)智能方面發(fā)揮特長(zhǎng)。

        常見(jiàn)的RDBMS都是面向行(Row-Oriented Database)存儲(chǔ)的,在對(duì)某一列匯總計(jì)算的時(shí)候幾乎不可避免的要進(jìn)行額外的I/O尋址掃描,而面向列存儲(chǔ)的數(shù)據(jù)庫(kù)能夠連續(xù)進(jìn)行I/O操作,減少了I/O開(kāi)銷(xiāo),從而達(dá)到數(shù)量級(jí)上的性能提升。同時(shí),Vertica支持海量并行存儲(chǔ)(MPP)架構(gòu),實(shí)現(xiàn)了完全無(wú)共享,因此擴(kuò)展容易,可以利用廉價(jià)的硬件來(lái)獲取高的性能,具有很高的性價(jià)比。

        2.Vertica數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)

        如圖1,展示的是單節(jié)點(diǎn)上的Vertica的基本體系結(jié)構(gòu)。

        圖1 體系結(jié)構(gòu)

        作為關(guān)系型數(shù)據(jù)庫(kù),Vertica的查詢SQL也是在前端被解析和優(yōu)化的。但與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)有所不同,Vertica內(nèi)部是混合存儲(chǔ)的,包括兩種不同的存儲(chǔ)結(jié)構(gòu):寫(xiě)優(yōu)化器(WOS)和讀優(yōu)化器(ROS)。

        (1)寫(xiě)優(yōu)化器WOS(W rite-Optim ized Store)

        是位于主存儲(chǔ)器上的一個(gè)數(shù)據(jù)結(jié)構(gòu),用于有效的支持?jǐn)?shù)據(jù)插入和更新操作;數(shù)據(jù)的存放是無(wú)序的,非壓縮的。

        (2)讀優(yōu)化器ROS(Read-Optimized Store)

        是磁盤(pán)物理存儲(chǔ),存放的是排序和壓縮后的數(shù)據(jù)庫(kù)大塊數(shù)據(jù),因此這里的查詢相比于WOS性能更好。

        (3)Tuple Mover進(jìn)程

        是Vertica內(nèi)部的一個(gè)進(jìn)程,定期的以大數(shù)據(jù)塊的形式把數(shù)據(jù)從WOS移到ROS,由于是對(duì)整個(gè)WOS操作,Tuple Mover一次能非常有效的排序很多記錄,最后批量把它們寫(xiě)入磁盤(pán)。

        在Vertica內(nèi)部,不論是WOS還是ROS都是按列存儲(chǔ)的。

        舉個(gè)例子:

        表Sales包含字段(order-id、product-id、sales-date、customerid、sales-price),Vertica會(huì)存儲(chǔ)至少五個(gè)不同的列(邏輯上展示給用戶的是一張表)。通過(guò)分開(kāi)存儲(chǔ)這些列,Vertica能夠只返回用戶特定查詢的列。

        在Vertica中,每一列可以存在于不同的Projections中,如可以給Sales表建立兩個(gè)Projection:其中sales-prices包含order-id、product-id、sales-date、sale-price四 列 , 另 一 個(gè)salescustomers包含了order-id、product-id、customer-id三列。每個(gè)projection都可以指定單獨(dú)的排序,例如:命名為salescustomers的projection可能會(huì)按custmoer_id排序存儲(chǔ),這對(duì)于“統(tǒng)計(jì)某個(gè)客戶訂購(gòu)了哪些產(chǎn)品”這類(lèi)查詢就非常有效。借助于這種存儲(chǔ)方式,對(duì)每個(gè)查詢Sql,Vertica的Database Designer工具會(huì)自動(dòng)使用最優(yōu)的projections,從而能很快地響應(yīng)用戶的請(qǐng)求。

        當(dāng)然,這種多個(gè)projections冗余存儲(chǔ)的方式會(huì)占用更多的磁盤(pán)空間,對(duì)此,Vertica也給出了很好的解決方案。高效的列壓縮模式能夠最多把數(shù)據(jù)壓縮掉90%,不但大大減少了磁盤(pán)的使用,同時(shí)由于Vertica能夠直接處理壓縮數(shù)據(jù),這樣查詢性能和查詢時(shí)的CPU負(fù)載都大大降低了。

        3.Vertica的關(guān)鍵特性分析

        在數(shù)據(jù)倉(cāng)庫(kù)領(lǐng)域,人們會(huì)更多的關(guān)注數(shù)據(jù)庫(kù)的查詢性能。Vertica的查詢響應(yīng)受到多個(gè)因素的影響。

        舉個(gè)簡(jiǎn)單的例子,如上提到的Sales表,如果要計(jì)算出商品的平均銷(xiāo)售價(jià)格,可以用:

        SELECT date,AVG(sales-price)FROM sales GROUPBY sales-date這樣的語(yǔ)句來(lái)實(shí)現(xiàn)。對(duì)于這樣的典型查詢語(yǔ)句,系統(tǒng)的主要開(kāi)銷(xiāo)在磁盤(pán)訪問(wèn)(disk I/O)和CPU處理兩個(gè)方面(分布式的情況下還需考慮網(wǎng)絡(luò)I/O),通常情況下disk I/O和CPU計(jì)算是同時(shí)進(jìn)行的,這樣我們不難得出結(jié)論:如果disk I/O用了D秒,CPU處理用了C秒,則整個(gè)查詢的響應(yīng)時(shí)間是D和C兩者中的最大值。

        理解了以上一般SQL語(yǔ)句的處理過(guò)程,我們就可以進(jìn)一步的分析一下Vertica數(shù)據(jù)庫(kù)在查詢方面的優(yōu)勢(shì)在哪里。

        3.1 列定向(Column-orientation)

        由于大多數(shù)的查詢都是要從磁盤(pán)讀取數(shù)據(jù),因此可以說(shuō)disk I/O在很大程度上決定了一個(gè)查詢的最終響應(yīng)時(shí)間。從上面的示例可以看出,Vertica只需要讀取sales-date,sales-price兩列,而行式存儲(chǔ)的數(shù)據(jù)庫(kù)則要讀取全部的5列,列式數(shù)據(jù)庫(kù)的優(yōu)勢(shì)不言而喻。

        3.2 壓縮機(jī)制(Aggressive Compression)

        在數(shù)據(jù)存儲(chǔ)方面,Vertica利用內(nèi)部的特定算法對(duì)數(shù)據(jù)進(jìn)行壓縮處理。這樣的機(jī)制會(huì)大大減少disk I/O的時(shí)間(D),同時(shí)由于Vertica對(duì)掃描和聚合等操作也在內(nèi)部進(jìn)行了優(yōu)化,可以直接處理壓縮后的數(shù)據(jù),這樣CPU的工作負(fù)載(C)也減少了。如上例中的AVG聚合函數(shù),Vertica是不需要將壓縮數(shù)據(jù)先做類(lèi)似解壓這種處理的,因此查詢性能得到優(yōu)化。

        3.3 讀優(yōu)化存儲(chǔ)(Read-Optim ized Storage)

        Vertica的數(shù)據(jù)庫(kù)存儲(chǔ)容器ROSContainer專(zhuān)門(mén)為讀操作進(jìn)行了優(yōu)化設(shè)計(jì),且其中的數(shù)據(jù)是經(jīng)過(guò)了排序和壓縮處理的,即每個(gè)磁盤(pán)頁(yè)上不會(huì)有空白空間,而傳統(tǒng)的數(shù)據(jù)庫(kù)一般會(huì)在每頁(yè)上預(yù)留空間以便日后的insert操作來(lái)使用。

        3.4 多種排序方式的冗余存儲(chǔ)

        為了高可用性和備份恢復(fù)的需要,Vertica會(huì)按照不同的排序方式對(duì)數(shù)據(jù)做冗余存儲(chǔ),這不但避免了大量的日志操作,也為查詢帶來(lái)了便利。Vertica的查詢優(yōu)化器會(huì)自動(dòng)選擇最優(yōu)的排序方式來(lái)完成特定的查詢。

        3.5 并行無(wú)共享設(shè)計(jì)

        Vertica支持完全無(wú)共享海量并行存儲(chǔ)(MPP)架構(gòu),隨著硬件Server的增加,多個(gè)CPU并行處理,性能也可以得到線性的擴(kuò)展,這樣用戶使用廉價(jià)的硬件就可以獲得較高的性能改善。

        3.6 其他管理特征

        除了有優(yōu)越的性能以外,Vertica在數(shù)據(jù)庫(kù)管理方面也進(jìn)行了非常人性化的設(shè)計(jì)。

        Vertica Database Designer是一個(gè)界面化的日常管理工具,并且能為用戶作出詳盡的DB層物理設(shè)計(jì)方案,大大減少了日后的性能調(diào)優(yōu)方面的開(kāi)銷(xiāo)。

        Vertica通過(guò)K-Safety值的設(shè)置,完成了數(shù)據(jù)庫(kù)的備份恢復(fù)機(jī)制,并保證了高可用性。

        對(duì)于數(shù)據(jù)庫(kù)中的每個(gè)表每個(gè)列,Vertica都會(huì)在至少K+1個(gè)節(jié)點(diǎn)上存儲(chǔ),如果有K個(gè)節(jié)點(diǎn)宕機(jī),依然能夠保證Vertica DB是完整可用的;當(dāng)損壞的節(jié)點(diǎn)恢復(fù)時(shí),Vertica自動(dòng)完成節(jié)點(diǎn)間的熱交換,把其他節(jié)點(diǎn)上的正確數(shù)據(jù)恢復(fù)過(guò)來(lái)。通過(guò)這種機(jī)制也保證了Vertcia庫(kù)的節(jié)點(diǎn)數(shù)目可以自由伸縮而不會(huì)影響到數(shù)據(jù)庫(kù)的操作。

        Vertica通過(guò)兩種技術(shù)來(lái)實(shí)現(xiàn)在線的持續(xù)數(shù)據(jù)裝載而不會(huì)影響到數(shù)據(jù)庫(kù)的訪問(wèn)。

        首先,Vertica通常運(yùn)行在快照隔離(Snapshot Isolation)模式下,該模式下查詢讀取的是最近的一致的數(shù)據(jù)庫(kù)快照,這個(gè)快照是不能被并發(fā)的update或delete操作更改的,因此查詢操作也不需要占用鎖,這種方式保證了數(shù)據(jù)裝載(insert)和其他查詢能互不干擾。另外,Vertica可以把數(shù)據(jù)直接裝載到WOS結(jié)構(gòu)中,WOS中的數(shù)據(jù)是不排序或索引的,所以裝載速度會(huì)很快,然后再由Tuple Mover進(jìn)程在后臺(tái)把數(shù)據(jù)移入ROS中,由于TupleMover的操作是大塊讀?。╞ulk-load)的,所以性能也很好。

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

        綜上所述,Vertica在設(shè)計(jì)上充分考慮和利用了列式存儲(chǔ)的優(yōu)越性,使數(shù)據(jù)庫(kù)的整體性能、易用性及可靠性方面都達(dá)到了較高的水平,同時(shí)Vertica提供了大量的管理監(jiān)控工具及APIs接口等,給使用者帶來(lái)了方便,因此這幾年的發(fā)展速度也很快,值得我們關(guān)注。

        [1]程瑩.云計(jì)算時(shí)代的數(shù)據(jù)庫(kù)研究[J],電信技術(shù),2011,(01).

        [2]尹東方.列式存儲(chǔ)在知識(shí)發(fā)現(xiàn)系統(tǒng)中的應(yīng)用與實(shí)現(xiàn)[D].中國(guó)優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫(kù),2010,(07).

        [3]石菲.列式數(shù)據(jù)庫(kù)持續(xù)突破[J].中國(guó)計(jì)算機(jī)用戶,2009,(09).

        [4]Pedro Furtado.Model and procedure for performance and availability-w ise parallel warehouses,Distributed and Parallel Databases,2009,(02).

        [5]Zack Jourdan;R.Kelly Rainer;Thomas E.Marshall.Business Intelligence:An Analysis of the Literature,Information Systems Management,2008,(03).

        [6]Willian H.Inmon.Building the Data Warehouse,4 edition,Wiley Education,2005:327-389.

        猜你喜歡
        快照列式體系結(jié)構(gòu)
        EMC存儲(chǔ)快照功能分析
        天津科技(2022年5期)2022-05-31 02:18:08
        準(zhǔn)確審題正確列式精確驗(yàn)證
        教師·下(2017年10期)2017-12-10 12:35:13
        創(chuàng)建磁盤(pán)組備份快照
        每筐多裝多少
        基于粒計(jì)算的武器裝備體系結(jié)構(gòu)超網(wǎng)絡(luò)模型
        作戰(zhàn)體系結(jié)構(gòu)穩(wěn)定性突變分析
        基于DODAF的裝備體系結(jié)構(gòu)設(shè)計(jì)
        基于云計(jì)算的航天器控制系統(tǒng)自組織體系結(jié)構(gòu)
        數(shù)據(jù)恢復(fù)的快照策略
        一張“快照”搞定人體安檢
        高潮潮喷奶水飞溅视频无码| 亚洲国产综合久久天堂| 色一情一乱一伦麻豆| 热re99久久精品国产99热| 国产免费看网站v片不遮挡| 日韩av最新在线地址| 亚洲色图在线免费观看视频| 曰韩无码二三区中文字幕| 欧美在线成人午夜网站| 男女午夜视频一区二区三区| 国产亚洲av另类一区二区三区| 精品国产乱码久久久久久影片| 国产成人AV无码精品无毒| 日韩人妖一区二区三区| 日韩亚洲中文有码视频| 日本50岁丰满熟妇xxxx | 乱子伦在线观看| 亚洲精品第一页国产精品| 美女福利一区二区三区在线观看| 日韩高清不卡一区二区三区| 欧洲美女黑人粗性暴交| 国产综合色在线视频| 成人在线视频亚洲国产| 国产免费牲交视频| 影视先锋av资源噜噜| 国产做床爱无遮挡免费视频| 久久久亚洲免费视频网| 蜜臀av999无码精品国产专区| 免费看操片| 精品蜜桃在线观看一区二区三区| 欧美性白人极品1819hd| 精品久久人人爽天天玩人人妻| 激情亚洲的在线观看| 久久精品亚洲熟女av麻豆| 亚洲av无码一区二区三区不卡| 纯肉无遮挡H肉动漫在线观看国产 国产精品自产拍在线观看免费 | 国产成人亚洲综合无码品善网| 人妻丰满熟妇AV无码区HD| 扒开非洲女人大荫蒂视频| 白白白在线视频免费播放| 深夜福利小视频在线观看 |