|
高性能海量級(jí)數(shù)據(jù)倉(cāng)庫(kù)引擎Sybase IQ概述
發(fā)表日期:2008-4-23 |
-
目前,數(shù)據(jù)倉(cāng)庫(kù)雖然是一個(gè)正在發(fā)展中的事物,但它的技術(shù)發(fā)展及應(yīng)用的動(dòng)力是商業(yè)競(jìng)爭(zhēng)迫切需要的。其定義及分類(lèi)也會(huì)隨著時(shí)代的發(fā)展而適時(shí)變化。目前流行的描述方法是:"數(shù)據(jù)倉(cāng)庫(kù)是把企業(yè)中各分散的原始操作數(shù)據(jù)和來(lái)自外部的數(shù)據(jù)匯集和整理成一個(gè)單一的關(guān)系數(shù)據(jù)庫(kù),為企業(yè)提供完整、及時(shí)、準(zhǔn)確和明了的商業(yè)決策信息,并使最終用戶(hù)可以直接從數(shù)據(jù)倉(cāng)庫(kù)提取信息來(lái)進(jìn)行各種決策分析"。 從數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)來(lái)源及實(shí)施環(huán)境來(lái)看,它離不開(kāi)數(shù)據(jù)庫(kù),數(shù)據(jù)倉(cāng)庫(kù)技術(shù)與數(shù)據(jù)庫(kù)技術(shù)有緊密聯(lián)系,二者能相互連通,相互支持,又有著重要差別。主要是數(shù)據(jù)倉(cāng)庫(kù)側(cè)重于決策分析,而數(shù)據(jù)庫(kù)則側(cè)重于操作和管理。 其中Data Mart(專(zhuān)用數(shù)據(jù)倉(cāng)庫(kù))是為滿(mǎn)足用戶(hù)特定需求而創(chuàng)建的數(shù)據(jù)倉(cāng)庫(kù),具有傳統(tǒng)意義上的數(shù)據(jù)倉(cāng)庫(kù)的基本特征,可以看成是中央數(shù)據(jù)倉(cāng)庫(kù)的一個(gè)子集,是針對(duì)某個(gè)部門(mén)級(jí)的應(yīng)用( 如市場(chǎng)、財(cái)務(wù)、銷(xiāo)售
、產(chǎn)品控制等)而建立的數(shù)據(jù)倉(cāng)庫(kù)。企業(yè)最高級(jí)集中化的數(shù)據(jù)倉(cāng)庫(kù)可稱(chēng)之為原子化(Atomic)數(shù)據(jù)倉(cāng)庫(kù)。它主要用作其各個(gè)子集——Data Mart的集結(jié)基礎(chǔ)(Staging ground)以及作為參照(reference)用的中央數(shù)據(jù)倉(cāng)庫(kù)。
各個(gè)Data Mart物理上往往散布到與最終用戶(hù)較近的地點(diǎn)以節(jié)約通信開(kāi)銷(xiāo)并提高響應(yīng)速度。故相對(duì)于集中化的數(shù)據(jù)倉(cāng)庫(kù)而言,把Data Mart又稱(chēng)分布式的數(shù)據(jù)倉(cāng)庫(kù)。與中央數(shù)據(jù)倉(cāng)庫(kù)相比它與(某組)用戶(hù)更具交互性。
應(yīng)著重指出的是,建立Data Mart的著眼點(diǎn)主要在于它的目標(biāo)而不是規(guī)模。一般情況下Data Mart比中央數(shù)據(jù)倉(cāng)庫(kù)小一些,比如在大型保險(xiǎn)公司的數(shù)據(jù)倉(cāng)庫(kù)中所涉及的"主題"可能是保險(xiǎn)金、客戶(hù)等,而在
其地區(qū)辦事處建立的Data Mart可能僅涉及這些主題的一個(gè)子集——本地區(qū)的客戶(hù)、保險(xiǎn)金等。
交互式數(shù)據(jù)倉(cāng)庫(kù)解決方案Sybase IQ 作為國(guó)際著名數(shù)據(jù)庫(kù)廠(chǎng)商之一的Sybase公司推出了交鑰匙型的數(shù)據(jù)倉(cāng)庫(kù)解決方案。
Sybase交互式數(shù)據(jù)倉(cāng)庫(kù)解決方案的著眼點(diǎn)是以較低的花費(fèi),按一個(gè)易于管理和擴(kuò)充的基礎(chǔ)框架為企業(yè)用戶(hù)和信息技術(shù)部門(mén)提供快速的解決方案。
Sybase的特色產(chǎn)品便是Sybase IQ,它能方便地為用戶(hù)建立Data Mart,即部門(mén)級(jí)的數(shù)據(jù)倉(cāng)庫(kù),或"面向應(yīng)用系統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)"。
為使各Data Mart能與該企業(yè)中其它Data Mart保持一致的增長(zhǎng)和維護(hù),在創(chuàng)建時(shí)就應(yīng)有充分的考慮。因而Sybase推出了一個(gè)名為"Quick Start Data Mart"的交鑰匙型解決方案。它是以Sybase IQ為核心,
由Sybase及第三方(如:Business Object等)的產(chǎn)品和服務(wù)打包而成。
另外還包括了必要的專(zhuān)家咨詢(xún)和技術(shù)培訓(xùn),以保證在短期內(nèi)為用戶(hù)創(chuàng)建一個(gè)實(shí)用的Data M art。
這一方案的特點(diǎn)包括:
◆能夠快速獲得效益,風(fēng)險(xiǎn)低;
◆以較經(jīng)濟(jì)的方式能夠?qū)Υ罅坑脩?hù)的即席查詢(xún)給出極快的響應(yīng)。
◆易于實(shí)現(xiàn)企業(yè)內(nèi)部數(shù)據(jù)倉(cāng)庫(kù)與Inernet應(yīng)用的有機(jī)結(jié)合。
Sybase IQ技術(shù)
Sybase IQ是針對(duì)DSS應(yīng)用而提供的一個(gè)特定的數(shù)據(jù)庫(kù)服務(wù)器,它能上百倍地提高交互式即席查詢(xún)的速度,特別適用于交互式數(shù)據(jù)倉(cāng)庫(kù)環(huán)境。
Sybase IQ服務(wù)器可透明地集成到Sybase的開(kāi)放性客戶(hù)/服務(wù)器體系結(jié)構(gòu)中,它使用標(biāo)準(zhǔn)的SQL命令,支持DB-Lib、CT-Lib和ODBC客戶(hù)調(diào)用。因而,利用Isql及各種流行的前端工具,如PowerBuilder、access
、SAS Assist及Business Object等都可方便地訪(fǎng)問(wèn)Sybase IQ服務(wù)器。
Sybase IQ服務(wù)器可與SQL Server混合使用。一個(gè)內(nèi)置的智能查詢(xún)管理器可識(shí)別并透明地將對(duì)數(shù)據(jù)庫(kù)的更新傳遞到SQL Server以完成OLTP;同時(shí)利用Sybase IQ來(lái)解決用于DSS的即席查詢(xún)。Sybase IQ的Bit-Wise索引可定期地在非高峰時(shí)刻批量地進(jìn)行更新。SQL Server和Sybase IQ有一個(gè)共同集成的目錄(Catalog),這樣,在Sybase環(huán)境中可統(tǒng)一管理安全性和其他服務(wù),Sybase IQ也可有效地支持SMP環(huán)境及多用戶(hù)并發(fā)操作。
Sybase IQ服務(wù)器的技術(shù)特色
Sybase IQ服務(wù)器的主要特點(diǎn)為:
◆數(shù)據(jù)的垂直分割——數(shù)據(jù)是按"列"來(lái)儲(chǔ)存。查詢(xún)時(shí)僅需讀取在該查詢(xún)中所涉及的各列的索引,因而徹底避免了耗時(shí)的全表掃描。
◆采用了突破性的數(shù)據(jù)存取方法——Bit-Wise索引技術(shù)。
◆在數(shù)據(jù)壓縮和并行處理方面有獨(dú)到之處。
◆提供有效的預(yù)連接(PReJoin)策略。
Sybase IQ服務(wù)器的核心由于采用了正在申請(qǐng)專(zhuān)利的Bit-Wise索引技術(shù),它在處理復(fù)雜的即席查詢(xún)時(shí),能比傳統(tǒng)的B-Tree索引能提高響應(yīng)速度10~100倍。 對(duì)B-Tree及Bit-Map索引的簡(jiǎn)要回顧
1.傳統(tǒng)的B-Tree(平衡樹(shù))索引是通過(guò)跟蹤一個(gè)選擇的數(shù)據(jù)字段的值和直接指向包含該數(shù)據(jù)項(xiàng)的數(shù)據(jù)頁(yè)的方式來(lái)提供快速查找數(shù)據(jù)記錄。
傳統(tǒng)的B-Tree 樹(shù)索引
若為一個(gè)特定的客戶(hù)查找信息記錄就只有快速讀取索引,然后直接定位到包含該客戶(hù)信息的數(shù)據(jù)頁(yè)中。索引方式通過(guò)直接指向相關(guān)信息來(lái)消除高代價(jià)的表掃描。
B-Tree非常適合于查找并取回少量的行。但對(duì)典型的數(shù)據(jù)倉(cāng)庫(kù)的復(fù)雜交互式查詢(xún)應(yīng)用B -Tree有三個(gè)缺點(diǎn):
首先,B-Tree只在索引是高度可選擇(Highly Selective)又稱(chēng)之為高基數(shù)(Cardinality )的時(shí)候才有價(jià)值,對(duì)一些唯一值極少的(低基數(shù))數(shù)據(jù)字段就幾乎毫無(wú)價(jià)值。
B-Tree索引第二個(gè)限制是在數(shù)據(jù)倉(cāng)庫(kù)中構(gòu)造和維護(hù)索引的代價(jià)。
由于B-Tree索引包含實(shí)際數(shù)據(jù)和其他信息(如指針等),因而使得索引需占用一定的空間和時(shí)間。如果構(gòu)造所有相關(guān)的索引,數(shù)據(jù)倉(cāng)庫(kù)就會(huì)占據(jù)2~4倍原始數(shù)據(jù)空間。當(dāng)成批插入刪除時(shí),索引就非常敏感,有可
能失去平衡并降低性能。通常說(shuō)來(lái),10%~15%的數(shù)據(jù)修改會(huì)導(dǎo)致重建索引。
最后,B-Tree索引設(shè)計(jì)用于簡(jiǎn)單查詢(xún)及已知公共存取路徑的環(huán)境下才有優(yōu)點(diǎn),而在數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用中,通常是復(fù)雜的查詢(xún),并經(jīng)常帶有分組及聚合條件。此時(shí),B-Tree索引往往是無(wú)能為力。
2.Bit-Map(位圖)索引和使用B-Tree相比,位圖為每個(gè)記錄的名字段用給定真或假("1"或"0")的方式表示。 傳統(tǒng)的位圖索引突破了B-Tree索引的一些限制。位圖索引可以非常有效地對(duì)低基數(shù)數(shù)據(jù)進(jìn)行索引,但位圖式索引卻不適用于高基數(shù)數(shù)據(jù),在聚集數(shù)據(jù)、完成關(guān)系聯(lián)結(jié)和取回原始數(shù)據(jù)值等方面的效率不高。
Bit-Wise的索引技術(shù)特點(diǎn) 1.Sybase IQ在存儲(chǔ)數(shù)據(jù)的方式上與傳統(tǒng)的RDBMS完全不同,它不是以"記錄行"而是按"列"為單位來(lái)存儲(chǔ)數(shù)據(jù)。即所謂的"對(duì)數(shù)據(jù)進(jìn)行垂直分割",它在Bit-Map索引基礎(chǔ)上擴(kuò)充存放了該字段中的不同取值,
一般的DSS查詢(xún)往往僅涉及大量數(shù)據(jù)記錄中的少數(shù)列,因而不需訪(fǎng)問(wèn)原始數(shù)據(jù)就能快速獲得查詢(xún)結(jié)果。顯然,利用這些不同取值也就能快速地進(jìn)行數(shù)據(jù)聚集、分組、求最大值、最小值及平均值等。它彌補(bǔ)了位圖式索引不適用于高基數(shù)數(shù)據(jù)的缺點(diǎn)。
2.由于列數(shù)據(jù)比行數(shù)據(jù)更易進(jìn)行壓縮,因而Sybase IQ以壓縮方式存放原始數(shù)據(jù)時(shí)可節(jié)省50%的磁盤(pán)空間,在獲取查詢(xún)結(jié)果數(shù)據(jù)時(shí)減少了I/O次數(shù),響應(yīng)速度自然加快。
3.Sybase IQ采用操作系統(tǒng)級(jí)的并行處理機(jī)制,因而像分類(lèi)、Bit-Map操作及I/O操作都可由操作系統(tǒng)獨(dú)立地進(jìn)行調(diào)度以消除瓶頸,進(jìn)而在數(shù)據(jù)加載時(shí)其能充分利用SMP環(huán)境中多CPU的資源潛力。
Bit-Wise"數(shù)據(jù)驅(qū)動(dòng)的"索引機(jī)制在Sybase IQ中對(duì)每個(gè)字段所建索引的類(lèi)型和個(gè)數(shù)主要是取決于其數(shù)據(jù)的特征和經(jīng)常被使用的情況而不是針對(duì)某組特定的查詢(xún)(后者被稱(chēng)為"查詢(xún)驅(qū)動(dòng)的"索引機(jī)制)。Bit-
Wise索引是"數(shù)據(jù)驅(qū)動(dòng)的",因而無(wú)需DBA為各種查詢(xún)分別考慮優(yōu)化策略。
Sybase IQ支持的主要索引類(lèi)型為:
·LowFast-LF(低基數(shù))
·HighGroup-HG(高基數(shù))
·HighNonGroup-HNG(高基數(shù))
·FastProjiectinFP
建立Bit-Wise索引的一般原則:
(1)在每個(gè)列上都建FP索引;
(2)在唯一值<1000的字段上建立LF索引;
(3)在參加連接的字段上建HG或LF索引;
(4)唯一值>1000且用在GROUP BY,SELCT DISITICT,COUNT DISITICT中的字段上建立HG索引;
(5)此外的其它列若出現(xiàn)在where條件中或聚集運(yùn)算中,則建立HNG索引。
Sybase IQ可利用預(yù)連接技術(shù)來(lái)提高即席查詢(xún)速度
Sybase IQ支持兩類(lèi)連接處理:一類(lèi)是即席連接(在查詢(xún)時(shí)處理);另一類(lèi)是預(yù)連接(在加載時(shí)處理)。大多數(shù)應(yīng)用是二者的結(jié)合。即席連接適用于多對(duì)多的聯(lián)系,被連接的表之間的尺寸差別超過(guò)10倍。
預(yù)連接適用于一對(duì)多的聯(lián)系,被連接的表之間的尺寸差別不大于10倍,如:等值或左、右外連接。但預(yù)連接將導(dǎo)致增大存儲(chǔ)量并降低加載速度。
Sybase IQ能對(duì)已建立了HG或LF索引的列,再利用"Joined Indexset"完成預(yù)連接處理。它通常能使查詢(xún)速度提高10倍以上。
設(shè)置Sybase IQ的基本步驟:
在安裝Sybase IQ產(chǎn)品之后:
1.建立與Sybase IQ Indexspace相關(guān)的SQL Server基礎(chǔ)數(shù)據(jù)庫(kù),Indexspace是SybaseIQ 用于存儲(chǔ)索引結(jié)構(gòu)和部分?jǐn)?shù)據(jù)的原始設(shè)備(rawdevices)或系統(tǒng)文件;
2.建立同基礎(chǔ)數(shù)據(jù)庫(kù)同名的Sybase IQ Indexspace,最大為2GB,I/O塊同壓縮比有關(guān),調(diào)節(jié)范圍512B到32KB;
3.在基礎(chǔ)數(shù)據(jù)庫(kù)上建表;
4.運(yùn)行Sybase IQ的存儲(chǔ)過(guò)程,估算所需空間;
5.為表中的某列或所有列建立Sybase IQ Indexsets,Indexsets是Sybase IQ存儲(chǔ)表中某列索引空間的,它存儲(chǔ)于Indexspace中;
6.定義不同Sybase IQ的索引類(lèi)型,(每列都建立一個(gè)FP索引然后酌情建立別種索引);
7.往Sybase IQ Indexset中加入新數(shù)據(jù),從相關(guān)的數(shù)據(jù)庫(kù)中插入數(shù)據(jù)到Sybase IQ Inde xes或利用ASCII文件加載;
8.建立供預(yù)連接用的Joined Indexset;
9.往Joined Indexset中加入新數(shù)據(jù)。
現(xiàn)在已可通過(guò)Isql或其他前端工具查詢(xún)Sybase IQ數(shù)據(jù)了。
測(cè)試比較
經(jīng)實(shí)際的測(cè)試后,Sybase IQ的效果良好。
資料引用:http://www./397626.html
|
|
|
來(lái)自: openlog > 《商業(yè)智能》