etl-kettle学习

上传人:飞****9 文档编号:132946369 上传时间:2020-05-22 格式:PPT 页数:15 大小:284.50KB
返回 下载 相关 举报
etl-kettle学习_第1页
第1页 / 共15页
etl-kettle学习_第2页
第2页 / 共15页
etl-kettle学习_第3页
第3页 / 共15页
etl-kettle学习_第4页
第4页 / 共15页
etl-kettle学习_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《etl-kettle学习》由会员分享,可在线阅读,更多相关《etl-kettle学习(15页珍藏版)》请在金锄头文库上搜索。

1、ETL进阶 2009年11月26日 2 目录 一 什么是ETL二 ETL数据转换系统能给客户带来什么三 ETL如何工作的 3 ETL Extraction Transformation Loading的缩写 中文名称为数据抽取 转换和加载 ETL负责将分布的 异构数据源中的数据如关系数据 平面数据文件等抽取到临时中间层后进行清洗 转换 集成 最后加载到数据仓库或数据集市中 成为联机分析处理 数据挖掘的基础 ETL是数据仓库中的非常重要的一环 它是承前启后的必要的一步 相对于关系数据库 数据仓库技术没有严格的数学理论基础 它更面向实际工程应用 所以从工程应用的角度来考虑 按着物理数据模型的要求加

2、载数据并对数据进行一些系列处理 处理过程与经验直接相关 同时这部分的工作直接关系数据仓库中数据的质量 从而影响到联机分析处理和数据挖掘的结果的质量 数据仓库是一个独立的数据环境 需要通过抽取过程将数据从联机事务处理环境 外部数据源和脱机的数据存储介质导入到数据仓库中 在技术上 ETL主要涉及到关联 转换 增量 调度和监控等几个方面 数据仓库系统中数据不要求与联机事务处理系统中数据实时同步 所以ETL可以定时进行 但多个ETL的操作时间 顺序和成败对数据仓库中信息的有效性至关重要 一 什么是ETL 4 ETL是数据抽取 Extract 转换 Transform 清洗 Cleansing 装载 L

3、oad 的过程 是构建数据仓库的重要一环 用户从数据源抽取出所需的数据 经过数据清洗 最终按照预先定义好的数据仓库模型 将数据加载到数据仓库中去 信息是现代企业的重要资源 是企业运用科学管理 决策分析的基础 目前 大多数企业花费大量的资金和时间来构建联机事务处理OLTP的业务系统和办公自动化系统 用来记录事务处理的各种相关数据 据统计 数据量每2 3年时间就会成倍增长 这些数据蕴含着巨大的商业价值 而企业所关注的通常只占在总数据量的2 4 左右 因此 企业仍然没有最大化地利用已存在的数据资源 以致于浪费了更多的时间和资金 也失去制定关键商业决策的最佳契机 于是 企业如何通过各种技术手段 并把数

4、据转换为信息 知识 已经成了提高其核心竞争力的主要瓶颈 而ETL则是主要的一个技术手段 如何正确选择ETL工具 如何正确应用ETL 目前 ETL工具的典型代表有 Informatica Datastage OWB 微软DTS 数据集成 快速实现ETLETL的质量问题具体表现为正确性 完整性 一致性 完备性 有效性 时效性和可获取性等几个特性 而影响质量问题的原因有很多 由系统集成和历史数据造成的原因主要包括 业务系统不同时期系统之间数据模型不一致 业务系统不同时期业务过程有变化 旧系统模块在运营 人事 财务 办公系统等相关信息的不一致 遗留系统和新业务 管理系统数据集成不完备带来的不一致性 实

5、现ETL 首先要实现ETL转换的过程 它可以集中地体现为以下几个方面 空值处理可捕获字段空值 进行加载或替换为其他含义数据 并可根据字段空值实现分流加载到不同目标库 规范化数据格式可实现字段格式约束定义 对于数据源中时间 数值 字符等数据 可自定义加载格式 拆分数据依据业务需求对字段可进行分解 例 主叫号861084613409 可进行区域码和电话号码分解 验证数据正确性可利用Lookup及拆分功能进行数据验证 例如 主叫号861084613409 进行区域码和电话号码分解后 可利用Lookup返回主叫网关或交换机记载的主叫地区 进行数据验证 6 2 ETL数据转换系统能给客户带来什么 7 社

6、会的需求和计算机技术的不断发展 人们开始对原来数据库中的数据进行再加工 形成一个综合的 面向分析的环境 以支持科学决策的产生 由此 数据仓库的思想 技术 产品逐渐开始形成 构建数据仓库的目的是要建立一种体系化的数据存贮环境 将分析决策所需的大量数据从传统的操作环境中分离出来 使分散的 不一致的操作数据转换成集成的 统一的信息 组织内不同单位都可以在单一的环境下 通过运用其中的数据与信息 发现全新的视野和新的问题 新的分析与想法 进而发展出制度化的决策系统 并获取更多经营效益 数据仓库提供用户用于决策支持的当前和历史数据 这些数据在传统的操作型数据库中很难或不能得到 构建企业数据仓库 需要将企业

7、中拥有的各种类型的数据经过必要的转化 整理后 定期的 批量的装载到数据仓库中 因为企业的数据来源多样 各种数据来源之间的规范并不完全一致 所以数据的转化 整理和装载需要有一套完整 功能强大的软件系统支撑 这就需要ETL工具 ETL解决如下问题 1 能够从各种不同的数据源中读取数据 通过预置SQLServer Oracle Access等常用数据源连接 能够从数据源中直接获取数据 系统还提供了强大的扩展能力 针对DBF Excel 文本文件等形式的平面文件 系统可以根据需要随时增加各种数据源 2 规范化数据访问接口 eBuilder数据转换系统的数据获取做到了多样化 而所有的数据处理都是通过规范

8、的数据接口来访问 保证了异构数据库环境下 数据间的自由转换和存储 8 3 可视化的数据抽取过程定义 数据抽取过程都是面向抽象的数据库底层 eBuilder数据转换系统提供了完善的可视化数据抽取过程定义 极大的降低了数据抽取过程设计的门槛 不但提高了设计数据抽取过程的效率 而且使数据抽取过程更加安全可靠 4 集成数据库建模能力 用于构建数据仓库 数据仓库的构建不是一朝一夕就能够完成的 而是需要循环往复的增加 修改等迭代过程 因此ETL中集成数据库建模能力就显得至关重要 ETL在后台集成了数据库建模能力 可以根据用户生成的结果集在数据库中创建相应的数据表 使数据仓库的建模不会因为字段类型不匹配而造

9、成数据抽取过程的失败 5 侦测业务数据库中发生的变化 用于数据更新 数据仓库的数据来源于业务数据库 而业务数据库一般不保留对数据的增删改操作 而每次都将数据仓库中的数据清空重来 又是不现实的 这就需要数据抽取工具具有自动侦测业务数据库中发生的变化 将业务数据库中发生了增删改的数据 通过增量文件形式抽取出来 6 能够让数据库抽取工作自动定期执行 一旦配置完成无需人工干预 数据仓库的数据是批量装载的 需要耗费大量的时间 而且会对业务数据库的运行产生压力 因此数据抽取过程要求在业务数据库空闲的时间内执行 ETL提供了完整的任务调度能力 用户可以根据业务数据库的运行规律 设定数据抽取过程在业务空闲的时

10、间自动运行 7 一旦一个单位的数据仓库构建完毕 就可以着手建设基于数据仓库的应用了 如OLAP 接下来就是给单位的决策带来实际的好处 节省时间 可能挖掘出你从未想过的思路 如啤酒和尿布的故事 给你单位带来实际的效益 而效益正式信息化的最终目的 9 三 Etl如何工作的 10 ETL是将业务系统的数据经过抽取 清洗转换之后加载到数据仓库的过程 目的是将企业中的分散 零乱 标准不统一的数据整合到一起 为企业的决策提供分析依据 ETL是BI项目重要的一个环节 通常情况下 在BI项目中ETL会花掉整个项目的1 3的时间 ETL设计的好坏直接关接到BI项目的成败 ETL的设计分三部分 数据抽取 数据的清

11、洗转换 数据的加载 在设计ETL的时候我们也是从这三部分出发 数据的抽取是从各个不同的数据源抽取到ODS OperationalDataStore 操作型数据存储 中 这个过程也可以做一些数据的清洗和转换 在抽取的过程中需要挑选不同的抽取方法 尽可能的提高ETL的运行效率 ETL三个部分中 花费时间最长的是 T Transform 清洗 转换 的部分 一般情况下这部分工作量是整个ETL的2 3 数据的加载一般在数据清洗完了之后直接写入DW DataWarehousing 数据仓库 中去 ETL的实现有多种方法 常用的有三种 一种是借助ETL工具实现 一种是SQL方式实现 另外一种是ETL工具和

12、SQL相结合 前两种方法各有各的优缺点 借助工具可以快速的建立起ETL工程 屏蔽了复杂的编码任务 提高了速度 降低了难度 但是缺少灵活性 SQL的方法优点是灵活 提高ETL运行效率 但是编码复杂 对技术要求比较高 第三种是综合了前面二种的优点 会极大地提高ETL的开发速度和效率 11 一 数据抽取 这一部分需要在调研阶段做大量的工作 首先要搞清楚数据是从几个业务系统中来 各个业务系统的数据库服务器运行什么DBMS 是否存在手工数据 手工数据量有多大 是否存在非结构化的数据等等 当收集完这些信息之后才可以进行数据抽取的设计 1 对于与存放DW的数据库系统相同的数据源处理方法这一类数据源在设计上比

13、较容易 一般情况下 DBMS SQLServer Oracle 都会提供数据库链接功能 在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写select语句直接访问 2 对于与DW数据库系统不同的数据源的处理方法对于这一类数据源 一般情况下也可以通过ODBC的方式建立数据库链接 如SQLServer和Oracle之间 如果不能建立数据库链接 可以有两种方式完成 一种是通过工具将源数据导出成 txt或者是 xls文件 然后再将这些源系统文件导入到ODS中 另外一种方法是通过程序接口来完成 3 对于文件类型数据源 txt xls 可以培训业务人员利用数据库工具将这些数据导入到指定的数据库

14、然后从指定的数据库中抽取 或者还可以借助工具实现 如SQLServer2005的SSIS服务的平面数据源和平面目标等组件导入ODS中去 4 增量更新的问题对于数据量大的系统 必须考虑增量抽取 一般情况下 业务系统会记录业务发生的时间 我们可以用来做增量的标志 每次抽取之前首先判断ODS中记录最大的时间 然后根据这个时间去业务系统取大于这个时间所有的记录 利用业务系统的时间戳 一般情况下 业务系统没有或者部分有时间戳 12 二 数据的清洗转换 一般情况下 数据仓库分为ODS DW两部分 通常的做法是从业务系统到ODS做清洗 将脏数据和不完整数据过滤掉 在从ODS到DW的过程中转换 进行一些业务规

15、则的计算和聚合 1 数据清洗数据清洗的任务是过滤那些不符合要求的数据 将过滤的结果交给业务主管部门 确认是否过滤掉还是由业务单位修正之后再进行抽取 不符合要求的数据主要是有不完整的数据 错误的数据 重复的数据三大类 1 不完整的数据 这一类数据主要是一些应该有的信息缺失 如供应商的名称 分公司的名称 客户的区域信息缺失 业务系统中主表与明细表不能匹配等 对于这一类数据过滤出来 按缺失的内容分别写入不同Excel文件向客户提交 要求在规定的时间内补全 补全后才写入数据仓库 2 错误的数据 这一类错误产生的原因是业务系统不够健全 在接收输入后没有进行判断直接写入后台数据库造成的 比如数值数据输成全

16、角数字字符 字符串数据后面有一个回车操作 日期格式不正确 日期越界等 这一类数据也要分类 对于类似于全角字符 数据前后有不可见字符的问题 只能通过写SQL语句的方式找出来 然后要求客户在业务系统修正之后抽取 日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败 这一类错误需要去业务系统数据库用SQL的方式挑出来 交给业务主管部门要求限期修正 修正之后再抽取 3 重复的数据 对于这一类数据 特别是维表中会出现这种情况 将重复数据记录的所有字段导出来 让客户确认并整理 数据清洗是一个反复的过程 不可能在几天内完成 只有不断的发现问题 解决问题 对于是否过滤 是否修正一般要求客户确认 对于过滤掉的数据 写入Excel文件或者将过滤数据写入数据表 在ETL开发的初期可以每天向业务单位发送过滤数据的邮件 促使他们尽快地修正错误 同时也可以做为将来验证数据的依据 数据清洗需要注意的是不要将有用的数据过滤掉 对于每个过滤规则认真进行验证 并要用户确认 13 二 数据的清洗转换 2 数据转换数据转换的任务主要进行不一致的数据转换 数据粒度的转换 以及一些商务规则的计算 1 不一致数据转换 这

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号