etl這個過程可以說下整套資料流程下來最枯燥也是最耗時間的流程,但是也是最重要的。很多時候我們不缺資料,缺的是好資料,而etl的結果則導致下游成員的資料質量。
etl是貫穿數倉的整個環節,不是說只是在某乙個地方才使用的。etl工作的實質就是從各個資料來源提取資料,對資料進行轉換,並最終載入填充資料到資料倉儲維度建模後的表中。只有當這些維度/事實表被填充好,etl工作才算完成
資料抽取工具:kafka , flume
資料清洗:hive , tez , spark , storm
其它工具
資料儲存:hadoop、hbase,es、redis
任務管理:azkaban、oozie
資料同步:datax、sqoop
1.什麼是etl
etl:抽取、轉換、載入
1. 抽取(extract)
資料倉儲是面向分析的,而操作型資料庫是面向應用的。但是不是所有用於支撐業務系統的資料都有拿來分析的必要。因此,該階段主要是確定需要從應用資料庫中提取的數。
具體開發過程中,開發人員可能會發現某些etl步驟和資料倉儲建模後的表描述不符。這時候就要重新核對、設計需求,重新進行etl。
資料抽取是指把ods源資料(使用者訪問日誌,操作日誌,業務日誌,監控日誌...等各種日誌)抽取到dw中,然後處理成展示給相關人員檢視的資料
抽取頻次:
通常如果可以的話,能增量就增量抽取,不能再考慮全量。例如訂單的話一般需要全量抽取(由於量級比較小,而且訂單狀態會變化)
如果沒有特殊要求可以一天一次,但是需要避開拉去日誌的高峰期
對於有實時性要求的日誌,可以一小時一次,或者直接使用kafka等相關工具收集,需要考慮到系統能否承受
2. 轉換(transform)
轉換步驟主要是指對提取好了的資料的結構進行轉換,以滿足目標資料倉儲模型的過程。此外,轉換過程也負責資料質量工作,這部分也被稱為資料清洗。
通常做法:空值處理,驗證資料正確性;主要是把不符合業務含義的資料做一處理,規範資料格式(比如把所有的日期都格式化成yyyy-mm-dd hh:mm:ss),
資料標準統一(比如男女,不能用01.02表示)
3. 載入(load)
載入過程將已經提取好了,轉換後保證了資料質量的資料載入到目標資料倉儲。載入可分為兩種l:首次載入和重新整理載入。其中,首次載入會涉及到大量資料,而重新整理載入則屬於一種小批量的載入。資料拉取,清洗完之後,就需要展示了。一般是把清洗好的資料載入到mysql中,然後在各系統中使用,或者使用tableau,finbi等第三方服務直接給相關人員展示
ETL(資料倉儲技術)
etl,是英文 extract transform load 的縮寫,用來描述將資料從 端經過抽取 extract 轉換 transform 載入 load 至目的端的過程。etl一詞較常用在 資料倉儲,但其物件並不限於資料倉儲。etl是構建資料倉儲的重要一環,使用者從 資料來源抽取出所需的資料,經...
etl構建資料倉儲五步法 資料倉儲 ETL
資料倉儲是由外部多個資料來源彙總整合的,整合 這個詞代表並不是簡單的堆積,而是需要進行一些邏輯處理,數倉的整合就是這樣,因為外部資料來源都是異構的,所以需要做很多任務作才可以進行整合,這些工作包括但不限於 欄位的意義統一,輕度統計等。抽取資料 有如下策略 時間戳判斷 掃瞄增量檔案 日誌檔案,審計檔案...
資料倉儲之ETL導讀
etl是資料抽取 extract 轉換 transform 載入 load 的簡寫,它是將oltp系統中的資料經過抽取,並將不同資料來源的資料進行轉換 整合,得出一致性的資料,然後載入到資料倉儲中。簡而言之etl是完成從 oltp系統到olap系統的過程。看過這樣一本書,將etl比作餐館的後廚,後廚...