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