天天看點

什麼是ETL?5分鐘看完秒懂

什麼是ETL?5分鐘看完秒懂

歡迎關注筆者的公衆号: java大師, 每日推送java、kettle運維等領域幹貨文章,關注即免費無套路附送 100G 海量學習、面試資源喲!!個人網站: http://www.javaman.cn/channels/kettle

一、ETL概念之背景

随着企業的發展,目前的業務線越來越複雜,各個業務系統獨立營運。例如:CRM系統隻會生産CRM的 資料;Billing隻會生産Billing的資料。各業務系統之間隻關心自己的資料,導緻各業務系統之間資料互相獨立,互不相通。一旦業務系統之間進行資料互動,隻能通過傳統的webservice接口之間進行資料通信。該種方式對人力成本、時間成本要求比較高。也就是說:需要成熟的開發人員才能編寫響應的webservice接口進行資料通信。而ETL的誕生就解決了此類問題,企業不需要技術很好、很成熟的開發人員一樣可以完成該任務。而且可以比優秀的開發人員完成的更好,緻使人力成本更低。這些都是企業所迫切需要的,有此誕生了ETL。

什麼是ETL?5分鐘看完秒懂

                            圖1-1 傳統的資料交換

什麼是ETL?5分鐘看完秒懂

                            圖1-2 ETL資料交換

二、ETL概念之工作流程

ETL是将業務系統的資料經過抽取(Extract)、清洗轉換(Transform)之後加載(Load)到資料倉庫的過程,目的是将企業中的分散、零亂、标準不統一的資料整合到一起,為企業的決策提供分析依據。

什麼是ETL?5分鐘看完秒懂

                                  圖1-3 ETL流程圖

ETL工作流程:先抽取、然後加載到目标資料庫中、在目标資料庫中完成轉換操作。在ELT架構中,ELT隻負責提供圖形化的界面來設計業務規則,資料的整個加工過程都在目标和源的資料庫之間流動,ELT協調相關的資料庫系統來執行相關的應用,資料加工過程既可以在源資料庫端執行,也可以在目标資料倉庫端執行(主要取決于系統的架構設計和資料屬性)。

三、ETL概念之操作步驟

ETL處理分為五大子產品,分别是:資料抽取、資料清洗、庫内轉換、規則檢查、資料加載。各子產品可靈活進行組合,形成ETL處理流程。簡單介紹一下各個子產品之間的主要功能。

資料抽取 确定資料源,需要确定從哪些源系統進行資料抽取

定義資料接口,對每個源檔案及系統的每個字段進行詳細說明

确定資料抽取的方法:是主動抽取還是由源系統推送?是增量抽取還是全量抽取?是按照每日抽取還是按照每月抽取?

資料清洗與轉換 資料清洗 主要将不完整資料、錯誤資料、重複資料進行處理

資料轉換:

1)空值處理:可捕獲字段空值,進行加載或替換為其他含義資料,或資料分流問題庫

2)資料标準:統一進制資料、統一标準字段、統一字段類型定義

3)資料拆分:依據業務需求做資料拆分,如身份證号,拆分區劃、出生日期、性别等

4)資料驗證:時間規則、業務規則、自定義規則

5)資料替換:對于因業務因素,可實作無效資料、缺失資料的替換

6)資料關聯:關聯其他資料或數學,保障資料完整性 資料加載 将資料緩沖區的資料直接加載到資料庫對應表中,如果是全量方式則采用LOAD方式,如果是增量則根據業務規則

MERGE進資料庫

注意:因某些限制,最新源代碼和後續通用配置實作資料抽取已放置在筆者公衆号上,請關注微信公衆号: 【JAVA大師】, 回複關鍵字:【kettle】,擷取kettle安裝程式和運作執行個體(表結構和kjb、ktr檔案)。

同時筆者原創了一套視訊教程:現免費發放100套,先到先得。獲得方法:掃描下方二維碼,關注獲得