数据仓库

来源:互联网 发布:淘宝网拍十大女模特 编辑:程序博客网 时间:2024/06/03 19:29
  • ETL工具
  • ETL,Extraction-Transformation-Loading的缩写,中文名为数据抽取、转换和加载。ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
  • ETL工具的选择

    • 对平台的支持程度。
    • 对数据源的支持程度。
    • 抽取和装载的性能是不是较高,且对业务系统的性能影响大不大,倾入性高不高。
    • 数据转换和加工的功能强不强。
    • 是否具有管理和调度功能。
    • 是否具有良好的集成性和开放性
  • 常用的ETL工具

    • Datastage:最专业的ETL工具,价格不菲,使用难度一般
      DataStage 的开发环境是基于 C/S 模式的,通过 DataStage Client 连接到DataStage Server 上进行开发,DataStage Client 有四种客户端工具。分别是 DataStage Administrator、DataStage Designer、DataStage Manager、DataStage Director。
      ETL Job开发流程
      1. 用 DataStage Administrator 新建一个项目;
      2. 用 DataStage Designer 连接到这个新建的项目上进行ETL Job的设计;
      3. 用 DataStage Director 对设计好的ETL Job设置运行的模式,比如多长时间运行一次ETL Job;
      4.用 DataStage Manager 进行ETL Job的备份等。
      创建一个简单的ETL job
      1。配置ODBC数据源
      用Oracle Net 连接,定义简称来标识服务的位置,如SPC数据库,通过标识符的简称映射到连接描述符 (它包含服务的网络位置和标识)。
      这里写图片描述
      2。新建项目
      1)用DataStage Administrator登录到DataStage Server。Host system是安装DataStage Server的主机,输入它的IP地址或者主机名。另外再输入用户名和密码后,单击按钮”OK”
      这里写图片描述
      (2)登录后,在标签Projects中可以看到目前这个DataStage Server上面所有的项目。单击按钮”Add”新建一个项目
      这里写图片描述
      (3)在弹出的对话框中输入项目名SampleProject,项目存储的默认路径是DataStage安装路径的Projects目录下面,你可以通过单击按钮”Browse”来改变默认路径。注意不要钩上选择框”Create protected project”,因为如果钩上的话你所创建的工程将没办法被改变。单击按钮”OK”;
      这里写图片描述
      (4)你会看到在项目列表里面已经有了我们刚创建好的项目SampleProject,单击按钮”Close”关闭DataStage Administrator;
      这里写图片描述
      (5)用DataStage Designer登陆到DataSatge Server,输入DataStage Server的IP或主机名以及用户名和密码,并指定Project为我们刚才创建的项目SampleProject。单击按钮”OK”
      这里写图片描述
      (6)在DataStage Designer当中单击File’New去创建一个新的ETL Job;
      这里写图片描述
      ( 7)选择”Sever Job”,单击按钮”OK”;
      这里写图片描述
      (8) 创建一个新的ETL Job名称为OVERTIME,单击工具栏上的图标”保存”,或者用快捷键”Ctrl+S”来保存,这时候一个保存ETL Job的对话框会弹出来;
      这里写图片描述
      (9)从左边的Database列表中将ODBC和ORACLE拖曳至右边的设计区域
      这里写图片描述
      接着 ,从左边的Processing列表中将Transform 拖曳至右边的设计区域。
      这里写图片描述
      这里写图片描述

(10)左键双击左边的ODBC图标,会弹出如下图所示的属性框。在标签Stage的子标签General中,设置Stage name和Server name。User ID和 Password设置为右权限访问这个数据库的用户名和密码。Transaction Isolation的默认的选项是Cursor Stability,保持默认选项然后单击标签Output
这里写图片描述
(11)在标签Output的子标签General中,选择Generated SQL Query。这样DataStage会自动帮你生成大部分的SQL代码。然后单击子标签Columns;
这里写图片描述
(12)点Columns子标签,建表结构,建完后单击OK按钮;
这里写图片描述
(13)在设计区域中双击ORACLE图标,会弹出如下图所示的属性框。
这里写图片描述
在INPUT子标签属性表中,选择要导入的表名和更新数据的方式,如下图
这里写图片描述
(14) 在设计区域中,双击transform图标,用户可以在Stage中,对传入的数据进行任何必要的处理,再把处理好的数据传给下一个Stage。 下图就是一个正在被编辑的Transformer Stage,窗口的上半部分显示了输入与输出的字段之间的对应关系,其中DSLink3是输入的连线名称,DSLink4是输出的连线名称。而窗口下半部分详细说明了每一个输入或者输出字段的定义。
这里写图片描述
如果仅仅是把输入与输出的字段对应起来,那并不能体现出Transformer Stage的作用。实际上,用户可以通过编辑输出字段的derivation区域的值,对输入字段的值进行修改,使其结果可以满足输出字段的要求。用户只需要双击某个字段的derivation区域(图1中的红色区域)就可以对其进行编辑。这时,再点击右键即可出现一个菜单以便用户选择DataStage内置的或者用户自定义的功能函数的分类。当用户选择了其中的一种类型,就会弹出另一个窗口展示出DataStage中此种类型中的所有内容,如图所示
这里写图片描述
(15) 点击下图中的运行按钮,就可以看到数据传输的情况。
这里写图片描述
(16)打开DataStage Director 如下图所示,OVERTIME的状态变成了Finished。OVERTIME
成功结束运行;
这里写图片描述


  • kettle:业界最有名的开源ETL工具。
    kettle使用方法:
    Kettle提供了资源库方式的方式来整合所有的工作,但是因为资源库移植不方便,所以我们选择没有资源库;
    1)创建一个新的transformation,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation文件保存后后缀名为ktr;
    2)创建一个新的job,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb; Transformation转换介绍;
    每一个环节可以通过鼠标拖动来将环节添加到主窗口中,并可通过shift+鼠标拖动,实现环节之间的连接。

这里写图片描述
job任务介绍
这里写图片描述
Main Tree菜单列出的是一个Job中基本的属性,可以通过各个节点来查看
DB连接:显示当前Job中的数据库连接,每一个Job的数据库连接都需要单独配置。
Job entries:一个Job中引用的环节列表
这里写图片描述
Job entries菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。
每一个环节可以通过鼠标拖动来将环节添加到主窗口中。
并可通过shift+鼠标拖动,实现环节之间的连接。
- 数据清洗的方法:
- 解决不完整数据( 即值缺失)的方法
大多数情况下,缺失的值必须手工填入( 即手工清理)。当然,某些缺失值可以从本数据源或其它数据源推导出来,这就可以用平均值、最大值、最小值或更为复杂的概率估计代替缺失的值,从而达到清理的目的。
- 错误值的检测及解决方法
用统计分析的方法识别可能的错误值或异常值,如偏差分析、识别不遵守分布或回归方程的值,也可以用简单规则库( 常识性规则、业务特定规则等)检查数据值,或使用不同属性间的约束、外部的数据来检测和清理数据。
- 重复记录的检测及消除方法
数据库中属性值相同的记录被认为是重复记录,通过判断记录间的属性值是否相等来检测记录是否相等,相等的记录合并为一条记录(即合并/清除)。合并/清除是消重的基本方法。
- 不一致性( 数据源内部及数据源之间)的检测及解决方法
从多数据源集成的数据可能有语义冲突,可定义完整性约束用于检测不一致性,也可通过分析数据发现联系,从而使得数据保持一致。


  • 数据自动转换
  • 所有抽取的数据必须转换为数据仓库可用的数据,拥有可以用来进行战略决策的信息,是数据仓库最根本的原则。
  • 数据转换的基本任务:选择、分离/合并、转化、汇总和丰富。
  • 数据转换的主要类型:格式修正、字段解码、计算值和导出值、单个字段的分离、信息的合并、特征集合转化、度量单位的转化、日期/时间转化、汇总和键的重新构造。
  • 数据的整合和合并:这个部分主要有两个问题,实体识别问题和多数据源问题。
  • 如何实施转换:使用转化工具,例如ETL工具中的kettle,自动的工具会提高效率和准确性,并且转换参数和规则会被作为元数据存储起来,但是初始成本较高,而且也不是所有的转换都能使用工具实现;手工技术,这种方法会带来复杂的编码和测试,而且元数据比较难处理。
原创粉丝点击