ETL数据处理

ETL数据处理

推荐人

 梅雨

推荐日期

7.8

完成日期

7.9

概要

ETL讲解

网址

 

性质

读书笔记

备注

ETL数据处理

 

 

 

 

一、关键字分析

 

ETL数据仓库技术):Extract-Transform-Load提取-转换-加载

DBMS(Database Management System) 数据库管理系统

DW:Data Warehouse 数据仓库

ODBCOpen Database Connectivity)即开放数据库互连

ODS操作型数据存储(operationaldatastore)是一种常被用作数据仓库临时区域的数据库

二、ETL目的

目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据构建数据仓库常用在数据仓库,但其对象并不限于数据仓库。DEL:用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端(数据仓库)的过程

三、ETL作用

ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去(数据源-----数据清洗----数据仓库模型-----数据仓库中去) 并把数据转换为信息、知识,已经成了提高其核心竞争力的主要瓶颈。ETL主要的一个技术手段

四、数据治理步骤(ETL:抽取、转换和装载。

4.1数据的抽取

  调研工作:1.数据是从几个业务系统中来2.各个业务系统的数据库服务器运行什么DBMS3.是否存在手工数据,手工数据量有多大4.是否存在非结构化的数据等等 5.当收集完这些信息之后才可以进行数据抽取的设计。

1、对于与存放DW的数据库系统相同的数据源处理方法

  这一类数据源在设计上比较容易。一般情况下,DBMS(SQLServerOracle)都会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写Select 语句直接访问。

2、对于与DW数据库系统不同的数据源的处理方法

 (1)通过ODBC方式建立数据库链接——SQL ServerOracle之间。如果不能建立数据库链接

2)通过工具将源数据导出成.txt.xls文件,然后再将这些源系统文件导入到ODS中。

3)通过程序接口来完成。

3、对于文件类型数据源(.txt,.xls),可以培训业务人员利用数据库工具将这些数据导入到指定的数据库,然后从指定的数据库中抽取。或者还可以借助工具实现。

4、增量更新的问题

  对于数据量大的系统,必须考虑增量抽取。一般情况下,业务系统会记录业务发生的时间,我们可以用来做增量的标志,每次抽取之前首先判断ODS中记录最大的时间,然后根据这个时间去业务系统取大于这个时间所有的记录。利用业务系统的时间戳,一般情况下,业务系统没有或者部分有时间戳。

4.2数据的清洗

  一般情况下,数据仓库分为ODSDW两部分。通常的做法是从业务系统到ODS做清洗,将脏数据和不完整数据过滤掉,在从ODSDW的过程中转换,进行一些业务规则的计算和聚合。

1数据清洗

  数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。

不符合要求三类数据:不完整的数据、错误的数据、重复的数据

 

(1)不完整的数据:主要是一些应该有的信息缺失对于这一类数据过滤出来,按缺失的内容分别写入不同Excel文件向客户提交,要求在规定的时,补全后才写入数据仓库。

(2)错误的数据:这一类错误产生的原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的只能通过写SQL语句的方式找出来,然后要求客户在业务系统修正之后抽取

(3)重复的数据:对于这一类数据——特别是维表中会出现这种情况——将重复数据记录的所有字段导出来,让客户确认并整理。

4.3 数据转换

(1)不一致数据转换:这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一,比如同一个供应商在结算系统的编码是XX0001,而在CRM中编码是YY0001,这样在抽取过来之后统一转换成一个编码。

(2)数据粒度的转换:业务系统一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将业务系统数据按照数据仓库粒度进行聚合。

(3)商务规则的计算:不同的企业有不同的业务规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中,以供分析使用。

五、 ETL日志、警告发送

5.1ETL日志。

1.是执行过程日志,这一部分日志是在ETL执行过程中每执行一步的记录,记录每次运行每一步骤的起始时间,影响了多少行数据,流水账形式。

2.是错误日志,当某个模块出错的时候写错误日志,记录每次出错的时间、出错的模块以及出错的信息等。

3.是总体日志,只记录ETL开始时间、结束时间是否成功信息。如果使用ETL工具,ETL工具会自动产生一些日志,这一类日志也可以作为ETL日志的一部分。

记录日志的目的是随时可以知道ETL运行情况,如果出错了,可以知道哪里出错。

5.2 警告发送

  如果ETL出错了,不仅要形成ETL出错日志,而且要向系统管理员发送警告。发送警告的方式多种,一般常用的就是给系统管理员发送邮件,并附上出错的信息,方便管理员排查错误。

做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。回忆一下工作这么长时间以来,处理数据迁移、转换的工作倒还真的不少。但是那些工作基本上是一次性工作或者很小数据量。可是在数据仓库系统中,ETL上升到了一定的理论高度,和原来小打小闹的工具使用不同了。究竟什么不同,从名字上就可以看到,人家已经将倒数据的过程分成3个步骤,

其实ETL过程就是数据流动的过程,从不同的数据源流向不同的目标数据。但在数据仓库中,

六、ETL特点

6.1数据同步(经常性的,实时)

它不是一次性倒完数据就拉到,它是经常性的活动,按照固定周期运行的,甚至现在还有人提出了实时ETL的概念。

6.2是数据量

一般都是巨大的,值得你将数据流动的过程拆分成ETL

七.Kettle

Kettle是一款国外开源的ETL工具,纯java编写,可以在WindowLinuxUnix上运行,数据抽取高效稳定

Kettle家族目前包括4个产品:SpoonPanCHEFKitchen

SPOON 允许你通过图形界面来设计ETL转换过程(Transformation)。

PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)Pan是一个后台执行的程序,没有图形界面。

CHEF 允许你创建任务(Job)。任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。

KITCHEN 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)KITCHEN也是一个后台运行的程序。


猜你喜欢

转载自blog.csdn.net/weixin_42180610/article/details/80980813