一、etl在bi中的作用
BI流程:
由數據后台例如數據庫-----到數據緩沖區取出來-----數據集市-----給應用服務器提供數據------發布給用戶
圖中左邊:為數據后台、業務系統、可能是數據庫,從中抽出數據
中間:是etl的流程,抽到圖中左下是數據緩沖區,左上是根據維度建好的多個數據集市。etl:描述將數據從來源端經過萃取(extract)、轉置(transform)、加載(load)至目的端的過程。
右邊:為數據前台,將應用服務器提供的數據發布給用戶。
二、kettle的優點
1、流程式的設計方便易用
2、全面的數據訪問支持
3、插件架構擴展性好
4、支持多平台.
三、構建一個簡單的轉換
在進行kettle流程之前,要先連接資源庫,資源庫包括:數據資源庫和文件資源庫。
這里我連接了數據資源庫,工具-------資源庫-------配置。
然后在左上角新建一個轉換流程,kettle中主要包含轉換和job兩種作業方式。
做一個隨機數生成---------然后過濾-----------輸出到文本文件
生成的隨機數都在0-1之間
右鍵隨機數可以選擇生成隨機數的數量。
然后輸出到桌面的文件中。
四、做一個由mysql寫入pg的數據清洗寫入流程。
表輸入:從mysql中讀取某表的數據並對數據進行清洗
SELECT id , ecode , outid , termid , cardsnr , opdt , colldt , rectype , ioflag , updateflag , updatedt , downdt , replace (replace(termname, '\0', '' ), ' ', '' ) AS termname , name FROM m_rec_kqmj WHERE substr(termname, 1, 1 ) IN ( 'A', 'B', 'C', 'D', 'E', 'F', 'Y' )
表輸出:將讀取到的表寫入到gp數據庫中,在寫入之前要在gp數據庫中提前建好表。
表輸入3:從mysql中讀取另外一張表,這張表要與表輸入中的表進行innerjoin,但此表不用寫入到gp中。
記錄集連接:根據字段選擇連接方式,要提前對兩表進行排序。
表輸出2:將merge好的表寫入gp數據庫。