前言
隨著對各種業務支撐系統以及信息系統應用的不斷深入, 企業累積了大量的數據。如何從這些數據中獲取對企業競爭和發展有著關鍵作用的各種信息和知識變得尤為重要, 因此商務智能(Business Intelligence)應運而生。商務智能系統目前已經得到很多企業的重視并被逐步應用。商務智能分析的基礎是企業長期運營所積累的大量數據, 這些數據來自不同的生產系統或者業務支撐系統, 一般都有異構、數據量大、數據質量較差等特點, 因此我們又不得不面臨一個嚴峻的問題, 那就是如何提升利用這些數據進行分析決策的商務智能系統的性能。
1 商務智能概述
商務智能是對商業數據的采集、管理、分析得出所需信息并最終用信息指導決策的過程。其目的是使企業的決策者能更方便地通過商務智能系統從大量的數據中獲取信息和知識, 以便作出更恰當的決策。商務智能又被稱為第三代商業信息系統, 因為以前的生產系統、業務支撐系統的核心是聯機事務處理(OLTP), 而商務智能的核心則在于聯機分析處理(OLAP) 。商務智能系統一般有數據倉庫( 或數據集市) 、ETL 過程、OLAP 分析模型、數據挖掘模型以及前端分析展現工具等幾個核心模塊。從目前國內的應用來看, 其中對商務智能系統性能影響較大的主要是數據倉庫( 或數據集市) 、ETL 過程、OLAP分析模型。
1.1 數據倉庫簡述
數據倉庫是建設商務智能系統的基礎, 通過數據倉庫, 商務智能可以截取或載入大量原始信息, 歸并各種不同來源的、異構的數據源的數據, 用于支持企業管理和商業決策。數據倉庫具有以下特性:
(1) 數據倉庫是面向主題的、集成的、穩定的和隨時間不斷變化的數據集合。
(2)數據倉庫又是以關系數據庫、并行處理和分布式技術為基礎的。
(3)數據倉庫具有豐富的數據采集、數據管理、數據分析和信息描述能力。依據所管理數據的類型及所解決問題的范圍, 數據倉庫可分為企業數據倉庫、操作型數據存儲、數據集市等三種類型。企業數據倉庫包含當前、歷史及綜合的數據, 用于企業級的決策分析; 而數據集市是數據倉庫的一種具體化, 通常面對的是企業中一個部門或者某一專門的主題;操作型數據存儲指數據 ETL 過程中的臨時過渡區, 其僅包含當前、細節和輕度綜合的數據。
1.2 ETL 過程簡述
ETL 是數據的提取、轉換和加載(Extract, Transform and loading) 的過程, 旨在從多個數據源( 可以包括生產系統和業務支撐系統的關系數據庫、文本、HTML 數據、XML數據等) 及時提取業務數據并進行清理轉換, 然后集成這些數據, 并將它們載入數據倉庫數據庫中, 為數據分析做好準備。ETL 過程中的主要處理包括抽取、驗證、清洗、轉換、聚集、加載。
(1) 抽取:數據提取是捕獲源數據的過程, 主要有完全刷新和增量更新兩種捕獲數據的方法;
(2) 驗證:域檢查和外鍵檢查等;
(3) 清洗:數據清理是清理有效數據,使之更精確更有意義的過程;
(4) 轉換:主要包括從數據源的數據合并、域轉換和同步、數據類型和格式的轉換、用于不同目標表的數據分離;
(5) 聚集:數據聚集是收集并以總結行式表達信息的過程;
(6) 加載:數據移至中心數據倉庫中的目標表通常是 ETL 過程的最后步驟。
1.3 OLAP 模型簡述
OLAP 模型是進行數據分析以及建立數據挖掘模型的基礎。OLAP 的基本思想是, 根據數據倉庫中的主題確定一組我們關心的業務指標, 這些指標在 OLAP 模型中叫度量值; 確定與這些指標相關聯的在數據分析時會被關心分析角度, OLAP 模型中叫做維度。在此基礎上在維度中的各個層次上對指標值進行預先的聚合等預處理以便提高查詢時的響應速度。OLAP模型的核心是度量值和維, 通過對多維數據的鉆取、切片及旋轉等分析動作, 來完成對不同度量值在不同層次上的查詢分析。
2 影響商務智能系統性能的關鍵因素
根據項目實施經驗, 數據倉庫的設計會直接影響 ETL 過程的性能和 OLAP 模型性能, 因此設計具有良好結構的數據倉庫則成為商務智能系統性能的基礎。商務智能系統上線運行過程中, ETL 過程所耗費的時間一般在整個系統中會占用相當多的時間, 因此提升 ETL 性能是整個系統性能提升的關鍵之一, OLAP 模型則是后面的數據分析和數據挖掘的基礎, 因此OLAP 模型對查詢分析的響應速度也顯得尤為重要。如何建立合理的 OLAP 模型,或者說如何優化 OLAP 模型的性能則成為整個商務智能系統性能提升的又一關鍵。
2.1 數據倉庫設計中的關鍵因素
(1) 索引的使用。從嚴格意義上說, 數據倉庫仍然是一種關系數據庫, 因此與在任何關系數據庫中一樣, 索引對數據倉庫的性能具有重要作用。
(2) 設計怎樣的數據表才能裝載數據量龐大的數據和承載大量數據的插入、刪除、修改、查詢對系統帶來的壓力。這是因為商務智能系統中的數據來源一般來說數據量會比較大, 且會定期的產生大量的數據, 需要對表進行大量的插入、修改操作, 同時, 商務智能系統中, 對數據表的查詢也是非常頻繁的, 特別是作為事實表的數據。
(3) 各種鍵的數據類型的選擇。維度表和事實表以及各種中間臨時表的鍵的數據類型直接影響 ETL 和 OLAP 的性能。
2.2 ETL 過程設計中的關鍵因素
(1) 由于 目 前 大部分 ETL 工具采用程序轉換和 SQL 視圖轉換相結合的方式,選擇合理的轉換方式可對性能有較大的提升。
(2)ETL 過程中各個活動的執行順序、并行性等也對性能提升有關鍵性的作用。
2.3 OLAP 模型設計中的關鍵因素
(1) 維度的結構模型設計會直接影響整個 OLAP 模型的預處理以及對查詢的響應速度。
(2)CUBE 分區的設計, 當數據量過大或者使用多臺服務作 OLAP Server 要實現各服務器的負載均衡時, 必須考慮 CUBE分區。優良的分區設計是 CUBE 性能的關鍵之一。
(3)CUBE 中計算成員的設計。
3 提升商務智能系統性能的解決方案
基于對影響商務智能系統性能的關鍵因素的分析, 就可針對性地提出相應的解決方案。
3.1 提升數據倉庫性能解決方案
(1) 在數據倉庫設計中使用索引, 每個維度表都必須在主鍵上建立索引。事實數據表必須在由維度表外鍵構成的組合主鍵上建立索引。在其它列( 如標識層次結構級別的列) 上, 索引對某些專用查詢的性能也很有用。由于星型架構和雪花型架構很簡單, 大多數數據倉庫應用程序所需的索引主要就是這些。對于特殊查詢和創建報表, 則可能需要其它索引。為了配合 ETL 中大量數據的載入, 聚集索引的取舍則主要取決于對數據載入性能和數據查詢的性能的綜合評估。
(2) 對數據量較大的表例如某些事實表則盡可能對表進行分區。所謂分區是指將表分成多個較小的表( 稱為成員表) , 每一個成員表與原始表有相同的格式, 但僅包含原始表中的部分行。也可將每一個表放在不同的資源( 文件或服務器) 上, 以使處理負荷分散到多個資源上。分區后每個分區表數據量相對較小, 可提升數據載入、修改、查詢過程的性能; 分區也對 OLAP 模型中的 CUBE 分區起到較好的作用。
(3) 每個維度表的主鍵應盡可能的設計為數值類型, 一般是整型。相應的事實表由維度表外鍵構成的主鍵也盡可能的設計為整型。
3.2 提升 ETL 過程性能的解決方案
(1) 正因為大部分 ETL 工具采用程序轉換和 SQL 視圖轉換相結合的方式, 且部分 ETL 工具在程序轉換上提供了相當強大的功能, 因此轉換方式的選擇顯得相當重要。一般來說, 數據域轉換和同步、數據類型和格式的轉換、用于不同目標表的數據分離等操作, 采用程序轉換可實現較SQL 視圖轉換更優越的性能; 數據源的連接、合并等操作則應選擇 SQL 視圖轉換。
(2)一般的 ETL 工具中 ETL 流程的各個活動是串行的, 并沒有自動對流程中的各個活動的并行執行進行專門優化的機制。那么同一時刻 ETL 流程中只有某一個活動在執行, 而其余的活動必須等待其上一個活動執行完畢方可開始執行。為了提高一個 ETL 流程中各個活動的并行性, 可在 ETL 流程執行前, 對各個活動進行時間代價估算, 按一定規則對 ETL 流程中各個活動的輸人水平分割成相等大小的多個水平裂片, 使后一個活動的執行不須等前一活動的所有數據完全處理結束才能執行, 只須前一活動的部分數據裂片到達即可開始執行, 從而減少各個階段的空閑等待時間, 來加快響應時間, 實現 ETL 流程中各個活動的并行流水執行。
3.3 提升 OLAP 模型的解決方案
(1)在設計 OLAP 的維度的過程中, 有多種維度結構包括星型結構、雪花結構、父子維度、虛擬維度等。一般情況下星型結構會相對雪花結構的性能高; 虛擬維度會相對普通星型結構性能高。因此在維度設計過程中, 應在能滿足需求的前提下盡可能使用恰當的維度。
(2) 多維數據集分區允許多維數據集的源數據和聚合數據分布在多臺服務器中。多維數據集中的每個分區都可以有不同的數據源。一般分區建立有兩種方式,一是來自同一事實表, 按切片分區; 一是來自不同事實表的數據可按表源實現分區。當數據量較大時對 CUBE 分區, 使得每次處理可只處理當前的分區和需要更新的分區, 而不必每次都完整處理整個多維數據集, 實現增量更新。然而, 當多個分區存在時, 查詢則需對各個分區的聚合數據進行進一步聚合, 這會影響查詢響應速度, 因此為了提高查詢響應速度必須預先對不再更新的分區進行合并。還需要注意的是在建立分區時應保證各個將來可能合并的分區使用相同的聚合以便合并。
(3) 為了避免因為計算成員而影響整個多維數據集性能, 應注意建立計算成員時 MDX 函數和表達式的選擇, 例如 FIL-TER函數對性能的影響是較大的, 應慎重使用。
4 結束語
在當今社會, 信息化程度越來越高,競爭日益激烈, 企業會越來越多地使用商務智能系統, 這也對商務智能系統的性能提出了更高的要求。實際實施過程中, 影響商務智能系統性能的因素是多方面的,例如硬件因素、數據質量、系統本身的設計等。從商務智能系統的核心模塊的設計角度出發研究影響系統性能的關鍵因素和相應解決方案, 對商務智能系統項目的實施人員和實施過程有不可忽視的作用。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.guhuozai8.cn/
本文標題:商務智能系統性能研究
本文網址:http://m.guhuozai8.cn/html/consultation/10820615785.html