數據處理3步驟「ETL」你知道了嗎?
邁入大數據時代以來,「數據處理」已是各行各業每天面對的基本課題。大家不妨思考看看「數據處理」有哪些基本流程?
在這個數位時代裡,各式各樣的數據(Data)充斥於我們的生活周遭與工作中,各組織、公司要如何乘著這波浪潮向前行是相當重要的課題。
數據處理是什麼呢?一般人腦袋想到數據處理可能就開始頭痛,想像著電影中各種駭客、解密高手的情節畫面,100吋以上大的電腦屏幕上充滿著詭異的數字及代碼...,「還是交給IT吧」,這可能是辦公室很常聽到的一句話。
數據處理的概念沒那麼複雜,其實就是整理、清理數據,如同業界中常強調的「5S」工作一樣,環境要整理、整頓,數據也是要的。數據處理的目的不外乎就是為了報表、圖表及分析之用,所以為了達到不同的目的,數據處理的方法也會有所不同。
如文章標題所述,數據處理大致分為3個步驟:Extract(擷取)、 Transform(轉換)及Load(載入),簡稱「ETL」:
- EXTRACT(擷取):從資料來源中擷取所需之資料寬度及深度,專業術語稱粒度(Granularity)。資料來源可以相當廣泛,從後端的資料庫到ERP下載的CSV檔案,或是Excel檔案、網頁都可以做為資料來源。
- TRANSFORM(轉換):將擷取後的資料表進行轉換及集計(Aggregate),集計方式包含了加總、取平均、取最大最小值、計數...等等。
- LOAD(載入):將轉換後的資料表載入分析軟體中,可以設定手動更新或自動更新。Windows系統最通用的就是Excel軟體。
數據處理ETL架構圖簡單繪製如下。另外,ETL流程以資料庫的角度來看就是一個查詢(Query)。
接下來,小編以某石化工廠的生產數據來舉例說明ETL之流程。
“本篇文章將以概念方式導入ETL流程,不帶入軟體操作部分。”
下圖中之上表為某石化工廠的生產數據,時間以日為單位,統計每天機組運轉時數(HR)、汽油生產量、汽油出貨量、油槽庫存量及一些變動成本耗用量等等。工廠廠長某天要求生管專人將此生產數據以ETL流程轉化為以年月為單位之汽油生產量及出貨量比較表,供生產課進行分析(如下表)。
以下將開始依序說明ETL概念流程:
1.Extract(擷取):
從ERP下載生管數據資料表後,利用某資料管理系統與此資料表進行連結,並將不需要的欄位剔除,如運轉時數、油槽庫存量、耗電量等欄位。
2.Transform(轉換):
因為最後要以年月為單位出表,故需先將日期欄位拆開成年、月、日欄位。
再將年、月欄位進行Group by,集計加總(Sum)汽油生產量及出貨量欄位。完成後,即可得到廠長要求的資料表。
3.Load(載入):
再將轉換後的資料表載入至分析軟體(Excel)中,就達成了廠長交辦的任務。
總結及補充:
以上範例看似簡單,但實際在軟體上操作上,還會需要再多一些操作步驟,才能達到此範例最後輸出的資料表。
大家不用擔心軟體操作很難學習,現今軟體的使用者界面(User Interface)已經做得相當完善,基本操作只要用滑鼠點幾下即可完成,進階的操作才需要一點程式語言,下篇文章將實際以軟體來進行說明,揭開Power Query編輯器的神秘面紗。
另外,本文中一再提到「數據處理」四個字,係因小編為了以較白話的方式說明,實際上專業術語為「數據準備(Data Preparation)」或「數據清理」。