ETL簡介
ETL
ETL,Extraction-Transformation-Loading的縮寫,中文名稱為資料抽取、轉換和載入。
ETL負責將分佈的、異構資料來源中的資料如關係資料、平面資料檔案等抽取到臨時中間層後進行清洗、轉換、整合,最後載入到資料倉儲或資料集市中,成為聯機分析處理、資料探勘的基礎。
ETL是資料倉儲中的非常重要的一環。它是承前啟後的必要的一步。相對於關聯式資料庫,資料倉儲技術沒有嚴格的數學理論基礎,它更面向實際工程應用。所以從工程應用的角度來考慮,按著物理資料模型的要求載入資料並對資料進行一些系列處理,處理過程與經驗直接相關,同時這部分的工作直接關係資料倉儲中資料的質量,從而影響到聯機分析處理和資料探勘的結果的質量。
資料倉儲是一個獨立的資料環境,需要通過抽取過程將資料從聯機事務處理環境、外部資料來源和離線的資料儲存介質匯入到資料倉儲中;在技術上,ETL主要涉及到關聯、轉換、增量、排程和監控等幾個方面;資料倉儲系統中資料不要求與聯機事務處理系統中資料實時同步,所以ETL可以定時進行。但多個ETL的操作時間、順序和成敗對資料倉儲中資訊的有效性至關重要。
ETL(Extract-Transform-Load的縮寫,即資料抽取、轉換、裝載的過程)作為BI/DW(Business Intelligence)的核心和靈魂,能夠按照統一的規則整合並提高資料的價值,是負責完成資料從資料來源向目標資料倉儲轉化的過程,是實施資料倉儲的重要步驟。如果說資料倉儲的模型設計是一座大廈的設計藍圖,資料是磚瓦的話,那麼ETL就是建設大廈的過程。在整個專案中最難部分是使用者需求分析和模型設計,而ETL規則設計和實施則是工作量最大的,約佔整個專案的60%~80%,這是國內外從眾多實踐中得到的普遍共識。
ETL是資料抽取(Extract)、轉換(Transform)、清洗(Cleansing)、裝載(Load)的過程。是構建資料倉儲的重要一環,使用者從資料來源抽取出所需的資料,經過資料清洗,最終按照預先定義好的資料倉儲模型,將資料載入到資料倉儲中去。
資訊是現代企業的重要資源,是企業運用科學管理、決策分析的基礎。目前,大多數企業花費大量的資金和時間來構建聯機事務處理OLTP的業務系統和辦公自動化系統,用來記錄事務處理的各種相關資料。據統計,資料量每2~3年時間就會成倍增長,這些資料蘊含著巨大的商業價值,而企業所關注的通常只佔在總資料量的2%~4%左右。因此,企業仍然沒有最大化地利用已存在的資料資源,以致於浪費了更多的時間和資金,也失去制定關鍵商業決策的最佳契機。於是,企業如何通過各種技術手段,並把資料轉換為資訊、知識,已經成了提高其核心競爭力的主要瓶頸。而ETL則是主要的一個技術手段。如何正確選擇ETL工具?如何正確應用ETL?
目前,ETL工具的典型代表有:Informatica、Datastage、OWB、微軟DTS……
開源的工具有eclips的etl外掛。http://www.cloveretl.org/clover/
資料整合:快速實現ETL
ETL的質量問題具體表現為正確性、完整性、一致性、完備性、有效性、時效性和可獲取性等幾個特性。而影響質量問題的原因有很多,由系統整合和歷史資料造成的原因主要包括:業務系統不同時期系統之間資料模型不一致;業務系統不同時期業務過程有變化;舊系統模組在運營、人事、財務、辦公系統等相關資訊的不一致;遺留系統和新業務、管理系統資料整合不完備帶來的不一致性。
實現ETL,首先要實現ETL轉換的過程。它可以集中地體現為以下幾個方面:
空值處理 可捕獲欄位空值,進行載入或替換為其他含義資料,並可根據欄位空值實現分流載入到不同目標庫。
規範化資料格式 可實現欄位格式約束定義,對於資料來源中時間、數值、字元等資料,可自定義載入格式。
拆分資料 依據業務需求對欄位可進行分解。例,主叫號 861084613409,可進行區域碼和電話號碼分解。
驗證資料正確性 可利用Lookup及拆分功能進行資料驗證。例如,主叫號861084613409,進行區域碼和電話號碼分解後,可利用Lookup返回主叫閘道器或交換機記載的主叫地區,進行資料驗證。
資料替換 對於因業務因素,可實現無效資料、缺失資料的替換。
Lookup 查獲丟失資料 Lookup實現子查詢,並返回用其他手段獲取的缺失欄位,保證欄位完整性。
建立ETL過程的主外來鍵約束 對無依賴性的非法資料,可替換或匯出到錯誤資料檔案中,保證主鍵惟一記錄的載入。
為了能更好地實現ETL,筆者建議使用者在實施ETL過程中應注意以下幾點:
第一,如果條件允許,可利用資料中轉區對運營資料進行預處理,保證整合與載入的高效性;
第二,如果ETL的過程是主動“拉取”,而不是從內部“推送”,其可控性將大為增強;
第三,ETL之前應制定流程化的配置管理和標準協議;
第四,關鍵資料標準至關重要。目前,ETL面臨的最大挑戰是當接收資料時其各源資料的異構性和低質量。以電信為例,A系統按照統計程式碼管理資料,B系統按照賬目數字管理,C系統按照語音ID管理。當ETL需要對這三個系統進行整合以獲得對客戶的全面視角時,這一過程需要複雜的匹配規則、名稱/地址正常化與標準化。而ETL在處理過程中會定義一個關鍵資料標準,並在此基礎上,制定相應的資料介面標準。
ETL過程在很大程度上受企業對源資料的理解程度的影響,也就是說從業務的角度看資料整合非常重要。一個優秀的ETL設計應該具有如下功能:
管理簡單;採用後設資料方法,集中進行管理;介面、資料格式、傳輸有嚴格的規範;儘量不在外部資料來源安裝軟體;資料抽取系統流程自動化,並有自動排程功能;抽取的資料及時、準確、完整;可以提供同各種資料系統的介面,系統適應性強;提供軟體框架系統,系統功能改變時,應用程式很少改變便可適應變化;可擴充套件性強。
資料模型:標準定義資料
合理的業務模型設計對ETL至關重要。資料倉儲是企業惟一、真實、可靠的綜合資料平臺。資料倉儲的設計建模一般都依照三正規化、星型模型、雪花模型,無論哪種設計思想,都應該最大化地涵蓋關鍵業務資料,把運營環境中雜亂無序的資料結構統一成為合理的、關聯的、分析型的新結構,而ETL則會依照模型的定義去提取資料來源,進行轉換、清洗,並最終載入到目標資料倉儲中。
模型的重要之處在於對資料做標準化定義,實現統一的編碼、統一的分類和組織。標準化定義的內容包括:標準程式碼統一、業務術語統一。ETL依照模型進行初始載入、增量載入、緩慢增長維、慢速變化維、事實表載入等資料整合,並根據業務需求制定相應的載入策略、重新整理策略、彙總策略、維護策略。
後設資料:擴充新型應用
對業務資料本身及其執行環境的描述與定義的資料,稱之為後設資料(metadata)。後設資料是描述資料的資料。從某種意義上說,業務資料主要用於支援業務系統應用的資料,而後設資料則是企業資訊門戶、客戶關係管理、資料倉儲、決策支援和B2B等新型應用所不可或缺的內容。
後設資料的典型表現為物件的描述,即對資料庫、表、列、列屬性(型別、格式、約束等)以及主鍵/外部鍵關聯等等的描述。特別是現行應用的異構性與分佈性越來越普遍的情況下,統一的後設資料就愈發重要了。“資訊孤島”曾經是很多企業對其應用現狀的一種抱怨和概括,而合理的後設資料則會有效地描繪出資訊的關聯性。
而後設資料對於ETL的集中表現為:定義資料來源的位置及資料來源的屬性、確定從源資料到目標資料的對應規則、確定相關的業務邏輯、在資料實際載入前的其他必要的準備工作,等等,它一般貫穿整個資料倉儲專案,而ETL的所有過程必須最大化地參照後設資料,這樣才能快速實現ETL。
ETL體系結構
下圖為ETL體系結構,它體現了主流ETL產品框架的主要組成部分。ETL是指從源系統中提取資料,轉換資料為一個標準的格式,並載入資料到目標資料儲存區,通常是資料倉儲。
ETL體系結構圖
Design manager 提供一個圖形化的對映環境,讓開發者定義從源到目標的對映關係、轉換、處理流程。設計過程的各物件的邏輯定義儲存在一個後設資料資料庫中。
Meta. data management 提供一個關於ETL設計和執行處理等相關定義、管理資訊的後設資料資料庫。ETL引擎在執行時和其它應用都可參考此資料庫中的後設資料。
Extract 通過介面提取源資料,例如?ODBC、專用資料庫介面和平面檔案提取器,並參照後設資料來決定資料的提取及其提取方式。
Transform. 開發者將提取的資料,按照業務需要轉換為目標資料結構,並實現彙總。
Load 載入經轉換和彙總的資料到目標資料倉儲中,可實現SQL或批量載入。
Transport services 利用網路協議或檔案協議,在源和目標系統之間移動資料,利用記憶體在ETL處理的各元件中移動資料。
Administration and operation 可讓管理員基於事件和時間進行排程、執行、監測ETL作業、管理錯誤資訊、從失敗中恢復和調節從源系統的輸出。
ETL負責將分佈的、異構資料來源中的資料如關係資料、平面資料檔案等抽取到臨時中間層後進行清洗、轉換、整合,最後載入到資料倉儲或資料集市中,成為聯機分析處理、資料探勘的基礎。
ETL是資料倉儲中的非常重要的一環。它是承前啟後的必要的一步。相對於關聯式資料庫,資料倉儲技術沒有嚴格的數學理論基礎,它更面向實際工程應用。所以從工程應用的角度來考慮,按著物理資料模型的要求載入資料並對資料進行一些系列處理,處理過程與經驗直接相關,同時這部分的工作直接關係資料倉儲中資料的質量,從而影響到聯機分析處理和資料探勘的結果的質量。
資料倉儲是一個獨立的資料環境,需要通過抽取過程將資料從聯機事務處理環境、外部資料來源和離線的資料儲存介質匯入到資料倉儲中;在技術上,ETL主要涉及到關聯、轉換、增量、排程和監控等幾個方面;資料倉儲系統中資料不要求與聯機事務處理系統中資料實時同步,所以ETL可以定時進行。但多個ETL的操作時間、順序和成敗對資料倉儲中資訊的有效性至關重要。
ETL(Extract-Transform-Load的縮寫,即資料抽取、轉換、裝載的過程)作為BI/DW(Business Intelligence)的核心和靈魂,能夠按照統一的規則整合並提高資料的價值,是負責完成資料從資料來源向目標資料倉儲轉化的過程,是實施資料倉儲的重要步驟。如果說資料倉儲的模型設計是一座大廈的設計藍圖,資料是磚瓦的話,那麼ETL就是建設大廈的過程。在整個專案中最難部分是使用者需求分析和模型設計,而ETL規則設計和實施則是工作量最大的,約佔整個專案的60%~80%,這是國內外從眾多實踐中得到的普遍共識。
ETL是資料抽取(Extract)、轉換(Transform)、清洗(Cleansing)、裝載(Load)的過程。是構建資料倉儲的重要一環,使用者從資料來源抽取出所需的資料,經過資料清洗,最終按照預先定義好的資料倉儲模型,將資料載入到資料倉儲中去。
資訊是現代企業的重要資源,是企業運用科學管理、決策分析的基礎。目前,大多數企業花費大量的資金和時間來構建聯機事務處理OLTP的業務系統和辦公自動化系統,用來記錄事務處理的各種相關資料。據統計,資料量每2~3年時間就會成倍增長,這些資料蘊含著巨大的商業價值,而企業所關注的通常只佔在總資料量的2%~4%左右。因此,企業仍然沒有最大化地利用已存在的資料資源,以致於浪費了更多的時間和資金,也失去制定關鍵商業決策的最佳契機。於是,企業如何通過各種技術手段,並把資料轉換為資訊、知識,已經成了提高其核心競爭力的主要瓶頸。而ETL則是主要的一個技術手段。如何正確選擇ETL工具?如何正確應用ETL?
目前,ETL工具的典型代表有:Informatica、Datastage、OWB、微軟DTS……
開源的工具有eclips的etl外掛。http://www.cloveretl.org/clover/
資料整合:快速實現ETL
ETL的質量問題具體表現為正確性、完整性、一致性、完備性、有效性、時效性和可獲取性等幾個特性。而影響質量問題的原因有很多,由系統整合和歷史資料造成的原因主要包括:業務系統不同時期系統之間資料模型不一致;業務系統不同時期業務過程有變化;舊系統模組在運營、人事、財務、辦公系統等相關資訊的不一致;遺留系統和新業務、管理系統資料整合不完備帶來的不一致性。
實現ETL,首先要實現ETL轉換的過程。它可以集中地體現為以下幾個方面:
空值處理 可捕獲欄位空值,進行載入或替換為其他含義資料,並可根據欄位空值實現分流載入到不同目標庫。
規範化資料格式 可實現欄位格式約束定義,對於資料來源中時間、數值、字元等資料,可自定義載入格式。
拆分資料 依據業務需求對欄位可進行分解。例,主叫號 861084613409,可進行區域碼和電話號碼分解。
驗證資料正確性 可利用Lookup及拆分功能進行資料驗證。例如,主叫號861084613409,進行區域碼和電話號碼分解後,可利用Lookup返回主叫閘道器或交換機記載的主叫地區,進行資料驗證。
資料替換 對於因業務因素,可實現無效資料、缺失資料的替換。
Lookup 查獲丟失資料 Lookup實現子查詢,並返回用其他手段獲取的缺失欄位,保證欄位完整性。
建立ETL過程的主外來鍵約束 對無依賴性的非法資料,可替換或匯出到錯誤資料檔案中,保證主鍵惟一記錄的載入。
為了能更好地實現ETL,筆者建議使用者在實施ETL過程中應注意以下幾點:
第一,如果條件允許,可利用資料中轉區對運營資料進行預處理,保證整合與載入的高效性;
第二,如果ETL的過程是主動“拉取”,而不是從內部“推送”,其可控性將大為增強;
第三,ETL之前應制定流程化的配置管理和標準協議;
第四,關鍵資料標準至關重要。目前,ETL面臨的最大挑戰是當接收資料時其各源資料的異構性和低質量。以電信為例,A系統按照統計程式碼管理資料,B系統按照賬目數字管理,C系統按照語音ID管理。當ETL需要對這三個系統進行整合以獲得對客戶的全面視角時,這一過程需要複雜的匹配規則、名稱/地址正常化與標準化。而ETL在處理過程中會定義一個關鍵資料標準,並在此基礎上,制定相應的資料介面標準。
ETL過程在很大程度上受企業對源資料的理解程度的影響,也就是說從業務的角度看資料整合非常重要。一個優秀的ETL設計應該具有如下功能:
管理簡單;採用後設資料方法,集中進行管理;介面、資料格式、傳輸有嚴格的規範;儘量不在外部資料來源安裝軟體;資料抽取系統流程自動化,並有自動排程功能;抽取的資料及時、準確、完整;可以提供同各種資料系統的介面,系統適應性強;提供軟體框架系統,系統功能改變時,應用程式很少改變便可適應變化;可擴充套件性強。
資料模型:標準定義資料
合理的業務模型設計對ETL至關重要。資料倉儲是企業惟一、真實、可靠的綜合資料平臺。資料倉儲的設計建模一般都依照三正規化、星型模型、雪花模型,無論哪種設計思想,都應該最大化地涵蓋關鍵業務資料,把運營環境中雜亂無序的資料結構統一成為合理的、關聯的、分析型的新結構,而ETL則會依照模型的定義去提取資料來源,進行轉換、清洗,並最終載入到目標資料倉儲中。
模型的重要之處在於對資料做標準化定義,實現統一的編碼、統一的分類和組織。標準化定義的內容包括:標準程式碼統一、業務術語統一。ETL依照模型進行初始載入、增量載入、緩慢增長維、慢速變化維、事實表載入等資料整合,並根據業務需求制定相應的載入策略、重新整理策略、彙總策略、維護策略。
後設資料:擴充新型應用
對業務資料本身及其執行環境的描述與定義的資料,稱之為後設資料(metadata)。後設資料是描述資料的資料。從某種意義上說,業務資料主要用於支援業務系統應用的資料,而後設資料則是企業資訊門戶、客戶關係管理、資料倉儲、決策支援和B2B等新型應用所不可或缺的內容。
後設資料的典型表現為物件的描述,即對資料庫、表、列、列屬性(型別、格式、約束等)以及主鍵/外部鍵關聯等等的描述。特別是現行應用的異構性與分佈性越來越普遍的情況下,統一的後設資料就愈發重要了。“資訊孤島”曾經是很多企業對其應用現狀的一種抱怨和概括,而合理的後設資料則會有效地描繪出資訊的關聯性。
而後設資料對於ETL的集中表現為:定義資料來源的位置及資料來源的屬性、確定從源資料到目標資料的對應規則、確定相關的業務邏輯、在資料實際載入前的其他必要的準備工作,等等,它一般貫穿整個資料倉儲專案,而ETL的所有過程必須最大化地參照後設資料,這樣才能快速實現ETL。
ETL體系結構
下圖為ETL體系結構,它體現了主流ETL產品框架的主要組成部分。ETL是指從源系統中提取資料,轉換資料為一個標準的格式,並載入資料到目標資料儲存區,通常是資料倉儲。
ETL體系結構圖
Design manager 提供一個圖形化的對映環境,讓開發者定義從源到目標的對映關係、轉換、處理流程。設計過程的各物件的邏輯定義儲存在一個後設資料資料庫中。
Meta. data management 提供一個關於ETL設計和執行處理等相關定義、管理資訊的後設資料資料庫。ETL引擎在執行時和其它應用都可參考此資料庫中的後設資料。
Extract 通過介面提取源資料,例如?ODBC、專用資料庫介面和平面檔案提取器,並參照後設資料來決定資料的提取及其提取方式。
Transform. 開發者將提取的資料,按照業務需要轉換為目標資料結構,並實現彙總。
Load 載入經轉換和彙總的資料到目標資料倉儲中,可實現SQL或批量載入。
Transport services 利用網路協議或檔案協議,在源和目標系統之間移動資料,利用記憶體在ETL處理的各元件中移動資料。
Administration and operation 可讓管理員基於事件和時間進行排程、執行、監測ETL作業、管理錯誤資訊、從失敗中恢復和調節從源系統的輸出。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10113559/viewspace-618263/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ETL介紹與ETL工具比較
- 《Kettle構建Hadoop ETL系統實踐》簡介Hadoop
- 國產ETL工具 etl-engine
- ETL 是什麼 ETL 工具有哪些 ETL 工具對比 engine
- 簡介
- Flink 實踐教程-入門(8): 簡單 ETL 作業
- 簡化ETL工作,編寫一個Canal膠水層
- Jira使用簡介 HP ALM使用簡介
- ETL常用的三種工具介紹及對比Datastage、Informatica、KettleASTORM
- BookKeeper 介紹(1)--簡介
- ggml 簡介
- PCIe簡介
- valgrind簡介
- SpringMVC簡介SpringMVC
- HTML 簡介HTML
- 核心簡介
- DPDK簡介
- Docker簡介Docker
- SpotBugs 簡介
- webservice簡介Web
- OME 簡介
- Spring 簡介Spring
- pytorch簡介PyTorch
- 【QCustomPlot】簡介
- DuckDB簡介
- SDL簡介
- swagger簡介Swagger
- MongoDb簡介MongoDB
- RabbitMQ簡介MQ
- JetCache 簡介
- JavaParser 簡介Java
- SSHJ 簡介
- Redpanda簡介
- Swoole 簡介
- jQuery 簡介jQuery
- SQLite簡介SQLite
- NGINX簡介Nginx
- Electron簡介
- cookie 簡介Cookie