不多說,直接上干貨!
在數據倉庫領域里,的一個重要概念就是數據整合(data intergration)。數據整合它就是把不同數據庫中的數據整合到一起,對外提供統一的數據視圖。
數據整合最典型的案例就是整合存貨數據和訂單數據。數據整合的另一個案例就是把各個部門的客戶關系管理系統中的客戶信息整合到公司客戶關系管理系統中。
數據整合是一個比ETL更加廣泛的概念,ETL是指從一個或多個數據源抽取數據,經過一個或多個轉換步驟后,物理地存儲到目標環境中,目標環境通常是數據倉庫。
ETL是data integration中的一種而已。
1、抽取:一般抽取過程需要連接到不同的數據源,以便為隨后的步驟提供數據。這一部分看上去簡單而繁瑣,實際上它是ETL解決方案成功實施的一個主要障礙。
2、轉換:在抽取和加載之間的,任何對數據的處理過程都是需要轉換。這些處理過程通常包括(但不局限於)下面的這些操作:
移動數據
根據規則驗證數據
數據內容和數據結構的修改
集成多個數據源的數據
根據處理后的數據計算派生值和聚集值
3、加載:將數據加載到目標系統的所有操作。
一圖勝千言!

數據倉庫典型架構圖
在上圖中,有多個業務源系統,一個數據中轉區,一個保存了所有歷史數據的數據倉庫和多個可以由終端用戶訪問的數據集市。
這些組成部分都是由數據整合過程來完成的,就是上圖中顯示的ETL。
在源系統和數據倉庫之間,有一個數據中轉區,也可以叫做數據緩沖區。它僅用來快速地從源數據系統中獲取數據,並暫時保留這些數據。它不一定是一個數據倉庫,在很多情況下,將數據保存在ASCII文件中比插入數據庫表中還要快。
ELT和ETL的區別
ELT,(即抽取、加載和轉換的簡稱),在同ETL在數據整合的方法上有略微不同。在ETL的情況下,數據首先從源數據(可能是多個)進行抽取、加載到目標數據庫中,再轉換為所需的格式。所有大數據量處理全部放在目標數據庫中進行。這種做法的好處在於,一般情況下,數據庫系統更適合處理負荷在百萬級以上的數據集成。
ELT工具需要知道,如何使用目標數據庫平台和相應的SQL語言。這就是在市面ELT解決方案較少的原因,類似Kettle這樣的通用ETL工具也同樣缺少這些功能。
EII是虛擬數據整合,為什么要提出呢?因為啊,ETL和ELT都屬於物理數據整合。即都是以物理方式將數據從OLTP移動或復制到數據倉庫。

有些情況啊,沒有必要移動或復制數據。實際上,大多數用戶並不關心ETL過程和數據倉庫:他們只是想獲得他們想要的數據!好比,我把上圖比喻成飯店的廚房吧,我作為一個顧客並不關心飯菜是如何做出的,我只是希望能准時並且味道口可就行,什么廚房里發生事情跟我顧客身份無關。
那么,這個生活里的道路,也適合在數據倉庫里:即有些用戶並不關心數據是如何處理的,他們紫紅色想快速而容易訪問到數據就行。
即,除了屬於物理數據集成方式里的ETL和ELT外,還有屬於虛擬數據集成方式的EII。
虛擬數據集成和物理數據集成的比較

當然,我這系列博客,是定位於Kettle,目前最流行、功能最強大的數據整合工具是Kettle,也被稱為Pentaho Data Integration。
同時,大家可以關注我的個人博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/ http://www.cnblogs.com/sunnyDream/
詳情請見:http://www.cnblogs.com/zlslch/p/7473861.html
人生苦短,我願分享。本公眾號將秉持活到老學到老學習無休止的交流分享開源精神,匯聚於互聯網和個人學習工作的精華干貨知識,一切來於互聯網,反饋回互聯網。
目前研究領域:大數據、機器學習、深度學習、人工智能、數據挖掘、數據分析。 語言涉及:Java、Scala、Python、Shell、Linux等 。同時還涉及平常所使用的手機、電腦和互聯網上的使用技巧、問題和實用軟件。 只要你一直關注和呆在群里,每天必須有收獲
對應本平台的討論和答疑QQ群:大數據和人工智能躺過的坑(總群)(161156071)






