kettle流程以及sql流程使用


一、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數據庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM