三十八、商业智能与ETL基础知识
1. ETL基礎知識
1.1 商業智能的概念
商業智能(Business Intelligence,簡稱:BI),又稱商業智慧或商務智能,指用現代數據倉庫技術、線上分析處理技術、數據挖掘和數據展現技術進行數據分析以實現商業價值。
ETL是BI項目重要的一個環節。通常情況下,在BI項目中ETL會花掉整個項目的1/3的時間,ETL設計的好壞直接關接到BI項目的成敗,ETL在數據挖掘中的作用如圖所示:。
- ETL的基礎概念:背景、定義和過程
- ETL模式介紹
- ETL常用工具
2 ETL基礎概念:背景、定義和過程
2.1 ETL產生的背景
隨著企業的發展,各業務線、產品線、部門都會承建各種信息化系統方便開展自己的業務。隨著信息化建設的不斷深入,由于業務系統之間各自為政、相互獨立造成的數據孤島”現象尤為普遍,業務不集成、流程不互通、數據不共享。這給企業進行數據的分析利用、報表開發、分析挖掘等帶來了巨大困難。
為了實現企業全局數據的系統化運作管理(信息孤島、數據統計、數據分析、數據挖掘) ,為DSS(決策支持系統)、BI(商務智能)、經營分析系統等深度開發應用奠定基礎,挖掘數據價值 ,企業會開始著手建立數據倉庫,數據中臺。將相互分離的業務系統的數據源整合在一起,建立一個統一的數據采集、處理、存儲、分發、共享中心。
2.2 ETL的定義
ETL是將業務系統的數據經過抽取(Extract)、清洗轉換(Transform)之后加載(Load)到數據倉庫的過程,目的是將企業中的分散、零亂、標準不統一的數據整合到一起,為企業的決策提供分析依據。
2.3 ETL的實施過程
ETL處理分為五大模塊,分別是:數據抽取、數據清洗、庫內轉換、規則檢查、數據加載。各模塊可靈活進行組合,形成ETL處理流程。
-
數據抽取
- 確定數據源,需要確定從哪些源系統進行數據抽取。
- 定義數據接口,對每個源文件及系統進行詳細說明。
-
ETL的數據清洗
- 將不完成的數據、錯誤數據、重復數據進行處理
-
數據轉換
- 空值處理:可捕獲字段空值,進行加載或替換為其他含義數據,或數據分流問題庫
- 數據標準:統一元數據、統一標準字段、統一字段類型定義
- 數據拆分:依據業務需求做數據拆分,如身份證號,拆分區劃、出生日期、性別等
- 數據驗證:時間規則、業務規則、自定義規則
- 數據替換:對于因業務因素,可實現無效數據、缺失數據的替換
- 數據關聯:關聯其他數據或數學,保障數據完整性
2.5 ETL的數據加載
將數據緩沖區的數據直接加載到數據庫對應表中,如果是全量方式則采用LOAD方式,如果是增量則根據業務規則MERGE進數據庫
ETL架構的優勢
- 可以分擔數據庫系統的負載(采用單獨的硬件服務器)
- 相對于ELT架構可以實現更為復雜的數據轉換邏輯
- 采用單獨的硬件服務器
- 與底層的數據庫存儲無關
3 ETL模式介紹
觸發器方式是普遍采取的一種增量抽取機制。該方式是根據抽取要求,在要被抽取的源表上建立插入、修改、刪除3個觸發器,每當源表中的數據發生變化,就被相應的觸發器將變化的數據寫入一個增量日志表。
- 優點:數據抽取的性能高,ETL 加載規則簡單,速度快,不需要修改業務系統表結構,可以實現數據的遞增加載。
- 缺點:要求業務表建立觸發器,對業務系統有一定的影響,容易對源數據庫構成威脅。
增量字段方式來捕獲變化數據,原理就是在源系統業務表數據表中增加增量字段,增量字段可以是時間字段,同時也可以是自增長字段(如oracle的序列),設計要求就是源業務系統中數據新增或者被修改時,增量字段就會產生變化,時間戳字段就會被修改為相應的系統時間,自增長字段就會增加。
- 優點:同觸發器方式一樣,時間戳方式的性能也比較好,ETL 系統設計清晰,源數據抽取相對清楚簡單,可以實現數據的遞增加載。
- 缺點:時間戳維護需要由業務系統完成,對業務系統也有很大的侵入性(加入額外的時間戳字段),特別是對不支持時間戳的自動更新的數據庫,還要求業務系統進行額外的更新時間戳操作。
全量同步又叫全表刪除插入方式,是指每次抽取前先刪除目標表數據,抽取時全新加載數據。該方式實際上將增量抽取等同于全量抽取。對于數據量不大,全量抽取的時間代價小于執行增量抽取的算法和條件代價時,可以采用該方式。
- 優點:對已有系統表結構不產生影響,不需要修改業務操作程序,所有抽取規則由ETL完成,管理維護統一,可以實現數據的遞增加載,沒有風險。
- 缺點:ETL 比對較復雜,設計較為復雜,速度較慢。
日志比對的方式是通過獲取數據庫層面的日志來捕獲到變化的數據。
- 優點:ETL同步效率較高,不需要修改業務系統表結構,可以實現數據的遞增加載。
- 缺點:業務系統數據庫版本與產品不統一,難以統一實現,實現過程相對復雜,并且需深入研究方能實現。或者通過第三方工具實現,一般都是商業軟件,而且費用較高。
4 ETL常用工具
4.1 為什么要使用ETL工具
- 當數據來自不同的物理主機,這時候如果使用SQL語句去處理的話就顯得比較吃力且開銷也更大。
- 數據來源可以是各種不同的數據庫或者文件,這時候需要先把他們整理成統一的格式后才可以進行數據的處理,這一過程用代碼實現顯然有些麻煩。
- 在數據庫中我們當然可以使用存儲過程去處理數據,但是處理海量數據的時候存儲過程顯然比較吃力,而且會占用較多數據庫的資源,這可能會導致數據庫資源不足,進而影響數據庫的性能。
4.2 主流ETL工具推薦
總結
以上是生活随笔為你收集整理的三十八、商业智能与ETL基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三十七、数据泛化(面向属性的归纳)
- 下一篇: 三十九、ETL工具Kettle基础使用