初識ETL


1.ETL概念:

ETL,是英文Extract-Transform-Load的縮寫,用來描述將數據從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。ETL一詞較常用在數據倉庫,但其對象並不限於數據倉庫。

E:代表數據抽取

T:代表轉換加工

L:裝載,中間操作,形式包括文件、表。

2.ETL工具:

  1. datax
  2. Oracle SQLLoader
  3. Informatica

DataX: 是阿里巴巴集團內被廣泛使用的離線數據同步工具/平台,實現包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各種異構數據源之間高效的數據同步功能。

參考:https://blog.csdn.net/qq_39188747/article/details/102577017

https://zhuanlan.zhihu.com/p/81817787

Sql Loader: 一個批量工具,將文件數據導入到數據庫。可以導入一個表或者多個表,甚至可以在導入時修改數據。

參考:https://www.cnblogs.com/lideng/p/3739380.html

https://blog.csdn.net/dbanote/article/details/9153895

Informatica:是收費的,詳細可以bd一下。

datax是開源的,屬於阿里巴巴,Oracle SQLLoader和Informatica兩者是收費的,但是也有不同之處。SQLLoader是屬於公司內部,是屬於oracle組件的,Informatica是開發它的公司所開發的一款產品,給別的公司提供服務的,Informatica是圖形化的,他們三者形式上都是底層shell腳本編寫的,然后通過此去執行核心SQL。

 

新核心(來源)  ---->ods(數據倉庫)   -------->中間業務  --->倉庫 (目標層)

ods去新核心抽取數據或者新核心推送數據到ods,ods是純純的倉庫,中間業務是通過kafka和別的工具會進行監聽,如果有

數據變化會就會進行數據推送,定時的, 

 

 

講一下sqlloader的使用流程,結合實例案例,ods去新核心抽取數據,基礎是他們需要約定好一定的規范,再經過中間操作推送到新華

 

 

ETL工具
E:數據的抽取
T:數據的轉換加工
L:數據的裝載---->中間操作,生成對應文件

ETL工具有阿里開源的DataX,我司自用的sqlloader(oracle的組件),外司開發的infor,
3者都是用shell腳本的形式驅動sql來完成數據操作的,infor提供了可視化界面

新核心行協數據轉換為例
新核心-------》ODS------》中間業務-------->目標數據庫
新核心為數據來源,ODS為純數據倉庫,兩者按照一定的規范(相互約定好)推送或查詢抽取數據。
中間業務將ODS傳遞來的數據進行處理,最后存入目標數據庫
中間業務中也會有相應工具監聽新核心,將有變化的數據放入kafka倉庫中,再進行更新操作(刪除與插入)到目標數據庫。

詳細的流程
分為上部與下部
上部:
提數-------》DOS-----------》轉換加工-----------》推送
首先時將類似新核心等等平台數據推送到ODS中,在通過操作sqlloader填寫對應所有表與字段信息的視圖,在轉換加工成文件,其中文件有2個,按不同日期划分,dat數據文件與dir控制文件,先生成數據文件在生成控制文件,控制文件是對數據文件的描述,比如總數據大小,數據行數,文件名稱等。最后將這成對文件打包發送到SFTP服務器上
下部:
下載---------》日期--------》解析--------》臨時表(B)--------》目標表(A)
首先從SFTP服務器上下載對應日期的文件,先找到控制文件,解析處數據文件名稱,再去找到數據文件,再根據數據文件通過shell腳本生成臨時表(與目標表一致),臨時表是為了便於操作數據,最后存入目標表。

下載到臨時表都是可用shell腳本實現,shell腳本結構是一個總提綱式的腳本,統合所有單個操作的shell腳本,然后按順序挨個執行。

報送情況 
來源表-------------》目標表
1.一對一關系時,此情況不需要額外操作,稱為單抽或直抽
2.來源表中不僅全部包含目標表的全部字段還有其他,直接配置需要的字段即可
3.多對一時,有兩種情況,來源表中沒有的字段其他表也沒有,就需要在報送過程中補全這些字段;另一種是多出來的字段是其他的來源表中的,這就需要聯查出來,在報送。

 


免責聲明!

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



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