数据整合的核心内容是从数据源中抽取数据,然后对这些数据进行转化,最终加载的目标数据库或者数据仓库中去,这也就是我们通常所说的 ETL 过程(Extract,Transform,  Load)。

IBM WebSphere DataStage(下面简称为DataStage)为整个 ETL 过程提供了一个图形化的开发环境,它是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集或数据仓库的集成工具。

通常数据抽取工作分抽取、清洗、转换、装载几个步骤:

抽取主要是针对各个业务系统及不同网点的分散数据,充分理解数据定义后,规划需要的数据源及数据定义,制定可操作的数据源,制定增量抽取的定义。

清洗主要是针对系统的各个环节可能出现的数据二义性、重复、不完整、违反业务规则等问题,允许通过试抽取,将有问题的纪录先剔除出来,根据实际情况调整相应的清洗操作。

转换主要是针对数据仓库建立的模型,通过一系列的转换来实现将数据从业务模型到分析模型,通过内建的库函数、自定义脚本或其他的扩展方式,实现了各种复杂的转换,并且支持调试环境,清楚的监控数据转换的状态。

装载主要是将经过转换的数据装载到数据仓库里面,可以通过数据文件直接装载或直连数据库的方式来进行数据装载,可以充分体现高效性。在应用的时候可以随时调整数据抽取工作的运行方式,可以灵活的集成到其他管理系统中。

一.数据源连接能力:数据整合工具的数据源连接能力是非常重要的,这将直接决定它能够应用的范围。DataStage 能够直接连接非常多的数据源,包括:

1、 文本文件

2、 XML 文件

3、 企业应用程序,比如 SAP、PeopleSoft、Siebel、Oracle Application

4、 几乎所有的数据库系统,比如 DB2、Oracle、SQL Server、Sybase ASE/IQ、Teradata、Informix等以及可通过ODBC连接的数据库

5、 Web Services

6、 SAS、WebSphere MQ

二.多国语言支持(NLS):

DataStage能够支持几乎所有编码,以及多种扩展编码(IBM、NEC、富士通、日立等),可以添加编码的支持,DataStage内部为UTF8编码。

三.并行运行能力:

ETL

Job的控件大多数都支持并行运行,此外DataStage企业版还可以在多台装有DataStage

Server的机器上并行执行,这也是传统的手工编码方式难以做到的。这样,DataStage就可以充分利用硬件资源。而且,当你的硬件资源升级的时候

也不用修改已经开发好的ETL

Job,只需要修改一个描述硬件资源的文件即可。并行执行能力是DataStage所能处理数据的速度可以得到趋近于线性的扩展,轻松处理大量数据。

四.便捷的开发环境:

DataStage 的开发环境是基于 C/S 模式的,通过

DataStage Client 连接到DataStage Server 上进行开发。这里有一点需要注意,DataStage Client

只能安装在 Windows 平台上面(在Win2000/XP上运行过)。而 DataStage Server 则支持多种平台,比如

Windows、Solaris、Redhat Linux、AIX、HP-UNIX。(在WinXP/Solaris8上运行过)

DataStage

Client 有四种客户端工具。分别是 DataStage Administrator、DataStage

Designer、DataStage Manager、DataStage Director。下面介绍这几种客户端工具在 DataStage

架构中所处的位置以及它们如何协同工作来开发 ETL Job 的。

(1) DataStage Administrator

DataStage Administrator 的主要功能有以下几个:

1. 设置客户端和服务器连接的最大时间。

管理员的身份登陆 DataStage

Administrator(默认安装下管理员为dsadm)。你可以设置客户端和服务器的最大连接时间,默认的最大连接时间是永不过期。最大连接时间的

意思就是如果客户端和服务器的连接时间超过了最大连接时间,那么客户端和服务器之间的连接将被强行断开。

2. 添加和删除项目

在 Projects标签中,可以新建或者删除项目,以及设置已有项目的属性。要用 DataStage 进行 ETL 的开发,首先就要用 DataStage Administrator 新建一个项目,然后在这个项目里面进行 ETL Job 的开发。

在Property里,能够设置该Project全局设置、用户权限以及License的管理

(2) DataStage Designer

DataStage Designer是ETL

Job开发的核心环境。值得注意的是,登陆DataStage Designer 的时候,不仅要指定DataStage Server

的IP或Server名,而且要指定连接到这个DataStage

Server上的哪个项目上面,上面已经提到DataStage的项目是由DataStage Administrator 来创建的。

DataStage Designer的主要功能可以概括为以下三个方面:

1. ETL Job的开发

DataStage

Designer里面包含了DataStage为ETL开发已经构建好的组件,

主要分为两种,一种是用来连接数据源的组件,另一种是用来做数据转换的组件。此外DataStage还提供自定义函数(Basic),利用这些组件,开发

人员可以通过图形化的方式进行ETL Job的开发,此外ETL Job支持参数的传递。

2. ETL Job的编译

开发好ETL Job后,可以直接在DataStage Designer里面进行编译。如果编译不通过,编译器会帮助开发人员定位到出错的地方。

3. ETL Job的执行

编译成功后,ETL Job就可以执行了,在DataStage Designer里面可以运行ETL Job。ETL Job的运行情况可以在DataStage Director中看到,这方面的内容将在介绍DataStage Director的时候提到。

4. ETL Job的DEBUG

ETL Job可以在Designer中设置断点,跟踪监视Job执行时的中间变量。

5. ETL Job Report的生成

可以为ETL Job生成文档报告,该报告非常详细,只通过该报告,就可以完全了解该Job的结构与处理过程,非常便于分析。

DataStage提供很多实用的控件,常用的控件有:

1. DB操作控件

主要用于各种DB的连接,连接方式有多种,有面向厂家的Native方式,如Sybase的OpenClient方式,也有通用的ODBC等方式,此外也有些比较特别的DB操作控件,如Sybase的IQ Load、BCP控件,主要用于数据的快速导入和导出。

2. 文件操作控件

常用的有Sequential File、Hashed File, Sequential File是可指定编码形式和格式的CSV文件,Hashed File主要是为了加快检索效率,而替代DB控件的一种比较好的选择,这两种控件可用于输入或输出。

3.处理控件

主要的处理空间有Transformer、Aggregator,

Transformer是负责数据转换的关键控件,在该控件中可以调用一些自定义函数,Aggregator是用于统计的控件,非常类似于SQL中的

GROUP BY,也提供Count、Max、Min、Sum的统计操作,还支持如First、Last、Average等操作。

DataStage的ETL Job分类:

1. Server Job

最为常用的Job类型,Job可以组合使用,Server Job是Job的最小单位。

2. Job Sequence

Job Sequence主要用于Job间的协作工作控制,如各Job的实行流程,出错处理,文件监控等。

3. Job Control

Job

Control是一种特殊的Server Job,这种Server

Job不是通过Designer来设计的,而是直接通过DataStage内嵌支持的Basic语言来开发,因此方式更为灵活,完全可以利用Job

Control替代Job Sequence,至少在出错处理和Log输出等方面要灵活很多。(我参与开发的一个项目中完全用Job

Control替代了Job Sequence,做出了更为详细的Log输出)

(3) DataStage Manager

DataStage Manager主要用来管理项目资源。一个项目可能包含多个ETL

Job,可以用DataStage Manager把一个项目里面的ETL Job导出来。然后再用DataStage

Manager导入到另外一个项目中去,利用这个功能一方面可以实现ETL Job的备份,另一方面就是可以在多个项目之间来重复使用开发好的ETL

Job。在DataStage Manager里面可以把数据库中的表结构直接导入到项目中来,供这个项目中的所有ETL

Job使用。DataStage Designer也提供了从数据库中直接导入表结构的功能。

(4) DataStage Director

DataStage Director 主要有以下两个功能:

1. 监测ETL Job的运行状态

ETL

Job在DataStage Designer中编译好后,可以通过DataStage Director来运行它。前面在介绍DataStage

Designer的时候提到在DataStage Designer中也可以运行ETL Job,但是如果要监测ETL

Job的运行情况还是要登陆到DataStage Director中。在这里,你可以看到ETL

Job运行的详细的日志文件,还可以查看一些统计数据,比如ETL Job每秒所处理的数据量。

2. 设置何时运行ETL Job

ETL Job开发完成后,我们可能希望ETL

Job在每天的某个时间都运行一次。DataStage Director为这种需求提供了解决方案。在DataStage

Director中可以设置在每天、每周或者每月的某个时间运行ETL Job。(Windows平台下需要打开的Task

Scheduler服务,此外,在Unix等平台下,更常用的是用Cron结合dsjob命令来定时运行ETL Job)

五.命令行形式的运行:ETL Job支持在DataStage

Server侧用命令行形式的调用,可以用dsadmin命令来管理DataStage的Project,包括Project的新建,删除以及一些环境变

量的增删(DataStage

7.5.1下未能通过dsadmin来设置全局NLS和一些项目属性)。使用dsjob命令,能够同步或非同步的运行DataStage的Job,并传递

需要的Job参数,能够检查Job运行的状态,并能恢复Job的运行状态。

六. DataStage的不足:

以上都是说DataStage优点,但实际上DataStage也有不少缺点和不足,这些不足点,会直接影响到能否采用DataStage来达到我们的客户或设计要求。下面就谈一下,最近利用DataStage7.5.1来开发一个项目中遇到的问题。

1.缺点:

在一个Bug,在利用DB控件的参照功能时,如果指定的SQL文有错误的话,那可能会直接造成DataStage出错,然后客户端会和服务端直接断开,需

要关闭客户端,重新连接服务端,并且更为严重的是,DB连接将不会被释放(可能是服务器端的执行进程并没有停掉的缘故)

DataStage的表定义的使用,可以通过PlugIn的方式导入,但是导入后基本就只起一个模版的作用,当表结构发生改变而需要修改表定义时,使用该表定义的地方并不能同步,需要手动修改,容易出现遗漏。

2.不足:

些高级控件的功能不够全面,在实际应用时,会出现不能完全利用DataStage提供的控件来满足要求,如:Sybase的BCP,

DataStage的Sybase BCP控件只支持导出,无法支持导入。当然这些不足,后来我都使用JAVA API来实现了Sybase

BCP和Sybase IQ Load。

错误处理功能不够,DataStage对业务错误,如:检索0件等错误,很难捕获和处理。

某些应用要求无法满足,如需要对DB某表的某数据进行状态监视,这时,由于DataStage只有监视文件的功能,DB访问也只有DB控件才可以,因此该应用最后也是用JAVA来实现。

datastage 函数_DataStage(ETL)技术总结 — 介绍篇 | 学步园相关推荐

  1. DataStage(ETL)技术总结 -- 介绍篇

    转载 数据整合的核心内容是从数据源中抽取数据,然后对这些数据进行转化,最终加载的目标数据库或者数据仓库中去,这也就是我们通常所说的 ETL 过程(Extract,Transform,  Load). ...

  2. datastage 函数_DataStage 调用存储过程(含输入输出参数)

    版本:IBM InfoSphere DataStage V11.3.1 操作系统:linux redhat 6.4 需求场景: DS调度数据库中存储过程,需要带入输入输出参数. 环境准备: 数据准备 ...

  3. datastage 函数_DataStage常用函数大全

    1 / 38 DataStage 常用函数大全 DATASTAGE 常用函数大全 . ......................................................... ...

  4. datastage 函数_DataStage常用函数大全.doc

    DataStage常用函数大全 DataStage常用函数大全 DataStage常用函数大全1 一.类型转换函数4 1.Char4 2.DateToString4 3.DateToDecimal4 ...

  5. datastage 函数_Datastage 中Transformer Stage:各个函数的解析

    [            最近在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行.            于是go ...

  6. matlab群延时函数,群延迟函数(group delay function)群延迟滤波器 | 学步园

    最近看了许多介绍Group delay function的论文,文章中大篇幅提到Group delay,group delay of digital filters,对这个方面的知识好像还挺有用的,所 ...

  7. oracle 截取小数点_oracle函数(关于处理小数点位数和时间) | 学步园

    一:处理数字 1. 取四舍五入的几位小数 eg: round(n+0.{m个0}5, m) 比如, 取两位的话: round(15.333 + 0.005, 2) result:15.34 比如:se ...

  8. o_rdonly_O_RDWR, O_CREAT等open函数标志位在哪里定义? | 学步园

    查了下O_RDWR, O_CREAT等定义,终于找到了. 我的系统是Fedora12, 其定义在文件:/usr/include/asm-generic/fcntl.h,部分定义如下: #include ...

  9. Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简述及技术选型介绍

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 萌芽阶段 很久之前就开始打算整理一下自己的技术博客了,由于各种原因( ...

最新文章

  1. 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素
  2. 高文院士:为什么中国的AI发展必须要有开源开放平台?
  3. 爱奇艺的架构到底有多牛?
  4. 贴吧html标签,html标签3(转载)
  5. postgresql网站翻译
  6. AliOS Things 硬件抽象层(HAL)对接系列2 — SPI driver porting
  7. PHP 梯形图,学习PLC,不要先翻资料,干就完了.搞起你的第一个梯形图.
  8. 现代偏微分方程第1章预备知识复习题
  9. MySQL 处理海量数据时一些优化查询速度方法
  10. 效果过度transition:all
  11. 值班 查看及重启系统
  12. 免费下载 仿宋GB2312字体
  13. ROCKCHIP UART开发指南
  14. 《红色警戒3》简体中文完美整合版下载
  15. 基于Android的照片分组共享APP设计与实现
  16. uni-app 上下滑动左右滑动
  17. 一、回首向来萧瑟处,也无风雨也无晴
  18. 计算机网络网速,科普 | 宽带的分类及网速计算
  19. 爱看网的内存占用情况
  20. Win10安装cuda11.1和cudnn8.0

热门文章

  1. 小程序参数二维码自动生成
  2. 基于电能质量分类的 ML 和 DWT(Matlab实现)
  3. 消灭电脑的弹窗广告和浏览器广告
  4. 杰理之MIC 免电容方案需要设置【篇】
  5. p12解析流程_解析p12格式的程序(提取公钥和私钥)
  6. would have to用法
  7. 安装XenServer
  8. 逻辑学学习.10 --- 谓词逻辑(二):一般命题的符号化
  9. php关键词替换的类(避免重复替换_保留与还原原始链接),浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)...
  10. upan启动写入usb驱动_为什么创建可启动USB驱动器比创建可启动CD更复杂?