ETL及kettle介绍知识讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
E T L及k e t t l e介绍
目录
1. ETL知识 (3)
1.1. ETL定义 (3)
1.1.1. 定义 (3)
1.1.2. 前提 (3)
1.1.3. 原则 (3)
1.2. 模式及比较 (4)
1.3. ETL过程 (7)
1.3.1. 总流程 (7)
1.3.2. 数据抽取流程 (8)
1.3.3. 数据清洗流程 (8)
1.3.4. 数据转换流程 (10)
1.3.5. 数据加载流程 (11)
1.4. 问题分析 (12)
1.4.1. 字符集问题 (12)
1.4.2. 缓慢变化维处理 (13)
1.4.3. 增量、实时同步的处理 (13)
1.4.4. 断点续传 (14)
1.5. ETL工具 (14)
2. Kettle简介及使用 (15)
2.1. 什么Kettle? (15)
2.2. 下载及安装Kettle (15)
2.3. Kettle简单例子 (17)
2.3.1. 启动Kettle (17)
2.3.2. 创建transformation过程 (18)
2.3.3. 创建job过程 (38)
2.3.4. 命令行运行ktr和kjb (42)
1.ETL知识
1.1.ETL定义
1.1.1.定义
●定义:
数据的抽取(Extract)、转换(Transform)、装载(Load)的过程。
●目标:
数据优化。以最小代价(包括对日常操作的影响和对技能的要求) 将针对日常业务操作的数据转化为针对数据仓库而存储的决策支持型数据。
1.1.
2.前提
●确定ETL范围
通过对目标表信息的收集,确定ETL的范围
●选择ETL工具
考虑资金
运行的平台、对源和目标的支持程度、可编程的灵活性、对源数据变化的监测、数据处理时间的控制、管理和调度功能、对异常情况的处理
●确定解决方案
抽取分析、变化数据的捕获、目标表的刷新策略、数据的转换及数据验证
1.1.3.原则
●应尽量利用数据中转区对运营数据进行预处理。保证数据的安全性、集
成与加载的高效性。
●ETL的过程应是主动“拉取”,而不是从内部“推送”,其可控性将大
为增强。
●流程化的配置管理和标准协议
●数据质量的保证
正确性(Accuracy):数据是否正确体现在现实或可证实的来源
完整性(Integrity):数据之间的参照完整性是否存在或一致
一致性(Consistency):数据是否被一致的定义或理解
完备性(Completeness):所有需要的数据是否都存在
有效性(Validity):数据是否在企业定义的可接受的范围之内
时效性(Timeliness):数据在需要的时间是否有效
可获取性(Accessibility):数据是否易于获取、易于理解和易于使用数据格式错误(如缺失数据、数据值超出范围或数据格式非法等)
数据一致性:数据源系统为了性能的考虑,会在一定程度上舍弃外键约束,这通常会导致数据不一致。例如在帐务表中会出现一个用户表中没有的用户ID,在例如有些代码在代码表中找不到等。
1.2.模式及比较
两种模式
异构
同构
模式比较的维度:特点
环境
1.3.ETL过程1.3.1.总流程
●数据抽取
●数据清洗
●数据转换
●数据加载
1.3.
2.数据抽取流程
●数据来源
文件系统,业务系统
●抽取方式
根据具体业务进行全量或增量抽取
●抽取效率
将数据按一定的规则拆分成几部分进行并行处理
●抽取策略
根据具体业务制定抽取的时间、频度,以及抽取的流程1.3.3.数据清洗流程
清洗规则:
●数据补缺
对空数据、缺失数据进行数据补缺操作,无法处理的作标记
●数据替换
对无效数据进行数据的替换
●格式规范化
将源数据抽取的数据格式转换成为便于进入仓库处理的目标数据格式●主外键约束
通过建立主外键约束,对非法数据进行替换或导出到错误文件重新处理
1.3.4.数据转换流程
转换规则
●数据合并
多用表关联实现,大小表关联用lookup,大大表相交用join(每个字段加索引,保证关联查询的效率)
●数据拆分
按一定规则进行数据拆分
●行列互换
●排序/修改序号
●去除重复记录
●数据验证:lookup,sum,count
1.3.5.数据加载流程
实现方式优点缺点
时戳方式在业务表中统一添加字
段作为时戳,当OLTP
系统更新修改业务数据
时,同时修改时戳字段
值源数据抽取相对简
单清楚,速度快,
适合数据的增量加
载
需要修改业务表中
的数据结构,业务
数据变动时工作量
比较大,相对风险
较大
日志表方式在OLTP系统中添加日
志表,业务数据发生变
化时,更新维护日志表
内容不需要修改业务表
中的数据结构。源
数据抽取简单清
楚,速度快,适合
数据的增量加载
业务系统中更新记
录日志操作麻烦
全表对比方式抽取所有源数据,在更
新目标表之前先根据主
键和字段进行数据比
对,有更新的进行
update或insert 对系统表结构没有
任何影响,管理维
护统一,可以实现
数据的增量加载
数据比对复杂,设
计比较复杂,执行
速度慢
全表删除插入方式删除目标表数据,将源
数据全部插入
ETL规则简单,速
度快
对维表加代理健不
适应,OLTP系统有
删除数据时,不能
在数据仓库体现被
删数据,不能实现
增量加载