ETL及kettle介绍--精选文档

上传人:新** 文档编号:464446255 上传时间:2023-10-06 格式:DOC 页数:18 大小:112.50KB
返回 下载 相关 举报
ETL及kettle介绍--精选文档_第1页
第1页 / 共18页
ETL及kettle介绍--精选文档_第2页
第2页 / 共18页
ETL及kettle介绍--精选文档_第3页
第3页 / 共18页
ETL及kettle介绍--精选文档_第4页
第4页 / 共18页
ETL及kettle介绍--精选文档_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《ETL及kettle介绍--精选文档》由会员分享,可在线阅读,更多相关《ETL及kettle介绍--精选文档(18页珍藏版)》请在金锄头文库上搜索。

1、目录1. ETL知识21.1. ETL定义21.1.1. 定义21.1.2. 前提21.1.3. 原则21.2. 模式及比较31.3. ETL过程61.3.1. 总流程61.3.2. 数据抽取流程71.3.3. 数据清洗流程71.3.4. 数据转换流程91.3.5. 数据加载流程101.4. 问题分析111.4.1. 字符集问题111.4.2. 缓慢变化维处理121.4.3. 增量、实时同步的处理121.4.4. 断点续传131.5. ETL工具132. Kettle简介及使用142.1. 什么Kettle?142.2. 下载及安装Kettle142.3. Kettle简单例子162.3.1.

2、 启动Kettle162.3.2. 创建transformation过程172.3.3. 创建job过程372.3.4. 命令行运行ktr和kjb411. ETL知识1.1. ETL定义1.1.1. 定义l 定义:数据的抽取(Extract)、转换(Transform)、装载(Load)的过程。l 目标:数据优化。以最小代价(包括对日常操作的影响和对技能的要求) 将针对日常业务操作的数据转化为针对数据仓库而存储的决策支持型数据 。1.1.2. 前提l 确定ETL范围通过对目标表信息的收集,确定ETL的范围l 选择ETL工具考虑资金运行的平台、对源和目标的支持程度、可编程的灵活性、对源数据变化的

3、监测、数据处理时间的控制、管理和调度功能、对异常情况的处理l 确定解决方案抽取分析、变化数据的捕获、目标表的刷新策略、数据的转换及数据验证1.1.3. 原则l 应尽量利用数据中转区对运营数据进行预处理。保证数据的安全性、集成与加载的高效性。 l ETL的过程应是主动“拉取”,而不是从内部“推送”,其可控性将大为增强。 l 流程化的配置管理和标准协议 l 数据质量的保证正确性(Accuracy):数据是否正确体现在现实或可证实的来源 完整性(Integrity):数据之间的参照完整性是否存在或一致 一致性(Consistency):数据是否被一致的定义或理解 完备性(Completeness):

4、所有需要的数据是否都存在 有效性(Validity):数据是否在企业定义的可接受的范围之内时效性(Timeliness):数据在需要的时间是否有效可获取性(Accessibility):数据是否易于获取、易于理解和易于使用 数据格式错误(如缺失数据、数据值超出范围或数据格式非法等)数据一致性:数据源系统为了性能的考虑,会在一定程度上舍弃外键约束,这通常会导致数据不一致。例如在帐务表中会出现一个用户表中没有的用户ID,在例如有些代码在代码表中找不到等。1.2. 模式及比较l 两种模式异构同构l 模式比较的维度:特点环境1.3. ETL过程1.3.1. 总流程l 数据抽取l 数据清洗l 数据转换l

5、 数据加载1.3.2. 数据抽取流程l 数据来源文件系统,业务系统l 抽取方式根据具体业务进行全量或增量抽取l 抽取效率将数据按一定的规则拆分成几部分进行并行处理l 抽取策略根据具体业务制定抽取的时间、频度,以及抽取的流程1.3.3. 数据清洗流程清洗规则:l 数据补缺对空数据、缺失数据进行数据补缺操作,无法处理的作标记l 数据替换对无效数据进行数据的替换l 格式规范化将源数据抽取的数据格式转换成为便于进入仓库处理的目标数据格式l 主外键约束通过建立主外键约束,对非法数据进行替换或导出到错误文件重新处理1.3.4. 数据转换流程转换规则l 数据合并多用表关联实现,大小表关联用lookup,大大

6、表相交用join(每个字段加索引,保证关联查询的效率)l 数据拆分按一定规则进行数据拆分l 行列互换l 排序/修改序号l 去除重复记录l 数据验证:lookup,sum,count1.3.5. 数据加载流程实现方式优点缺点时戳方式在业务表中统一添加字段作为时戳,当OLTP系统更新修改业务数据时,同时修改时戳字段值源数据抽取相对简单清楚,速度快,适合数据的增量加载需要修改业务表中的数据结构,业务数据变动时工作量比较大,相对风险较大日志表方式在OLTP系统中添加日志表,业务数据发生变化时,更新维护日志表内容不需要修改业务表中的数据结构。源数据抽取简单清楚,速度快,适合数据的增量加载业务系统中更新记

7、录日志操作麻烦全表对比方式抽取所有源数据,在更新目标表之前先根据主键和字段进行数据比对,有更新的进行update或insert对系统表结构没有任何影响,管理维护统一,可以实现数据的增量加载数据比对复杂,设计比较复杂,执行速度慢全表删除插入方式删除目标表数据,将源数据全部插入ETL规则简单,速度快对维表加代理健不适应,OLTP系统有删除数据时,不能在数据仓库体现被删数据,不能实现增量加载1.4. 问题分析1.4.1. 字符集问题1. 字符集定义字符集是字符(包含字母,数字,符号和非打印字符等)以及所指定的内码所组成的特定的集合。是基于某种操作系统平台和某种语言集支持的。语言集的集合被称为语言组,

8、它可能包含一种或多种语言。2. C/S字符集转换l 直接转换对于同一语言组的不同字符集之间,可以直接进行字符的转换,不会产生乱码l 通过Unicode转换Unicode支持超过650种语言的国际字符集 Unicode系统缺省字符集utf-81.4.2. 缓慢变化维处理1. 缓慢变化维定义在现实世界中,维度的属性并不是静态的,会随着时间的流失发生缓慢的变化。这种随时间发生变化的维度我们一般称之为缓慢变化维。2. 处理方式l 不保留历史数据l 保留历史数据起始-结束日期字段标识真/假状态字段标识版本号字段标识代理键字段标识n 自增序列n 构造算法l 保留且分析历史信息添加新的维度列(数据增多,维度

9、列增多)1.4.3. 增量、实时同步的处理l 整表匹配同一个库中进行l 写触发器客户是否允许创建触发器是否影响数据库性能l 读数据库日志Oracle:设定物化视图日志1.4.4. 断点续传l 利用源表的索引机制,抽取时按”数据块”顺序抽取 l 采取DBLink的机制,结合oracle自身机制优化效率 l 生成本地文件块,FTP传输减少对带宽影响。若中断,流程控制自动回滚加载当前数据块 l ETL工具大都支持异常中止后读取断点重新加载的处理l 支持对变化数据的捕获l 与目标数据库松耦合1.5. ETL工具目前ETL工具来源:1. 数据库厂商自带的ETL工具OWB、ODI:oracle数据库厂商提

10、供的工具,有局限性,与oracle数据库耦合太深SSIS:Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案(包括数据仓库的提取、转换和加载 (ETL) 包)的平台。前身是mssql2000的DTS第三方数据库源需要采用ODBC数据转换,效率上有一定折扣若项目以msssqlserver数据库为主,采用它肯定是最佳方案。2. 第三方工具提供商Ascential公司的Datastage:最专业的ETL工具,价格不菲,使用难度一般Informatica公司的Powercenter:专业程度如Datastage旗鼓相当,价格似乎比Da

11、tastage便宜。IBM SPSS Statistics:IBM SPSS Statistics 产品家族能够帮助企业解决从计划和数据收集到分析、报告和部署的整个分析过程中的问题。它由多个模块集成,您可以根据需求从中选择一个或多个模块来实现您所希望达到的功能。这些模块可单独购买,也可以捆绑购买。3. 开源ETL工具kettle:业界最有名的开源ETL工具。开源当然就免费,免费的有些东西使用就不是很方便。2. Kettle简介及使用2.1. 什么Kettle?Kettle是一个开源的ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)项目,项目名很有意思,

12、水壶。按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。Kettle包括三大块:Spoon转换/工作(transform/job)设计工具 (GUI方式)Kitchen工作(job)执行器 (命令行方式) Span转换(trasform)执行器 (命令行方式)Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。2.2. 下载及安装Kettle1. 下载地址:http:/ 本地安

13、装jdk 1.5或以上版本。3. 配置java环境变量(1) 打开我的电脑-属性-高级-环境变量(2) 新建系统变量JAVA_HOME和CLASSPATH变量名:JAVA_HOME变量值: 具体路径以自己本机安装目录为准变量名:CLASSPATH变量值:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;(3) 选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。变量名:Path变量值:%JAVA_HOME%bin;%JAVA_HOME%j

14、rebin;4. 配置kettle环境变量在系统的环境变量中添加KETTLE_HOME变量,目录指向kettle的安装目录:D:kettledata-integration5. 以上步骤完成后直接启动kettle即可Windows直接双击批处理文件 Spoon.bat具体路径为:kettledata-integrationSpoon.batLinux 则是执行spoon.sh,具体路径为:/kettle/data-integration/spoon.sh2.3. Kettle简单例子2.3.1. 启动Kettle点击D:data-integration下面的Spoon.bat,过一会儿,就会出现Kettle的欢迎界面:2.3.2. 创建transformation过程2.3.2.1. 配置数据环境在做这个例子之前,我们需要先配置一下数据源,这个例子中,我们用到了三个数据库,分别是:Oracle、MySql、SQLServer,以及一个文本文件。而且都放置在不同的主机上。Oralce:ip地址为192.168.1.103,Oracle的实例名为scgtoa,创建语句为:cre

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

当前位置:首页 > 资格认证/考试 > 人力资源管理师

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