资源描述
DataStage技术介绍
目录
1. 绪论 2
1.1 先进的开发和维护 4
1.2 完整的开发环境 5
1.3 企业级实施和管理 9
1.4 高扩展的体系架构 12
2. 附录B:DataStage企业版内嵌的扩展Stage 14
3. 附录C:扩展连接 19
1. 绪论
DataStage企业版是Ascential Software公司所有企业整合系列产品中关键产品。企业版支持大容量数据的收集、整合和转换,数据从简单结构到很复杂的结构。基于高可扩展性的软件架购,企业版使得企业能够通过高性能来解决大部分业务问题,并行处理大容量数据。强大的企业元数据管理能力使得可以在数据整合生命周期中在所有工具中共享和使用工具。
DataStage企业版发布了四个核心功能来成功实施企业数据整合:先进的开发和维护;完整的开发环境;企业级实施和管理;高扩展的体系架构;端对端的企业级元数据管理。
1.1 先进的开发和维护
DataStage企业版提供了全面的功能去最优化用户在建立、升级和管理数据整合架构时的速度、灵活性和效率。DataStage企业版增强的功能减少了学习的周期、简单化了管理和优化了开发资源的使用,减少了数据整合应用的开发和维护周期。结果,DataStage企业版使得企业能够花更少的时间开发他们的整合应用,更多的时间是不断的从中受益。
DataStage企业版使用了Client-server架构,如下所示。
图一、DataState企业版Client-Server架构
用户通过各个客户端工具访问DataStage企业版的开发、配置和维护功能。这些工具包括:
Designer:用来建立和编辑DataStage作业和表的定义。Designer中的“Job Sequencer”控制作业的执行,其他作业成功完成(或失败,等)的条件。
Administrator:用来执行管理任务,如建立DataStage用户、建立和删除工程并且建立清洗标准。
Manager:用来编辑管理用户工程的DataStage资料库。
Director:用来验证、时序安排、运行和监测企业版作业。
如图一所示,DataSage企业版的服务器组件运行在一系列的流行服务器上,如Unix、Windows等。
1.2 完整的开发环境
用户使用DataStage企业版的Designer组件建立企业版数据整合应用。企业版设计是基于数据流的概念。数据流使得用户非常容易建立和理解应用。用户在一个强大的图形化调色板上通过一系列的功能组件(Stage)标示数据集合的流程来构建一个数据整合应用。一个完整的数据流图(DataStage作业),从一个永久存储的数据源开始,并且执行一系列的增值转换和其他处理操作,最后加载数据到一个永久的存储。但是,企业版Designer开始使用户可以灵活从任何地方可以建立作业:从上到下、从下到上、从中间开始。一个完整的企业版数据流图如图二所示。
图二、DataStage企业版数据流图示
在建立一个企业版数据流图表时,通过一系列的处理步骤对庞大的数据集合构架顺序流。用户不需要担心如何在多处理器计算机上运行该应用。
企业版对数据整合应用工作流的顺序描述和在生产环境中应用的并行执行做了一个清晰的区分。
企业版处理数据集 (data set)。数据集就是对通过数据流程的记录的收集。一个数据集可以是屋里放置在磁盘上,也可以是虚拟放置在内存中。数据在数据流中的Stage中移动使用的是虚拟的数据集,这样可以大大提高性能;分区(在后面介绍)是在Stage的属性中设置的。
企业版提供了多个内嵌的Stage来执行通用的数据整合任务,如Sort、Merge、join、filter、Transform和Aggregate。更完整的内嵌Stage列表参考本文档的Appendix A。每个企业版Stage是一个完整的功能组件,已经在多处理器系统中高吞吐量和高性能并行执行过。这些Stage根除了为通常的数据处理应用进行编码的需要。用户可以在企业版Designer GUI中找到这些内嵌的Stage。用户可以使用Stage的下拉菜单来这只Stage的参数。企业版Aggregator Stage的编辑器如下所示。
图三、企业版编辑Aggregator Stage图标和Stage编辑器例子
企业版Transformer Stage是一个强大和灵活的组件,允许用户对input link输入的数据进行转换。并且将数据传到另一个活动的Stage或者将数据写到目标数据或文件。Transformer编辑器(如下所示)使得用户可以在input link和output link间简单建立mapping,并且可以使用BASIC等语言建立任意转换。这些转换可以并行执行来提高吞吐量和性能。企业版提供了超过100个内嵌的功能,另外可以用C或C++编写的route在转换中使用和进行互操作。
图四、企业版Transformer Stage图标和Stage编辑器例子
DataStage企业版内嵌的Stage包括高性能访问(加载和读)关系型数据库的强大组件,包括并行的关系型数据库。例如,企业版的Oracle Stage提供了一个访问Oracle表的高性能并行接口。Oracle Stage支持Load和Upsert写方式和支持表和查询的读方式。企业版也可以利用DB2强大的数据库分区特性和Teradata的高性能、并行数据加载和导出。
另外,DataStage企业版提供了一些Stage可以使得SAS用户在大容量数据上执行SAS。Parallel SAS Data Set Stage通过SAS Stage的连接从一个并行的SAS数据集中读取和写入数据。通过利用并行硬件执行平台和并行关系型数据库,这些SAS Stage能够将大大增强需要进行处理和分析大数据量的SAS的吞吐量和性能。
企业版的内嵌扩展Stage提供了数据整合应用中80%到90%的最常用的逻辑需要。另外,企业版提供了许多机制用来建立自定义的Stage:
n Wrapped--允许并行执行一个顺序程序。
n Build――允许自动并行执行自定义Stage的C语言表达式。
n Custom 提供了完整的C++API,来开发复杂和扩展的Stage。
基于组件架构和扩展内嵌组件类库的DataStage企业版消除了对传统编码方式的需要,最大化了组件的重复使用。对于可扩展的数据整合应用来说,企业版开放的和可扩展的架构使得整合第三方软件工具和已存在的程序更加容易。
Stage和作业的单独分区,包括每一个Stage的联合分区、元数据(表定义)和Transformer转换定义,可以在共享容器 (Share Container) 中被其他用户重复使用。共享容器允许用户提高产品性和在用户和工程间共享。
作业模板 (Job Template)进一步提升了效率。用户能够比以前更快地启用已定义好的模板。同时,标准化的模板也提供给用户一个高效的起始点。
智能帮助提供建造从简单到复杂的作业。用户通过一系列的询问,智能帮助可以象魔术师一样输出一个DataStage企业版作业或作业序列。他们使用元数据智能提示用户答案和输出最后的结果。
Ascential载入一些智能助手,一个建立纬度缓慢变化 (Slow Changing Dimension) 的星型架构 (Star Schema) 的数据库(类型1、2、3支持)。
1.3 企业级实施和管理
许多大的公司都有他们自己在复杂生产环境下的配置、时间序列、监测和管理应用的标准。DataStage企业版提供了灵活功能来迎合这些需要。
首先,DataStage提供了一个图形化的作业顺序器 (Job Sequencer),允许用户定义作业执行的序列。设计一个作业序列就象设计一个作业。用户在DataStage中设计作业序列。从工具条增加一个Activities(相对于Stage),并且通过Trigger进行连接用以定义控制流。每个activity都有属性,可以在trigger表达式中测试并且传到序列前面的其他的activity中。Activity也可以有参数,可以用来支持job参数或routine参数。Job序列可以有自己的属性和参数,这些属性和参数可以顺序传到activity中。序列也可以包括控制信息,例如,序列中job的成功或失败影响活动的走向。一旦job序列被定义完成,可以在任何提供的接口(下面做详细的介绍)中建立时间顺序和执行。
图五、DataStage Job序列例子
其次,企业版提供了Director和Manager的图形化功能。象前面说过的,manager是用来管理工程的,包括导入和导出组件,用来将应用配置到产品。Director用来建立时序,执行和监测job(或job序列)。
另外,企业版提供了command-line、API和web services用来对应用进行配置、执行、监测和管理。Job能够使用所有的工具进行开始、停止和监测。可以提供所有的工具查看Job监测的详细内容-包括Director。
企业版返回的信息包括每个并行分区的记录条数、CPU使用率、开始/结束时间等。所有的这些都是在单独的stage级别。这个命令行接口是:
dsjob –report <project> <job> [<report type>]
report type = BASIC,DETAIL,XML
可通过XML schema 和 XML style sheets对正在运行的job进行不同角度的查看。
就算job已经完成,这些信息仍然是可用的。这就是operational meta data。Command line和web service接口通过文本或XML方式返回出这些operational meta data。
对于国际数据的需要,DataStage企业版可以处理和管理multi-byte的数据结构。客户端相应(如属性设置和表定义)可以使用用户本地的语言。用户可以根据国际校正规则建立客户化的排序规则。
1.4 高扩展的体系架构
建立在高扩展软件架构上的企业版提供了高级别的吞吐量和性能。
象前面所描述的,用户可以使用企业版的Designer工具建立简单的顺序数据流图表。当构架出顺序的数据流图表,用户不用担心底层的硬件架构和处理器的数量。一个专门的配置文件可以定义这些底层多处理器计算环境中的资源(处理器、内存、磁盘)。这个配置可以在顺序数据流图表和应用的并行执行之间建立一个清晰的分离。这样就可以很简单开发扩展的数据整合系统并且并行执行(如图六所示)。
DataStage企业版可在管道并行和分区并行的机制下执行,这样可以获得高吞吐量和性能:
n 数据管道 (Data Pipelining) 意味着应用可以从源系统拉入数据并且在数据流图表中定义的顺序处理功能间移动。记录通过管道进行流动-使用上面介绍过的数据集 (DataSet) 【虚拟】-这样使得记录通过一系列的功能组件进行流动而不需要将记录加载到磁盘。
n 数据分区 (Data Partitioning) 是一种将记录集分割到各个分区,或记录子集的并行方法。数据分区通常提供了一种好的、可以线性增长的应用性能。企业版支持记录集通过应用流的自动分区,象DB2一样使用hash、range、entire、random、round robin等方法。
这个benchmark是在写数据(每条记录平均534 byte、50多个字段)之前进行了15此的不同的转换。图8以1:1的比例显示出处理器导致近乎线性的性能扩展。Ascential Software可以提供充详细及验证过的性能benchmark报告。
2. 附录B:DataStage企业版内嵌的扩展Stage
Stage
描述
Transformer
对任何需要转换的输入的数据集合进行转换,并将数据传输到其他活动的Stage中或一个将数据写入数据库或文件的Stage
Sort
用来并行执行更复杂的排序操作
Merge
将一个或多个排序的更新数据集合合并成一个排序的主数据集合
Join
在一个或多个输入数据集合上执行连接操作并输出一个结果数据集,连接操作支持:Inner、Left Outer、Right Outer和 Full Outer
External Filter
允许指定一个作为处理数据过滤器的Unix命令行
Aggregator
对于单一的输入数据记录进行分组并且计算每一组的合计和总计
Make Vector
组合输入数据记录中指定的字段到一个具有相同类型的字段矢量
Make Subrecord
组合指定的输入数据集合中的矢量到子记录的矢量,它的字段具有和原始矢量相同的名字和类型
Split Vector
提升固定长度矢量的参数到一系列相似的命名顶级字段
Combine Records
组合那些主键字段值被指定的记录到子记录矢量
Compare
对两个分拣输入数据集合中的记录进行一个字段一个字段的检查
Lookup
对包含在 Lookup File Set Stage 中的查找表进行查找操作
Lookup File Set
允许建立一个查找文件集或查找参考
Funnel
拷贝多个输入数据集到一个输出数据集;对于将分开的数据集合合并成一个大的数据集;支持持续的读、排序、顺序输入数据集。
Copy
拷贝一个输入数据集到多个输出数据集;输入数据集中的每一条记录拷贝到每一个输入的数据集中,而且不需要修改
Sample
使用百分比或一段模式对输入的数据集进行取样
Peek
将记录字段值显示到作业日志或分开的output link,就象Copy Stage将输入的数据集拷贝到一个或多个输出数据集
Remove Duplicates
对输入的数据集进行单一排序,删除重复的记录,并将结果写入一个输出的数据集
Modify
改变输入字段定义到输出数据集(如类型转换或null处理/转换等);对于重新命名和类型转换使非常有效率的
Filter
基于用户指定的约束(“where子句”)将输入数据集转换到不同的输出数据集(Link)。对于过滤记录使非常有效率的。
Switch
根据选择器字段的值,将一个输入记录分配到一个输出的Link,支持128个Output Link和1个Reject Link。
Change Capture
抓取两个输入数据集,表现为前和后,并且获取后面的数据路输出一个记录表现已经改变的数据集
Change Apply
抓取变化数据,包括前面或后面数据记录变化,从Change Capture Stage并应用编码改变操作到前面数据集,计算一个后面数据集
Head
从一个输入数据集合分区中选择第一个N条记录并且将选择的记录拷贝的输出数据集中
Tail
从一个输入数据集分区中选择最后一个N条记录并且将选择的记录拷贝的输出数据集中
Write Range Map
将数据写入Range Map;抓取排序或排序产生的数据集合,并写入到一个文件用于范围分区方法
Encode
使用支持的Unix编码命令对一个数据集合进行编码;将一个顺序数据集合转换到没有处理过的二进制数据流
Decode
使用支持的Unix解码命令对一个数据集合进行解码;将一个没有处理过的二进制数据流转换到数据集合
Compress
使用Unix Compress 或 GZIP 工具压缩数据集合;将一个顺序数据集合转换到没有处理过的二进制数据流
Expand
使用Unix Uncompress 或 GZIP 工具展开数据集合;将一个没有处理过的二进制数据流转换预先压缩的数据集合到一个数许数据集合
Difference
对两个输入的数据集合进行逐条的对比,相同数据集合的不同转换产生出前面和后面的数据集合
Column Import
从一个字段导入数据并且输出到一个或多个字段
Column Export
从多个不同类型的字段导出数据到一个字符类型或二进制类型的字段
Column Generator
增加字段到输入数据并且为处理的数据行字段产生假数据;输出新的数据集合
Row Generator
产生一组适合指定表定义的假数据;对于不使用真实可用数据对作业进行测试非常有用
Data Set
从一个数据集读取数据或将数据写入一个数据集;企业版隐藏了复杂的处理和在并行计算机上并行存储数据到磁盘
File Set
从一个文件中读取数据或将数据写入文件;并行执行
Sequential File
从一个Flat File读取数据或将数据写入Flat File;通常是并行执行和可以配置成顺序执行
External Source
从一个或多个源程序读取数据
External Target
将数据写入一个或多个目标程序
Parallel SAS Data Set
从并行SAS 数据集合读取数据或将数据写入并行 SAS 数据集合;用于同 SAS stage 进行连接
SAS
用于并行执行部分 SAS 应用
DB2
IBM DB2 UDB 访问
l 从DB2数据库读取数据或将数据写入DB2数据库
l 顺序执行或并行执行
l 支持DB2 的 Hash分区
l 支持 Write、Upsert 和 Load的写方法
l 支持表、自动产生SQL和用户定义SQL读方法
Oracle
Oracle 数据库访问
l 从Oracle数据库读取数据或将数据写入Oracle数据库
l 顺序执行或并行执行
l 支持 Load 和 Upsert 写方法
l 支持 Table 和 Query 读方法
Informix XPS
Informix XPS 数据库访问
l 从 Informix XPS 数据库读取数据或将数据写入Informix XPS 数据库
l 顺序执行和并行执行
Teradata
Teradata 数据库访问
l 支持从 Teradata 数据库读取数据和将数据写入Teradata 数据库
l FastExport:Table、Auto-generated SQL、User-generated SQL
l FastLoad:Create、Append、Replace、Truncate
l 顺序执行和并行执行
l 支持TUF6.1、TTU7.0
ODBC (coming soon)
使用 ODBC 访问数据库
3. 附录C:扩展连接
所有可用到DataStage Server(通过plug-in架构)的连接对于企业版也可用。
Stage
描述
Other database interfaces
其他数据库接口,包括Sybase、Unidata 等
XML PACK 2.0
基于XML架构定义(XSD)读取和写 XML 数据;在DataStage作业中,基于XML Stylesheet(XSL-T)允许XML从一中架构直接转化的另一种架构
WebSphere MQ
从MQ队列读或写,包括 Destructive 读
Web Services Client PACK
在作业设计中,允许设计者使用基于 Web Service 的资源作为一个源、目标或转换
Java PACK
允许使用预先编译的 Java 类来访问源或目标;建立和编译 Java 类到转换中
Enterprise Applications
JD Edwards、PeopleSoft、SAL BW、SAP/R3、Siebel
Ascential Connect
其他数据源,包括IDMS、NonStopSQL 等。E-business 源/目标,包括EDI-EDIFACT、HL7、HIPAA等
展开阅读全文