1. 程式人生 > >etl學習筆記-持續更新

etl學習筆記-持續更新



關於資料的ETL
用來描述將資料從來源端經過抽取E(extract)、清洗,轉換T(transform)、載入L(load)至目的端的過程。ETL一詞較常用在資料倉庫,但其物件並不限於資料倉庫.

目標:資料優化,以最小代價將針對日常業務操作的資料轉換成針對資料倉庫而儲存的決策支援型資料
原則:儘量利用資料中轉區對運營資料進行預處理,保證資料的安全性,整合和載入的高效性,過程應該是主動‘拉取’,而不是從內部‘推送’,資料質量將保證正確性,一致性,完整性,有效性,可獲取性
ETL負責將分佈的、異構資料來源中的資料如關係資料、平面資料檔案等抽取到臨時中間層後進行清洗、轉換、整合,最後載入到資料倉庫或資料集市中,成為聯機分析處理、資料探勘的基礎。

目前,ETL工具的典型代表有:第三方工具提供商Informatic、Datastage、資料庫廠商自帶的OWB、微軟DTS、Beeload、開源的Kettle……


開源的工具有eclipse的etl外掛。cloveretl.



資料抽取:欄位關聯,全量抽取(月資料彙總,資料量大),基本上不會做增量抽取(交易上的,沒天增量,資料不全),按照不同頻率和週期的策略和具體的業務進行抽取,基礎資料肯定是每天
資料清洗:資料替換,資料規範化,資料補缺,按照清洗規則進行清洗
資料轉換:資料拆分,資料計算,關聯查詢,按照規則,自定義特徵進行轉換--資料型別轉換,標準化,case when的轉換
資料載入:增量載入l,全量載入,資料比對,載入至目標資料表集市或資料倉庫,無時不刻的載入至集市表


先找表,取資料搞清楚
資料標準化:1/0  m/f  標準成 1/0  根據業務資料來規定
表結構標準化:欄位標準化,create_date/create_time  標準化為create_time

   linux 連線資料庫,執行儲存過程
   
   
   流水彙總層
   匯入gp--交易欄位取出來--清洗--轉換--載入L
   shell更新資料/業務,定時任務呼叫儲存過程
   排程
   
   
   
   
   
   
   
   儲存過程
   
  呼叫儲存過程:call sp_name()--注意:儲存過程名稱後面必須加括號,哪怕該儲存過程沒有引數傳遞
   
  刪除儲存過程:drop procedure sp_name()
   
  不能在一個儲存過程中刪除另一個儲存過程,只能呼叫另一個儲存過程
  
  
  
 四捨五入
select round(123.456, 0) from dual;          回傳 123
select round(123.456, 1) from dual;          回傳 123.5
select round(-123.456, 2) from dual;         回傳 -123.46
  
  
  
  
  
  
  
  trunc(sysdate,'yyyy') --返回當年第一天.


  trunc(sysdate,'mm') --返回當月第一天.


  trunc(sysdate,'d') --返回當前星期的第一天.
  
  
  
  年日均金額:比如說10月份的年日均=1到10月的的總金額除以1到10月份的天數
  季日均金額:比如說1月份的季日均=1月份的總額除以天數,
 比如說2月份的季日均=1月份+2月份的總額除以1月份+2月份總天數,
   比如說3月份的季日均=1月份+2月份+3月份的總額除以1月份+2月份+3月份總天數


  月日均金額:比如說10月份的月日均=10月的總金額除以10月份的天數
  
  
  保本型理財分短期,中期,長期
  非保本型理財不分
   
   
   
   
   
   
   
   
 ODS操作資料儲存
 
 ODS(Operational Data Store) 是資料倉庫體系結構中的一個可選部分,ODS具備資料倉庫的部分特徵和OLTP系統的部分特徵,它是"面向主題的、整合的、當前或接近當前的、不斷變化的"資料。
 1、在業務系統和資料倉庫之間形成一個隔離層
 一般的資料倉庫應用系統都具有非常複雜的資料來源,這些資料存放在不同的地理位置、不同的資料庫、不同的應用之中,從這些業務系統對資料進行抽取並不是一件容易的事。因此,ODS用於存放從業務系統直接抽取出來的資料,這些資料從資料結構、資料之間的邏輯關係上都與業務系統基本保持一致,因此在抽取過程中極大降低了資料轉化的複雜性,而主要關注資料抽取的介面、資料量大小、抽取方式等方面的問題
 
 2、轉移一部分業務系統細節查詢的功能
 在資料倉庫建立之前,大量的報表、分析是由業務系統直接支援的,在一些比較複雜的報表生成過程中,對業務系統的執行產生相當大的壓力。ODS的資料從粒度、組織方式等各個方面都保持了與業務系統的一致,那麼原來由業務系統產生的報表、細節資料的查詢自然能夠從ODS中進行,從而降低業務系統的查詢壓力。
 3、完成資料倉庫中不能完成的一些功能
 一般來說,帶有ODS的資料倉庫體系結構中,DW層所儲存的資料都是進行彙總過的資料,並不儲存每筆交易產生的細節資料,但是在某些特殊的應用中,可能需要對交易細節資料進行查詢,這時就需要把細節資料查詢的功能轉移到ODS來完成,而且ODS的資料模型按照面向主題的方式進行儲存,可以方便地支援多維分析等查詢功能。


 在一個沒有ODS層的資料倉庫應用系統體系結構中,資料倉庫中儲存的資料粒度是根據需要而確定的,但一般來說,最為細節的業務資料也是需要保留的,實際上也就相當於ODS,但與ODS所不同的是,這時的細節資料不是"當前、不斷變化的"資料,而是"歷史的,不再變化的"資料。