ETL系列專題 1 DW BI的基石

2021-06-14 23:00:25 字數 3057 閱讀 6297

etl系列專題 1——dw/bi的基石

warren

[email protected]

在dw領域中真的不敢說有什麼大的經驗,因為之前一起工作的中外同事都不知道要比我高深多少。如果說他們是太平洋,我充其量就是我現在身邊的這杯水,還被我喝掉了半瓶!

開始想寫時還真不知道寫點什麼?那就索性先寫點etl的東西吧,該系列將主要介紹kimball etl架構理論,期間會加入筆者的一些拙劣想法或經驗。

etl(extract-transform-load),即抽取、轉換和載入。即從源系統(業務系統)抽取資料,加以轉換,並載入到dw或dm。為什麼說etl系統是dw/dm(以下均稱為dw)基石?理由是:資料倉儲系統中資料質量,資料一致性,多資料來源的統一整合,最終交付資料給決策應用層等工作均有etl系統完成,而這些素質正式資料倉儲必備的屬性,這些素質任何一項不能滿足,資料倉儲系統是不健康的,是不足以被信賴用以商業決策支援的。

etl系統可以成就資料整個dw/bi系統,同樣也可以摧毀dw/bi系統。雖然etl系統是「後台」活動的,不與終端使用者直接互動,但是etl系統的開發部署與運維佔據了整個dw/bi系統的70%的資源!etl系統絕對不是字面上定義的那樣從源系統取出資料然後載入到dw的簡單行為。相反它具有很多附加的功能,比如:

1、刪除錯誤資料,修正缺失資料 2、

提供可信的量度資料 3、

跟蹤業務資料流 4、

校正多系統中的不一致性

5、使終端應用使用者更容易使用資料分析業務

etl系統即簡單又複雜,為什麼這麼說呢?簡單到好像我們從e-t-l字面理解的那樣簡單,說其複雜,是指在e->t->l這條路上,更多的etl架構師和開發實施者會做更多精細的工作(統計,日誌,異常處理,監控報警等等),這些工作的多少,分化的粒度則取決於實際情況:資料來源的多少,資料奇異程度,業務需求,現有的軟體或工具,以及最終的展示應用等等。沒有最精細,只有更精細,但是筆者認為「點到為止」地滿足各種需求(業務需求,擴充套件需求,效能與可運維需求…),是恰倒好處的架構設計。這裡建議了解一下etl 38個子系統的闡述,其實我們在etl架構實施過程中,不知不覺地使用了這些子系統,只是我們沒有像kimball那樣把它們歸納總結下來,或者是我們的etl系統都是按照kimball的總結設計的,筆者更傾向於後面的原因。

etl的設計開發工作應該如何展開呢?

這裡再次強調dw/bi的實施過程中一定要高度重視etl。不要輕視etl,要從理論上認識到設計乙個成熟的,穩定的,健壯的etl系統是一項非常挑戰的工作。絕對不是我們的團隊成員精通了datastage,informatica等etl工具或者精通了sql,就可以開發出優質的etl系統的。

etl 團隊必須深刻了解業務與業務需求共進取,同時必須弄清資料來源的資料格式和缺陷程度,熟悉現有的業務系統,強化和現有業務團隊的協同工作的技能,時刻關注使用者的需求變更。以及考慮etl處理視窗時間如何設定等等。

「如果沒有計畫,就是在計畫著失敗」!

該主線可分為四步驟如下

一、業務需求與實際狀況分析,應主要包括:

1、業務需要

2、資料來源狀況分析,資料質量考察

3、可行的需求項

4、資料延遲容忍度

5、資料整合邊界

6、歸檔需求

7、終端使用者技能狀況

8、終端應用程式

9、現有軟硬狀況

二、架構

1、etl工具,自製程式設計還是選擇etl**商

2、批量載入還是流載入

3、任務之間的依賴關係,水平依賴還是垂直依賴

4、dq

5、異常處理

6、etl排程

7、etl 的rerun和restart

8、元資料

9、安全管理

三、etl實現

1、軟硬體

2、編碼規範

3、文件規範

4、質量檢查

四、測試與發布

1、測試環境:sit,uat,production

2、測試軟體/工具

3、交付流程控制

4、系統備份

5、系統調優

資料流主線,對於etl開發者來說是非常親切的流程,最簡單的可以用e-t-l流程。大致流程如下:從etl操作流程上比較,資料流主線與計畫設計主線相同,均為4個步驟。

抽取的主要工作: 1、

讀取資料源資料模型 2、

連線資料來源,訪問資料

3、設定抽取時間

4、獲取變更資料

5、staging抽取資料到磁碟

清洗: 1、

建立元資料為基礎的資料質量描述資料結構 2、

執行資料業務規則驗證資料 3、

staging清洗的資料到磁碟

轉換:

1、業務術語統一轉換 2、

統一量度和kpi

3、標準國際化 4、

去重 5、staging 轉換的資料到磁碟

資料交付: 1、

維度資料交付 2、

事實資料交付 3、

staging 交付資料到磁碟(dw/dm)

再次回到資料流的主線圖形上,這四個基本步驟均被包含在etl操作過程中,etl操作流程包括如下功能: 1、

排程etl

2、執行etl任務 3、

異常處理 4、

rerun 和restart 5、

質量檢查 6、

發布 7、運維

從資料流的各個步驟的工作內容來看,似乎etl的工作更符合資料建模的工作,因為每個步驟都更多地涉及到資料結構的轉變,但是在dw/bi中的資料模型更多指的是dw/dm的資料模型師的工作,然而實際工作中etl架構設計者和dw模型師通常會是相同的人或團隊!如果etl架構者不了解dw/dm的資料模型,很難想象架構設計的etl系統能很好地滿足資料處理工作。

本章強調了etl在資料倉儲/商業智慧型系統中的重要地位,以及架構設計etl系統的兩條主線,兩條主線同時存在相互照應。並介紹了兩條主線各個步驟應完成的相應工作。

etl學習1 認識etl

etl即資料抽取 extract 轉換 transform 裝載 load 的過程,它是構建資料倉儲的重要環節。etl是將業務系統的資料經過抽取 清洗轉換之後載入到資料倉儲的過程,目的是將企業中的分散 零亂 標準不統一的資料整合到一起,為企業的決策提供分析依據。etl是bi專案重要的乙個環節。通常情...

資料倉儲系列之ETL過程和ETL工具

上週因為在處理很多資料來源整合的事情一直沒有更新系列文章,在這週後開始規律更新。在維度建模中我們已經了解資料倉儲中的維度建模方法以及基本要素,在這篇文章中我們將學習了解資料倉儲的etl過程以及實用的etl工具。一 什麼是etl?構建資料倉儲的核心是建模,在資料倉儲的構建中,etl貫穿於專案始終,它是...

YOLO系列專題 YOLOv1理論篇

近期工作上基於yolov3做專案並且需要測試ti開發板對od模型的友好程度,所以想寫個yolo系列的專題,本文就從2015年的v1版本 you only look once unified,real time object detection 開始講起。文章比較老,旨在總結,大牛誤噴 yolov1理...