初识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