轉(zhuǎn)帖|行業(yè)資訊|編輯:陳俊吉|2016-05-24 10:42:06.000|閱讀 1521 次
概述:ETL (數(shù)據(jù)轉(zhuǎn)換)就是對數(shù)據(jù)的合并、清理和整合。通過轉(zhuǎn)換,可以實現(xiàn)不同的源數(shù)據(jù)在語義上的一致性。拋開大數(shù)據(jù)的概念與基本知識,進入核心。我們從:數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)管理、數(shù)據(jù)分析與挖掘,四個方面討論ETL在大數(shù)據(jù)實際應(yīng)用中涉及的技術(shù)與知識點。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
架構(gòu)挑戰(zhàn):
1、對現(xiàn)有數(shù)據(jù)庫管理技術(shù)的挑戰(zhàn)。
2、經(jīng)典數(shù)據(jù)庫技術(shù)并沒有考慮數(shù)據(jù)的多類別(variety)、SQL(結(jié)構(gòu)化數(shù)據(jù)查詢語言),在設(shè)計的一開始是沒有考慮到非結(jié)構(gòu)化數(shù)據(jù)的存儲問題。
3、實時性技術(shù)的挑戰(zhàn):一般而言,傳統(tǒng)系統(tǒng),BI應(yīng)用,對處理時間的要求并不高。因此這類應(yīng)用通過建模,運行1-2天獲得結(jié)果依然沒什么問題。但實時處理的要求,是區(qū)別大數(shù)據(jù)應(yīng)用和傳統(tǒng)數(shù)據(jù)倉庫技術(shù)、BI技術(shù)的關(guān)鍵差別之一。
4、網(wǎng)絡(luò)架構(gòu)、數(shù)據(jù)中心、運維的挑戰(zhàn):隨著每天創(chuàng)建的數(shù)據(jù)量爆炸性的增長,就數(shù)據(jù)保存來說,我們能改進的技術(shù)卻不大,而數(shù)據(jù)丟失的可能性卻不斷增加。如此龐大的數(shù)據(jù)量存儲就是首先面臨的非常嚴峻的問題,硬件的更新速速將是大數(shù)據(jù)發(fā)展的基石,但效果確實不甚理想。
分析技術(shù):
1、數(shù)據(jù)處理:自然語言處理技術(shù)(NLP)
2、統(tǒng)計和分析:A/B test、top N排行榜、地域占比、文本情感分析
3、:關(guān)聯(lián)規(guī)則分析、分類、聚類
4、模型預測:預測模型、機器學習、建模仿真
存儲:
1、結(jié)構(gòu)化數(shù)據(jù):海量數(shù)據(jù)的查詢、統(tǒng)計、更新等操作效率低
2、非結(jié)構(gòu)化數(shù)據(jù):圖片、視頻、word、PDF、PPT等文件存儲、不利于檢索,查詢和存儲
3、半結(jié)構(gòu)化數(shù)據(jù):轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù)存儲、按照非結(jié)構(gòu)化存儲
解決方案:
1、存儲:HDFS、HBASE、Hive、MongoDB等
2、并行計算:MapReduce技術(shù)
3、流計算:twitter的storm和yahoo的S4
大數(shù)據(jù)與云計算:
1、云計算的模式是業(yè)務(wù)模式,本質(zhì)是數(shù)據(jù)處理技術(shù)
2、數(shù)據(jù)是資產(chǎn),云為數(shù)據(jù)資產(chǎn)提供存儲、訪問和計算
3、當前云計算更偏重海量存儲和計算,以及提供的云服務(wù),運行云應(yīng)用。但是缺乏盤活數(shù)據(jù)資產(chǎn)的能力,挖掘價值性信息和預測性分析,為國家、企業(yè)、個人提供決策方案和服務(wù),是大數(shù)據(jù)核心議題,也是云計算的最終方向。
大數(shù)據(jù)平臺架構(gòu):
我想這幅架構(gòu)圖,對大數(shù)據(jù)處理的人來說,應(yīng)該不是很陌生。
IaaS::基礎(chǔ)設(shè)施即服務(wù)。基于 Internet 的服務(wù)(如存儲和數(shù)據(jù)庫)。
PaaS:平臺即服務(wù)。提供了用戶可以訪問的完整或部分的應(yīng)用程序。
SaaS:軟件即服務(wù)。則提供了完整的可直接使用的應(yīng)用程序,比如通過 Internet管理企業(yè)資源。
這里也不多涉及這方面的概念,在接下來的幾篇文章中,會對下圖中相關(guān)的部分(主要介紹PaaS模塊中涉及的部分)以及上面提及的技術(shù)挑戰(zhàn)和相關(guān)技術(shù)的介紹。
提綱:
數(shù)據(jù)采集:
數(shù)據(jù)存儲:關(guān)系數(shù)據(jù)庫、NoSql、SQL等
數(shù)據(jù)管理:(基礎(chǔ)架構(gòu)支持)云存儲、分布式文件系統(tǒng)
數(shù)據(jù)分析與挖掘:(結(jié)果展現(xiàn))數(shù)據(jù)的可視化
本文章的目的,不是為了讓大家對ETL的詳細過程有徹底的了解。只需要知道,這是數(shù)據(jù)處理的第一步,一切的開端。
大數(shù)據(jù)技術(shù)之數(shù)據(jù)采集ETL:
這里不過多的說數(shù)據(jù)采集的過程,可以簡單的理解:有數(shù)據(jù)庫就會有數(shù)據(jù)。
這里我們更關(guān)注數(shù)據(jù)的ETL過程,而ETL前期的過程,只需要了解其基本范疇就OK。
在數(shù)據(jù)挖掘的范疇了,數(shù)據(jù)清洗的前期過程,可簡單的認為就是ETL的過程。ETL的發(fā)展過程伴隨著數(shù)據(jù)挖掘至今,其相關(guān)技術(shù)也已非常成熟。這里我們也不過多的探討ETL過程,日后如有涉及,在細分。
概念:
ETL(extract提取、transform轉(zhuǎn)換、load加載)。ETL負責將分散的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時中間層后,進行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉庫或數(shù)據(jù)集市中,成為聯(lián)機分析處理、數(shù)據(jù)挖掘提供決策支持的數(shù)據(jù)。
ETL是構(gòu)建數(shù)據(jù)倉庫的重要的一環(huán),用戶從數(shù)據(jù)源抽取所需的數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗,最終按照預先定義好的數(shù)據(jù)倉庫模型,將數(shù)據(jù)加載到數(shù)據(jù)倉庫中。其定義域來源也不下于十幾年,技術(shù)發(fā)展也應(yīng)相當成熟??烧а垡豢?,似乎并沒有什么技術(shù)可言,也沒有什么深奧之處,但在實際的項目中,卻常常在這個環(huán)節(jié)上耗費太多的人力,而在后期的維護上,往往更費腦筋。導致上面的原因,往往是在項目初期沒有正確的估計ETL的工作,沒有認真的考慮其與工具支撐有很大的關(guān)系。
在做ETL產(chǎn)品選型的時候,任然必不可少的要面臨四點(成本、人員經(jīng)驗、案例和技術(shù)支持)來考量。在做ETL的過程中,也隨之產(chǎn)生于一些ETL工具,如Datastage、Powercenter、ETLAutomation。而在實際ETL工具應(yīng)用的對比上,對元數(shù)據(jù)的支持、對數(shù)據(jù)質(zhì)量的支持、維護的方便性、定制開發(fā)功能的支持等方面是我們選擇的切入點。一個項目,從數(shù)據(jù)源到最終目標表,多則達上百個ETL過程,少則也十幾個。這些過程之間的依賴關(guān)系、出錯控制以及恢復的流程處理,都是工具需要重點考慮。這里不再多討論,具體應(yīng)用再具體說明。
過程:
在整個數(shù)據(jù)倉庫的構(gòu)建中,ETL工作占整個工作的50%-70%。下面有人給出團隊之間的ETL過程是如何實現(xiàn)的。在面臨耗費絕大時間的分析過程中,要求第一點就是:團隊協(xié)作性要好。ETL包含E,T,L還有日志的控制,數(shù)據(jù)模型,原數(shù)據(jù)驗證,數(shù)據(jù)質(zhì)量等等方面。
例如我們要整合一個企業(yè)亞太區(qū)的數(shù)據(jù),但是每個國家都有自己的數(shù)據(jù)源,有的是ERP,有的是Access,而且數(shù)據(jù)庫都不一樣,好要考慮網(wǎng)絡(luò)的性能問題, 如果直接用ODBC去連接兩地的數(shù)據(jù)源,這樣的做法很顯然是不合理的,因為網(wǎng)絡(luò)不好,經(jīng)常連接,很容易數(shù)據(jù)庫鏈接不能釋放導致死機。如果我們在各地區(qū)的服 務(wù)器放置一個數(shù)據(jù)導出為access或者flat file的程序,這樣文件就比較方便的通過FTP的方式進行傳輸。
下面我們指出上述案例需要的幾項工作:
1、有人寫一個通用的數(shù)據(jù)導出工具,可以用java,可以用腳本,或其他的工具,總之要通用,可以通過不同的腳本文件來控制,使各地區(qū)的不同數(shù)據(jù)庫導出的文件格式是一樣的。而且還可以實現(xiàn)并行操作。
2、有人寫FTP的程序,可以用bat,可以用ETL工具,可以用其他的方式,總之要準確,而且方便調(diào)用和控制。
3、有人設(shè)計數(shù)據(jù)模型,包括在1之后導出的結(jié)構(gòu),還有ODS和DWH中的表結(jié)構(gòu)。
4、有人寫SP,包括ETL中需要用到的SP還有日常維護系統(tǒng)的SP,比如檢查數(shù)據(jù)質(zhì)量之類的。
5、有人分析原數(shù)據(jù),包括表結(jié)構(gòu),數(shù)據(jù)質(zhì)量,空值還有業(yè)務(wù)邏輯。
6、有人負責開發(fā)流程,包括實現(xiàn)各種功能,還有日志的記錄等等。
7、有人測試真正好的ETL,都是團隊來完成的,一個人的力量是有限的。
其實上述的7步,再給我們強調(diào)的是什么:一個人,很難成事。團隊至上。
這里我們簡述ETL的過程:主要從E、T、L和異常處理簡單的說明,這里不再細說明。如果用到,我想大家一定會有更深的調(diào)研。
1、 數(shù)據(jù)清洗:
·數(shù)據(jù)補缺:對空數(shù)據(jù)、缺失數(shù)據(jù)進行數(shù)據(jù)補缺操作,無法處理的做標記。
·數(shù)據(jù)替換:對無效數(shù)據(jù)進行數(shù)據(jù)的替換。
·格式規(guī)范化:將源數(shù)據(jù)抽取的數(shù)據(jù)格式轉(zhuǎn)換成為便于進入倉庫處理的目標數(shù)據(jù)格式。
·主外鍵約束:通過建立主外鍵約束,對非法數(shù)據(jù)進行數(shù)據(jù)替換或?qū)С龅藉e誤文件重新處理。
2、 數(shù)據(jù)轉(zhuǎn)換
·數(shù)據(jù)合并:多用表關(guān)聯(lián)實現(xiàn),大小表關(guān)聯(lián)用lookup,大大表相交用join(每個字段家索引,保證關(guān)聯(lián)查詢的效率)
·數(shù)據(jù)拆分:按一定規(guī)則進行數(shù)據(jù)拆分
·行列互換、排序/修改序號、去除重復記錄
·數(shù)據(jù)驗證:loolup、sum、count
實現(xiàn)方式:
·在ETL引擎中進行(SQL無法實現(xiàn)的)
·在數(shù)據(jù)庫中進行(SQL可以實現(xiàn)的)
3、 數(shù)據(jù)加載
方式:
·時間戳方式:在業(yè)務(wù)表中統(tǒng)一添加字段作為時間戳,當OLAP系統(tǒng)更新修改業(yè)務(wù)數(shù)據(jù)時,同時修改時間戳字段值。
·日志表方式:在OLAP系統(tǒng)中添加日志表,業(yè)務(wù)數(shù)據(jù)發(fā)生變化時,更新維護日志表內(nèi)容。
· 全表對比方式:抽取所有源數(shù)據(jù),在更新目標表之前先根據(jù)主鍵和字段進行數(shù)據(jù)比對,有更新的進行update或insert。
·全表刪除插入方式:刪除目標表數(shù)據(jù),將源數(shù)據(jù)全部插入。
異常處理
在ETL的過程中,必不可少的要面臨數(shù)據(jù)異常的問題,處理辦法:
1、將錯誤信息單獨輸出,繼續(xù)執(zhí)行ETL,錯誤數(shù)據(jù)修改后再單獨加載。中斷ETL,修改后重新執(zhí)行ETL。原則:最大限度接收數(shù)據(jù)。
2、對于網(wǎng)絡(luò)中斷等外部原因造成的異常,設(shè)定嘗試次數(shù)或嘗試時間,超數(shù)或超時后,由外部人員手工干預。
3、 例如源數(shù)據(jù)結(jié)構(gòu)改變、接口改變等異常狀況,應(yīng)進行同步后,在裝載數(shù)據(jù)。
在這里涉及到ETL中,我們只要有一個清晰的認識,它不是想象中的簡單一蹴而就,在實際的過程,你可以會遇到各種各樣的問題,甚至是部門之間溝通的問題。在給它定義到占據(jù)整個數(shù)據(jù)挖掘或分析的過程中50%-70%是不足為過的。
后期項目如有涉及ETL過程,會細細討論。
via:CSDN
詳情請咨詢“”!
客服熱線:023-66090381
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn