DataStage 工作笔记
DataStage 日志记录使用规范
DATASTAGE日志记录使用规范一、设计目的在以往的datastage开发过程中,通过oracle enterprise stage 进行数据入库的时候,因为是使用的datastage的入库技术,即直接使用insert语句插入数据,所以无法在数据库中记录插入的记录条数和reject的记录条数.在这种情况下,为了能够统计加载资料量,我们使用先调用shell命令统计job日志中的加载记录条数,再通过调用存储过程把记录条数记载入数据库的日志表的方式来实现统计加载记录条数的目的二、相关程序a)命令行程序名称:sp_log.sh功能:查询job日志中对应sequence下所有job的插入目标表的记录条数,并通过调用oracle存储过程把统计出的记录条数加加载数据库日志表;输入参数: DSPROJECT datastage项目名称DSJOBNAME datastage sequence job 名称WORKDA TE 加载日期,用于插入日志表WORK_DATE列DBNAME 加载数据库连接名称DBUSER 加载数据库用户名称DBPWD 加载数据库用户密码输出参数: OUTPUT 加载成功失败标志b)存储过程名称:sp_log功能:使用输入参数插入stat_error_log表,保存日志记录输入参数: in_work_date 加载日期,插入日志表WORK_DATE列in_proc_name 加载程序名称,插入日志表PROC_NAME列in_table_name 加载目标表名称,插入日志表TABLE_NAME列in_proc_type 加载程序类型,插入日志表PROC_TYPE列,0为存储过程,1为ds jobin_row_num 加载记录条数,插入日志表ROW_NUM列in_sql_code 加载SQL_CODE,插入日志表SQL_CODE列,本处只插入空值in_sql_errm 加载SQL_ERRM,插入日志表SQL_ERRM列,本处只插入空值in_execute_flag 加载标志,插入日志表EXECUGTE_FLAG列,0为成功,1为失败in_stat_time 加载结束日期,插入日志表STAT_TIME列in_begin_time 加载开始日期,插入日志表BEGIN_TIME列in_info 加载信息,插入日志表INFO列,本处插入执行周期和拒绝记录条数输出参数: out_sqlcode 加载标志,0为成功,非0值为失败out_sqlmsg 加载信息,记录正确结束信息或失败错误原因及出错位置三、使用规范a)封装sequence程序调整在原有job封装sequence程序的尾部添加一个Execute Command Stage,用这个Stage调用shell命令,如图:b)参数传递在Execute Command Stage 中,我们需要填写调用命令行的一些信息,如下: Command:/EDWETL/SH/sp_log.shParameters:P05_EDW test_ec #WORKDATE# #DBNAME# #DBUSER# #DBPWD#其中,Command字段填写的是命令行保持不变,除非开发规范发生变化;Parameters字段填写必须按照project名称+空格+seq名称+空格+#WORKDATE#+空格+#DBNAME#+空格+#DBUSER#+空格+#DBPWD#的方式填写,如图:c)运行前核查表i.确认sp_log.sh在/EDWETL/SH/下ii.确认该文件有执行权限iii.确认datastage执行用户具有/EDWETL/TMP文件夹的读写权限iv.确认目标数据库用户下有sp_log的存储过程,该过程有效并有执行权限d)范例程序具体的可执行范例程序在:10.201.64.13的P05_EDW\TMP下,SEQUENCE名称为test_ec。
DATASTAGE----DATASTAGE经验积累
DATASTAGE——一DATASTAGE经验积累一、JOB的分类与作用1、Server JOB:最为常用的Job类型,Job可以组合使用,Server Job是Job的最小单位。
原文档:If you have the Web Services pack installed an additional check box, Web Service Enabled, appears. Select it to indicate the job can be made available as a web service.2、Parallel JOB:3、Mainframe JOB:运行于大型机的JOB。
4、JOB Sequences:Job Sequence主要用于Job间的协作工作控制,如各Job的实行流程,出错处理,文件监控等。
二、jobstatus的用法jobstatus-jobstatus waits for the job to complete, then returns an exit code derived from the job status.命令格式为:dsjob –run[ –mode [ NORMAL | RESET | VALIDATE ] ][ –param name=value ][ –warn n ][ –rows n ][ –wait ][ –stop ][ –jobstatus][–userstatus][-local]project job三、判断NULL值 实例STAGE :JOIN STAGE设置:LEFT JOIN左输入语句:SELECT * FROM PMP_Insured_Amount右输入语句:SELECT COL_ID,TAB_NAME,WORK_DATE,REF_COLUMN1 AS UNIQUE_ID_IN_SRC_SYS,REF_COLUMN2,ROW_ID,HASHCODE AS B_HASHCODE,ANCHOR_ID,PARTITION_KEY,IS_DUPLICATED,'A' AS MARK --用以判断结果集右边是否为空FROM ETL_FOR_INC_TMP2SQL语句:SELECT A.*,B.*FROM PMP_Insured_Amount ALEFT JOIN ETL_FRO_INC_TMP2 BON A.UNIQUE_ID_IN_SRC_SYS = B.UNIQUE_ID_IN_SRC_SYS 功能:判断来自A表的所有记录,哪些能够B表关联,哪些不能与B表关联。
经验总结_DataStage
经验总结_DataStage本资料仅供内部使用!经验总结_DataStage2010年09月29日目录1.D A TA S TAGE怎么调用存储过程 (2)2.D A TA S TAGE调度设计 (3)1. DataStage怎么调用存储过程1)打开Desinger2)拉入DB2 Connector控件3)填写参数4)在“Insert statement”属性中输入:call DCDW.SP_ODS2DW_DIRECTOR 5)总体情况如下图:6)编译1)新建“序列作业”2)加入Job Activity控件3)编辑Job Activity控件内容4)调度时间的设置3. DataStage8.5作业日志入库1)原理:新建一个Before/After subroutine,名为RoutineJobInfo,每个JOB运行完后执行一个这个routine,用于将每个job执行完后的相关日志信息写到一个文件里,然后通过一个shell程序runjobinfo将每个job运行的日志信息写入数据表LOG_DATASTAGE中。
每天通过检查LOG_DA TASTAGE表中每个job的状态信息来检查job是否运行失败。
2)步骤第一步,打开Designer 客户机,进入如下界面,找到左边的Routines目录第二步第三步RoutineJobInfo_code.txt 第四步第五步输入参数0;/dcdata/etl/runjobinfo/,在/dcdata/etl/runjobinfo/目录下产生每个JOB运行后的日志信息,文件名为job名称.txt。
3)建立日志表(DCDW.LOG_DATASTAGE)4)Shell程序etl_runjobinfo.sh读取/dcdata/etl/runjobinfo/下产生的每个JOB日志信息,产生JOB运行清单jobfilename.tmp记录运行job名称,将相关信息插入DCDW.LOG_DATASTAGE表。
Datastager入门应用开发(详细示例)
Datastage应用开发1 Datastage 简介Datastage包含四大部件:Administrator、Manager、Designer、Director。
1.用DataStage Administrator 新建或者删除项目,设置项目的公共属性,比如权限。
2.用DataStage Designer 连接到指定的项目上进行Job的设计;3.用DataStage Director 负责job的运行,监控等。
例如设置设计好的job的调度时间。
4.用DataStage Manager 进行Job的备份等job的管理工作。
2 设计一个JOB示例2.1 环境准备目标:将源表中数据调度到目标表中去。
1 数据库:posuser/posuser@WHORADB , ip: 192.168.100.882 源表:a_test_from3 目标表:a_test_to两者表结构一样,代码参考:create table A_TEST_FROM(ID INTEGER not null,CR_SHOP_NO CHAR(15),SHOP_NAME VARCHAR2(80),SHOP_TEL CHAR(20),YEAR_INCOME NUMBER(16,2),SHOP_CLOSE_DATE DATE,SHOP_OPEN_DATE DATE);alter table A_TEST_FROMadd constraint TEST primary key (ID);4. 示例数据:insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24402, '105420580990038', '宜昌市云集门诊部', '82714596 ', 1000, to_date('01-05-2008', 'dd-mm-yyyy'), to_date('01-06-2008', 'dd-mm-yyyy'));insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24403, '105420559982198', '于志良', '82714596 ', 2000, to_date('02-05-2008', 'dd-mm-yyyy'), to_date('02-06-2008', 'dd-mm-yyyy'));insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24404, '105420556410012', '阳光儿童广场', '82714596 ', 3000, to_date('03-05-2008', 'dd-mm-yyyy'), to_date('03-06-2008', 'dd-mm-yyyy'));insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24405, '105420580620033', '秭归县医疗中心', '82714596 ', 4000, to_date('04-05-2008', 'dd-mm-yyyy'), to_date('04-06-2008', 'dd-mm-yyyy'));insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24406, '105420559120063', '同德医药零售北门连锁店', '82714596 ', 5000, to_date('05-05-2008', 'dd-mm-yyyy'), to_date('05-06-2008', 'dd-mm-yyyy'));2.2 打开Designer任务:打开datastage designer,连接datastage服务器1.双击桌面datastage designer图标。
datastage教程
1、【第一章】datastage简介与工作原理1、简介数据中心(数据仓库)中的数据来自于多种业务数据源,这些数据源可能是不同硬件平台上,使用不同的操作系统,数据模型也相差很远,因而数据以不同的方式存在不同的数据库中。
如何获取并向数据中心(数据仓库)加载这些数据量大、种类多的数据,已成为建立数据中心(数据仓库)所面临的一个关键问题。
针对目前系统的数据来源复杂,而且分析应用尚未成型的现状,专业的数据抽取、转换和装载工具DataStage是最好的选择。
Websphere DataStage 是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集市或数据中心(数据仓库)目标数据库的集成工具。
DataStage 能够处理多种数据源的数据,包括主机系统的大型数据库、开放系统上的关系数据库和普通的文件系统等,以下列出它所能处理的主要数据源:大型主机系统数据库:IMS,DB2,ADABAS,VSAM 等开放系统的关系数据库:Informix,Oracle,Sybase,DB2,Microsoft SQL Server等ERP 系统:SAP/R3,PeopleSoft系统等,普通文件和复杂文件系统,FTP 文件系统,XML等IIS,Netscape,Apache等Web服务器系统Outlook等Email系统。
DataStage 可以从多个不同的业务系统中,从多个平台的数据源中抽取数据,完成转换和清洗,装载到各种系统里面。
其中每步都可以在图形化工具里完成,同样可以灵活的被外部系统调度,提供专门的设计工具来设计转换规则和清洗规则等,实现了增量抽取、任务调度等多种复杂而实用的功能。
其中简单的数据转换可以通过在界面上拖拉操作和调用一些DataStage 预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现,并且DataStage 提供调试环境,可以极大提高开发和调试抽取、转换程序的效率。
DATASTAGE的介绍及基本操作
DATASTAGE的介绍及基本操作DataStage的基本操作包括设计和开发数据集成任务、管理数据集成任务的执行、监控任务的运行状态和性能等。
下面将分别介绍DataStage 的设计和开发、任务管理和监控等方面的基本操作。
1.设计和开发数据集成任务:- 创建项目:在DataStage中创建一个新的项目,并指定项目的名称和存储位置。
-创建作业流:在项目中创建一个新的作业流,并指定作业流的名称和描述。
-添加源和目标:将源数据和目标数据的连接器添加到作业流中,并配置其连接属性。
-设计转换:使用图形化工具将数据转换逻辑以节点的方式添加到作业流中。
可以使用预定义的转换函数、过滤器和聚合函数,并自定义转换规则。
-配置作业参数:为作业流设置参数,例如源数据的路径、目标数据的路径等。
-配置作业调度:定义作业流的调度规则,例如每日、每周或每月执行一次。
2.任务管理:- 启动任务:在DataStage的用户界面中选择要执行的作业流,并单击启动按钮来启动任务。
-监控任务状态:查看任务的运行状态,例如正在运行、已完成或已失败。
-管理调度:可以根据需要修改任务的调度规则,例如修改任务的执行时间或频率。
-管理依赖关系:设置任务之间的依赖关系,例如一个任务的输出作为另一个任务的输入,确保任务按照正确的顺序执行。
3.监控任务:- 实时监控:在DataStage的用户界面中查看任务的实时执行情况,包括输入/输出数据的数量、处理速度、错误记录等。
-查看日志:查看任务执行的详细日志,包括每个节点的执行情况、输入/输出数据的详细信息、转换规则的执行结果等。
-分析性能:分析任务的性能指标,例如任务的执行时间、内存使用情况、CPU利用率等,以优化任务的运行效率。
DataStage还提供了其他高级功能,例如数据质量检查、数据变化捕获和增量加载等。
此外,DataStage与其他数据集成工具和平台的集成也是可能的,例如与大数据处理框架Hadoop、数据仓库工具Teradata等的集成。
DataStage V7.5 学习总结讲解学习
一、DataStage简介Websphere DataStage 是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集市或数据中心(数据仓库)目标数据库的集成工具。
DataStage能够处理多种数据源的数据,包括主机系统上的大型数据库、开放系统上的关系型数据库和普通的文件系统等。
常见的主要数据源有:大型主机系统的数据库:IMS、DB2、ADABAS、VSAM等。
开发系统的关系型数据库:Informix、Oracle、Sybase、DB2、Microsoft SQL Server等。
ERP系统:SAP/R3、PeopleSoft等。
普通文件和复杂文件系统,FTP文件系统,XML等。
IIS、Netscape、Apache等Web服务器系统。
Outlook等Email系统。
DataStage 可以从多个不同的业务系统中,从多个平台的数据源中抽取数据,完成转换和清洗,装载到各种系统里面。
其中每步都可以在图形化工具里完成,同样可以灵活的被外部系统调度,提供专门的设计工具来设计转换规则和清洗规则等,实现了增量抽取、任务调度等多种复杂而实用的功能。
其中简单的数据转换可以通过在界面上拖拉操作和调用一些 DataStage 预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现,并且 DataStage 提供调试环境,可以极大提高开发和调试抽取、转换程序的效率。
二、DataStage工作原理DataStage XEDataStage的设计是基于数据流的概念。
一个完整的数据流图(DataStage作业),从一个永久存储的数据源开始,并且执行一系列的增值转换和其他处理操作,最后加载数据到一个永久的存储。
数据集(Data Set)就是对通过数据流程的记录的收集。
一个数据集可以是屋里放置在磁盘上,也可以是虚拟放置在内存中。
数据在数据流中的Stage中移动使用的是虚拟的数据集,这样可以大大提高性能;分区(在后面介绍)是在Stage的属性中设置的。
DataStage Stage使用
Funnel阶段Funnel阶段是一个处理阶段。
它将多个输入数据集复制到单个数据集,该操作对于将单独数据集合并到单个大型数据集而言非常有用。
该阶段可以有众多输入链接和一个输出链接Funnel阶段能够以下列三种方式之一运行:1、连续传送以不可保证顺序合并输入数据的记录。
它依次从每个输入链接获取一条记录。
如果输入链接上的数据不可用,那么该阶段会跳至下一个链接,而不是等待。
2、排序传送按照一个或多个键列的值定义的顺序合并输入记录,输出记录的顺序由这绡排序键确定。
3、顺序将第一个输入数据集中的所有记录复制到输出数据集,然后将第二个输入数据集中的所有记录复制到输出数据集,依此类推。
对于所有方法,所有数据数据集的元数据都必须椒相同的。
排序传送方法对于其输入数据有一些特定要求。
所有输入数据集都必须根据Funnel操作的键列进行排序。
通常,排序传送操作的所有输入数据集在排序之前都是散列分区的(选择自动分区方法将确保完成这一操作).散列分区可确保具有相同键列值的所有记录都位于同一分区中,以便在同一个节点上处理。
如果在Funnel阶段之前在单独的阶段上执行排序和分区,那么必须保留该分区排序传送操作允许您设置一个主键和多个辅键以确定将输出的记录的顺序。
Funnel阶段:快速路径InfoSphere DataStage有许多缺省设置,这表示您能够载作业中轻松包含Funnel阶段。
本部分指定了要使Funnel阶段运行所需的最少步骤。
InfoSphere DataStage提供了多样化的用户界面,且提供了许多快捷方式供您达到特定目标,本部分描述了基本方法。
要使用Funnel阶段:1、在“阶段”页面的属性选项卡中,指定“传送类型”。
“连续传送”为缺省值,但也可以选择“顺序”或“排序传送”。
如果选择使用“排序传送”方法,则还需要指定对数据进行排序所依据的键。
可以重复使用键属性来指定组合键。
2、如果使用“顺序”方法,请在“阶段”页面的“链接排序”选项卡中,指定合并数据集的顺序。
DataStage 工作笔记
1.安装与配置参考文档:《Planning, Installation, and Configuration Guide.pdf》1.1服务端与客户端的安装1.1.1安装拓扑采用简单的两层部署进行安装,安装拓扑如下图所示:Host1环境如下:(1)硬件环境CPU:Inetel Core Duo P8600内存:4GB(2)软件环境操作系统:Windows Server 2003 EE SP2C++编译器:Microsoft Visual Studio .NET 2008 Express Edition C++1.1.2安装参考文档:《Planning, Installation, and Configuration Guide.pdf》[pages 198-200]1.1.3C++编译器配置参考链接:/infocenter/iisinfsv/v8r5/index.jsp?topic=/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsis inst_set_envars_cpp.html(1)支持的C++编译器,见如下链接的系统要求说明:/support/docview.wss?rs=14&uid=swg270163821.1.4登陆与安装语言选择登陆(会话)语言选择中文,DataStage安装语言选择英文,结果Designer里同时有中文和英文,而DB2和WAS都是中文版,如何安装纯英文版的?解决方法1:登陆语言选择和安装语言全部选择英文即可安装上纯英文版。
解决方法2:通过控制面板->区域和语言选项,将语言设置为英语,安装完成后将语言再修改为中文即可。
1.1.5新建用户与凭证(Credentials)参考文档:《Day 1 Exercise-DS.doc》[Exercise 1: Administration Console] (1)通过Web浏览器登陆Web Console for IBM Information Server,地址如下(localhost为server端主机名):http://localhost:9080/ibm/iis/console/loginForm.jsp?displayForm=true (2)新建两个用户dsadmin和dsuser,如下图:权限设置如下:dsadmin:Suite User、DataStage and QualityStage Administrator/User dsadmin:Suite User、DataStage and QualityStage Userdsadmin 可以正常使用,但dsuser 只能登陆 Administrator,登陆Designer和Director会报错:The current user does not have the required DataStage roles set up. 为什么?解决方法1:直接给dsuser同时授予Suite User、DataStage and QualityStage Administrator/User权限。
DataStage_Designer学习记录
数据库:IP:132.33.2.2Sid:cntest用户名/密码:ctetl/ctetl123DataStage Designer学习记录(数据集成)1、准备工作(1)、软件安装(2)、配置DataStage Administrator登陆DataStage Designer :132.33.2.2 / dsadm / dsadm / data_portal_test 2、DataStage Designer导入表定义(1)、在数据库中创建表(2)、在DataStage Designer的存储中右键单击Table Definitions然后选择Import > Plug-in Meta Data Definitions。
如图:选中oraoci9,点击OK(3)、输入数据库、用户名和密码,点击next(4)、出现如下图所示在Owner list下拉列表中选中表所在的数据库用户在table前打上“√”,点击next(5)、表结构导入从Select T able(s)中选中要导入的表名单击Import完成表结构导入导入之后可在T able Definitions -Plugln -Oraoci9 查看导入表3、创建文件导入数据库parallel job例子(1)、新建 parallel jobNew -parallel job(2)、拖拽组件、连线在组件库中拖拽File中的Sequential_File(文件组件)组件在组件库中拖拽Processing中的Transformer(转换,字段名,数值转换)组件在组件库中拖拽Database中的Oracle_Enterprise(表、sql语句)组件右键从Sequential_File组件连接到Transformer,在右键从Transformer连接到Oracle_Enterprise(3)、配置parallel job的属性单击edit(编辑) -Job Properties(设置)在General项上添写Category(所属作业的层次)在Parameters项中添写参数参数说明如下:说明:前三项为必须配置的内容,#db_user_name db_user_name String (用户名)db_pass_word db_pass_word String (密码)db_server db_server String (数据库名)(这两项为数据库内部操作参数)Date Date String (时间)Region Region String (地市)(这一项为文件导入数据库参数)file_name file_name String (文件名)(4)、配置文件组件属性双击Sequential_File组件在Output -Properties里输入#file_name# (这里是表示文件是动态的参数)在Output -Format里输入如下值(有三个)Final delimiter = end 表示每行的结尾用“回车”来结束Delimiter = | 表示每个字段用“|”标识(指标上传接口规范里说明)Null field value = '' 表示对于空值的字段输入空在Output -Columns里输入字段对应名字和属性至此文件组件的配置完毕Nullabe :Yes 表示允许为空No 表示不能为空Description :备注字段,不用添写Key 如果打上“√”表示当程序自动拼写sql的时候作为关联的字段(5)、配置Oracle_Enterprise组件属性双击Oracle_Enterprise组件在Input -Properties 里输入参数T able = table_name table_name 为数据库里的表名Write Method = load 此项为下拉选择项。
DataStage优化培训笔记.doc
DataStage优化培训笔记Sequential file1、注意reject mode的设置2、优化:(在文件定长的前提下)number of readers per node 设定单节点的多个读取,根据实际情况设置多读个数read from multiple nodes 设定多节点的数据读取Change Capture Stage比较数据后会进行排序,如果之前的数据已经做了排序,则需要改变排序属性。
注意before 和after 的设置,不要设反。
Copy Stage在内存中操作的组件,建议1进多出用copy组件Tansformer Stage是内嵌的程序,一旦作业执行到此stage 程序会暂停进程,外部调用so的程序,Transformer组件中包含的函数,可以自己编写函数进行嵌入(通过routine实现)filter不能用于复杂的判断,copy不能增加赋默认值的字段..Sort Stage尽量不用,属于滞留组件,要等数据齐全后再能进行sort操作LookUp和Join的区别需要注意join一定要进行排序再进行处理(效率较低),LookUp是流水线实现(超过800M不能用此stage)Data Set StageStage自动设置数据为定长,实现多值读取,可以通过drop on input来限制输入数据。
生产环境优化:关注CPU(并发路数,逻辑节点数,物理作业数),内存,I/O交互1、在Oracle Enterprise 中使用select语句时,提取尽量少的字段数据2、在使用LookUp Stage时,如果数据从Oralce出来的,在LookUp table(参照表中)可以设置Lookup type=sparse(此方式是数据不提取到内存,直接在表中进行操作)3、在Oracle Enterprise中设置Partition table="需要查询的表名"可以实现多进程读取数据4、在文件系统中,为平衡节点负载,建议数据的输入和输出放在不同的磁盘上(可通过节点进行设置,如Sequential_File中设置FILE的路径)5、尽量少用repartition(sort stage 、join stage等组件需要对数据进行repartition)6、要保证有足够的scratch空间,当此空间满了之后,系统会把数据转移到tmp空间,效率变低7、网络瓶颈会影响作业效率(局域网通讯,Node之间的通讯问题)8、在MAIN机器上,设置是否关闭jobmonitor进程(pools"" 为默认节点,需要进行节点运行,如果对””进行赋值,则不作为默认节点,不做运行。
datastage总结
1 Satge分为被动Stage和主动Stage===被动Stage,是用来读写数据源的数据的,包括Odbc Connector、Oracle Connector、Sequential File等。
===主动Satage,是用来筛选和转换部分的Stage,包括Transformer、Aggregator、Sort等21>Sequential_File适用于一般顺序文件(定长或不定长),可识别文本文件或IBM大机ebcdic文件。
2>Annotation一般用于注释,可利用其背景颜色在job中分颜色区别不同功能块。
3>Copy StageCopy Stage可以有一个输入,多个输出,它可以在输出时改变字段的顺序,但不能改变字段类型。
4>Filter StageFilter Stage只有一个输入,可以有多个输出。
根据不同的筛选条件,可以将数据输出到不同的output link5>Funnel Stage将多个字段相同的数据文件合并为一个单独的文件输出。
6>Transformer Stage一个功能强大的stage,有一个input link,多个output link,可以将字段进行转换,也可以通过条件来指定数据输出到哪个output link.注意:Transformer Stage功能强大,但在运行过程中是以牺牲速度为代价的。
在只有简单的变换,拷贝等操作时,最好用Modify Stage,Copy Stage,Filter Stage等来替换Transformer Stage。
transformer可以实现很多功能的,cope只是其中一部分。
DaTaStage入门学习心得
DaTaStage入门学习心得第一篇:DaTaStage入门学习心得DataStage入门学习心得DataStage是一个ETL的工具,就是对数据的抽取,转换,加载。
个人通俗的理解就是一个对数据进行处理,提取的工具,这里面的数据大部分是以数据库中表的格式存在着的,所以如果要使用这个工具,首先必须对关系数据库的一些基本概念要有所了解,比如最基本的字段,键,记录等概念。
DataStage是通过设计job来实现ETL的功能的。
Job的设计跟普通的IDE设计一样,通过拖拽控件,并填加脚本来完成。
这里的控件称为stage,每一个不同的stage都有不同的数据处理的功能,将各个stage通过一定的方式组合起来,设计成job,对job进行编译,运行,就能够实现对数据抽取转换加载。
因此,要设计job的关键,就在于能够熟悉每个不同的stage并且能够灵活运用。
在文档和指导中有对每个控件的使用方法作了图文并茂的说明,但是教材语言的一个缺点就是太过形式化,所以有些概念不能够很好的理解。
比如lookup这个stage我在看教材的时候就没有太了解。
所以,我就结合自己,用自己的语言对一些比较常用的stage说一下自己的理解和一些需要注意的地方。
在这么多的控件当中,实际上平时要用到的只有为数不多的几个:Sequential File Stage:这个控件实际上是指代主机上面的一个文件,在它的属性中可以选定文件的路径,目录。
一般这些文件都是以类似数据库表的格式存在的。
使用这个控件关键的地方在于要设置好它的格式,包括column和format这两个标签。
Column指的是文件当中的列定义,一般可以通过load列定义文件来确定。
Format指的是文件当中的一些分隔符,日期格式等等,在实际文件当中字段和字段之间可以用逗号,竖线,等符号隔开,每个字段本身也可以选择是否要用引号来引起来。
所有这些,stage要设置成和文件一致,否则这个stage就无法真实的指代主机上面的文件。
datastage介绍(中文)讲述
mis项目组
2004年6月
什么是DATASTAGE Nhomakorabea
DataStage是一个能够简单快捷进行数据仓库和数据集市创建和 维护的强有力的工具。它为您提供了创建,管理数据仓库所必须 的工具,并且您还可以对这些工具加以扩展。借助于DataStage, 你可以快速建立数据仓库解决方案并且提供给用户所需要的数据 和报告。 使用DataStage您可以做到 : 为您的数据仓库和数据集市设计对于数据进行抽取,整合,聚集, 装载,转换的相关作业; 创建和重用原数据和作业组件; . 执行,监控和定时运行作业; 管理开发和生产环境。
DataStage的特点
图形化操作,简单易学; 参数化作业设计,利于数据从不同地点的同构数据库 整合到一个目标数据中; 作业调试,跟踪功能比较强; 作业运行的监控和定时,检查; 作业导出导入方便; 多数据库支持; 提供可扩展接口,可编程实现扩展功能;
DataStage SERVER CLIENT
DataStage Designer
DataStage Director
DataStage Manager
DataStage Administrator
DataStage的功能
使用Administrator 定义project的属性; 使用Manager进行元数据管理; 使用Designer : . 定义数据抽取规则; . 定义数据流; . 进行数据整合; . 进行数据转换; . 加入相关的约束条件; . 装载数据到目标; . 进行数据聚合; 使用Designer进行作业开发和调试; 使用Director执行作业,并且进行监控;
datastage经验总结
目录1 如何重新启动DataStage服务器,步骤如下: (4)2 DataStage开发经验积累: (4)2。
1模板开发 (4)2。
2通过S ERVER S HARED C ONTAINER在P ARALLEL J OB中添加S ERVER J OB S TAGE (4)2.3去除不需要的字段 (4)2.4T RANSFORMER S TAGE的使用 (4)2.5L OOK UP/JOIN 空值处理 (5)2.6D ATA S TAGE中默认和隐式类型转换时注意的问题 (5)2.7配置一个INPUT或OUTPUT,就VIEW DATA一下,不要等到RUN时再回头找ERROR (5)2.8D ATA型数据是比较麻烦的 (5)2.9行列互换之H ORIZONTAL P IVOT(P IVOT S TAGE) (6)2。
10行列互换之V ERTICAL P IVOT (6)2.11O RACLE EE S TAGE在VIEW数据时出现的错误及解决方法 (8)2.12D ATA S TAGE SAP S TAGE的使用 (9)2。
13C OLUM I MPORT S TAGE的使用 (9)2。
14C OLUM E XPORT S TAGE的使用 (9)2。
15G OT ERROR:C ANNOT FIND ANY PROCESS NUMBER FOR STAGES IN J OB J OBNAME解决 (9)2.16U NABLE TO CREATE RT_CONFIG NNN (10)2。
17查看JOB和CLIENT的对应的后台进程 (10)2。
18强制杀死DS进程 (10)2。
19查看S ERVER E NGINE的进程 (10)2.20查看S ERVER L OCKS (10)2.21关于UNIX系统下无法启动服务的解决办法 (11)2。
22L OCKED BY OTHER USER (12)2。
DataStage使用说明
目录1.安装 (2)2.DataStage Administrator (3)2.1对Project的管理 (3)2.2修改DataStage Server的License (5)3.DataStage Designer篇Job的定义 (5)3.1登录 (5)3.2建立Job (6)3.3界面说明 (6)3.4 ETL过程定义 (7)3.4.1数据库到数据库 (7)3.4.2 Job的调试 (17)3.4.3文件到数据库 (19)3.4.4远程数据抽取 (20)3.4.5多进程联合运行(Job Sequencer) (23)3.4.6数据聚合的处理 (25)3.4.7自定义程序 (27)4.DataStage Director篇Job的运行 (31)4.1登录 (31)4.2运行Job (31)4.3 Job的运行时间定义 (31)4.4日志的查看 (33)1.安装DataStage Server端的安装,如果在Windows操作系统上安装,需要NTFS格式的分区。
安装完毕将启动DataStage Engine Resource Service,DataStage Telnet Service两个服务。
DataStage Client在安装的过程中,会提示建立一个Project,建立了Project之后,Client就可以连接到此Project,当然也可用选择其他Server端的Project。
安装完毕,将产生4个各司其职的模块:DataStage Administrator,DataStage Director,DataStage Designer,DataStage Manager。
DataStage Adminstrator是对DataStage Server的一些参数、Project进行管理的模块。
DataStage Designer是一个界面性的设计平台,实现在创建执行数据集成任务“Job”的同时,对数据流和转换过程创建一个可视化的演示。
DataStage学习笔记
一、基础知识1.DataStageDesigner在Designer中可以创建、编辑JOB,可以查看单个JOB的执行状态及最近的执行日志。
2.DataStageDirector在Director中可以以列表方式查看所有JOB的当前状态,查看job详细日志,对job 进行定时。
3.Parallel JobParallel Job(红色图标)是DataStage中基础的JOB,其中包含的处理动作称为一个Stage,最常见的Stage包括基本的数据抽取、执行存储过程、执行导出等动作。
4.Sequence JobSequence Job(绿色图标)中可以包含Parallel Job和其他的Sequence Job,可以通过拖拽的方式添加所需要的JOB,指定各个JOB的执行顺序后成为JOB执行的“串”5.StageStage可以理解为一个动作,从StageTypes目录中可以查看所有的类型6.目录创建的Job同一放在Jobs目录下,此目录下可以根据实际的需求再创建子目录7.表结构如果某个JOB中需要导入表结构,有两种方法,直接编辑和从数据库中LOAD。
为了方便管理,以LOAD方式导入的表结构放在Table Definitinons目录下,根据实际需求创建子目录保存导入表结构IMPORT->TABLE DEFINITIONS->START CONNECTOR IMPORT WIZARD->选择数据库连接类型为ORACLE 11->选择连接的数据库,输入用户名,密码(弹出提示时选择OK)->选择主机名和数据库实例->选择SCHEMA,在NAME FILTER处填写表名(大写字母)->在列表中选择需要导入的表,下方选择PRIMARY KEY,FOREIGIN KEY(不选择indice)->确认信息后点击import->选择存放导入的表结构目录,完成导入二、创建Parallel Job1.创建抽取数据的Parallel Job1)右键点击需要JOB中的目录,选择NEW->Parallel Job,此时右侧编辑窗口中出现新的Parallel Job窗口(左上角有Parallel字样)2)点击工具栏中的JOB PROPERTYS,选择parameter,add_parameter set,增加一个参数集,job中就可以使用此参数集中已经定义的参数3)拖拽ORACLE_ENTIPRISE STAGE类型的STAGE到窗口中(Stage Types->Parallel->Database->Oracle Enterprise)4)拖拽ORACLE_CONNECTOR类型的STAGE到窗口中5)(Stage Types->Parallel->Database->Oracle Connector)6)右键点击ORACLE_ENTIPRISE STAGE,并移动鼠标到ORACLE_CONNECTOR上,两者之间出现一条箭头,代表处理的先后顺序7)重命名两个STAGE8)双击ORACLE_ENTIPRISE STAGE类型的STAGE,编辑OUTPUT参数●SOURCEREAD METHOD=TABLETABLE=需要抽数的表名如果需要WHERE条件则在右下方选择“WHERE CLAUSE”●ConnectionDB OPTION MODE=AUTO-GENERATE点击PASSWORD,点击右侧的黑色右三角,选择一个参数同样操作选择USER、REMOTE SERVER9)选择ORACLE_CONNECTOR类型的STAGE●编辑选项卡propertiesconnection段中需要选择server,username,passwordusage段中选择数据插入目标表的类型write mode为insert输入table nameTable action为插入前的动作truncate(先清除再INSERT),append(追加)●编辑选项卡Columns选择右下角LOAD,选择一个已经导入的表结构,出现表结构字段时取消勾选”ENSURE ALL CHAR COLUMNS USE UNICODE”选择ok,将表结构导入10)保存job,点击保存按钮后选择一个目录(目录需要是提前建好的),输入job名称后保存11)编译job点击F7或者蓝色魔方图样的按钮编译job,编译时Datastage会检查job是否有错误,如果有错误将无法编译成功并出现错误提示12)执行JOB点击绿色的三角形执行job2.创建调存储过程的Parallel Job1)添加一个StoredProcedure类型的Stage(Stage Types->Parallel->Database->StoredProcedure)修改参数●General选项卡设置数据库,用户名,密码●Syntax选项卡输入存储过程名●Parameters选项卡选择参数2)添加一个PEEK类型的STAGE3)添加link,存储过程指向peek4)编译三、创建Sequence Job(串)1、创建空的Sequence Job2、拖拽已经建到的parallel job或者是Sequence Job到编辑窗口,点击右键并拖拽设置先后顺序后保存,编译即可四、定时在Director中使用Scheudle功能五、其他注意事项1、修改参数集之后,所有用到该参数集的job都需要重新编译,否则无法引用修改后的参数2、修改job后需要编译,保证修改内容的正确性3、当某个job执行错误时,会变成ABORT状态,此时当前正在执行的串中后续的job仍额可以正常执行并且执行完整个串时,串的状态为finish,但是当下一次调这个串时,执行到状态为abort的job时整个串就会报abort错误,此时整个串的状态为abort,这时整个串也无法再被调4、当调度中出现错误(abort)时,除了处理这个错误的job外,还需要检查整个串中是否还有其他受影响abort的串,只有当job的状态是finish或者是compile时,才能正常执行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.安装与配置参考文档:《Planning, Installation, and Configuration Guide.pdf》1.1服务端与客户端的安装1.1.1安装拓扑采用简单的两层部署进行安装,安装拓扑如下图所示:Host1环境如下:(1)硬件环境CPU:Inetel Core Duo P8600内存:4GB(2)软件环境操作系统:Windows Server 2003 EE SP2C++编译器:Microsoft Visual Studio .NET 2008 Express Edition C++1.1.2安装参考文档:《Planning, Installation, and Configuration Guide.pdf》[pages 198-200]1.1.3C++编译器配置参考链接:/infocenter/iisinfsv/v8r5/index.jsp?topic=/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsis inst_set_envars_cpp.html(1)支持的C++编译器,见如下链接的系统要求说明:/support/docview.wss?rs=14&uid=swg270163821.1.4登陆与安装语言选择登陆(会话)语言选择中文,DataStage安装语言选择英文,结果Designer里同时有中文和英文,而DB2和WAS都是中文版,如何安装纯英文版的?解决方法1:登陆语言选择和安装语言全部选择英文即可安装上纯英文版。
解决方法2:通过控制面板->区域和语言选项,将语言设置为英语,安装完成后将语言再修改为中文即可。
1.1.5新建用户与凭证(Credentials)参考文档:《Day 1 Exercise-DS.doc》[Exercise 1: Administration Console] (1)通过Web浏览器登陆Web Console for IBM Information Server,地址如下(localhost为server端主机名):http://localhost:9080/ibm/iis/console/loginForm.jsp?displayForm=true (2)新建两个用户dsadmin和dsuser,如下图:权限设置如下:dsadmin:Suite User、DataStage and QualityStage Administrator/User dsadmin:Suite User、DataStage and QualityStage Userdsadmin 可以正常使用,但dsuser 只能登陆 Administrator,登陆Designer和Director会报错:The current user does not have the required DataStage roles set up. 为什么?解决方法1:直接给dsuser同时授予Suite User、DataStage and QualityStage Administrator/User权限。
解决方法2:以dsadmin登陆Administrator中,在Properties->Permissions中将dsuser 新增进来,并将其 User Role 设置为 Developer 即可。
1.1.6使用客户端连接服务端在host文件(C:\WINDOWS\system32\drivers\etc下)里新增服务端主机的IP 地址和主机名:hostip hostname如:10.66.0.41 jactop1.2环境变量(Environment Variable)与作业参数(Job Parameter)1.2.1如何设置环境变量参考文档:《DS SE - DS Overview.ppt》 [pages 21-25]1.2.2参数及参数集(Parameter Set)(1)创建参数集(Parameter Set)New->Other-> Parameter Set(2)可以引用环境变量。
(3)参数集可以导入导出,而且参数集中参数值更新后,相应的Job中引用值会自动更新。
1.2.3Parallel Job中如何使用 Project 的 Environment Variable(1)在 Project Properties 中设定 Environment Variables;(2)在 Job Properties 的 Parameters 选项卡中 Add Environment Variable即可。
也可以先新建Parameter Set,在Parameter Set定义中引用Environment Variable,然后Job引用Parameter Set。
注意:当在Project中修改了Environment Variable的类型/默认值,引用该Environment Variable的参数(集)中的相应参数的类型/默认值不会随之改变,只能重新引用该Environment Variable。
1.2.4Tips and Problems(1)User Defined 类型只能是 String 和 Encrypted(用于存储密码等保密信息)。
(2)APT_DUMP_SCORE环境变量,可以在Project或Job属性里设置,不一致时,以Job里的设置为准。
(3)如何在使用当前日期、当前时间等变量值,便于其他Parallel Job执行时调用?解决方法:调用DS Macro或者使用Transformer中的Date&Time FunctionsDS Macro Name Description Note DSHostName 引擎主机名DSJobControllerDSJobInvocationIdDSJobName 作业名DSJobStartDate 作业开始日期,即当前日期格式:YYYY-MM-DDDSJobStartTime 作业开始时间,即当前时间格式:HH:MM:SS24HDSJobStartTimestamp 作业开始时间戳,即当前时间戳格式:YYYY-MM-DDHH:MM:SSDSJobWaveNoDSProjectName 工程名(4)全局参数尽量使用Parameter Set来实现,因为Parameter Set支持导入导出。
2.Parallel Processing2.1Partitioning & Collecting Data参考文档:《DS SE - DS Course.ppt》 [pages 77-89]数据分区(分发)/收集类型2.1.1Round Robin以逐条循环分配的形式将所有数据平均分发给每个node,每个node只得到部分数据。
保证每个节点处理数量相当的数据,从而使得每个节点负载均衡。
2.1.2Hash通过Hash算法,将指定Key(s)的Hash值相同的数据分发到同一个node上,这样就可以保证可以多个node同时执行如 Join这样的操作时可以保证数据正确。
注意:Aggregator/Join Stage 的分区类型最好手动选择为 Hash。
2.1.3Entire以复制的形式使得每个node得到完整的数据。
2.1.4Tips and Problems(1)需要Key的分区方法:Hash/Range/Modulus(2)收集数据时的Sort Merge,前提是各个分区数据已经排序。
2.2Configuration Files参考文档:《DS SE - DS Course.ppt》 [pages 17-19, 32-40]本机采用安装默认设置,2个节点,如下图:注:通常情况下,node数:CPU数 <= 2:13.RCP(Runtime Column Propagation)3.1什么是 RCP(1)允许开发者忽略源数据和目标数据映射的有力特性。
(2)在运行时 (并非设计时),RCP会自动将源数据所有字段自动映射到目标数据。
(3)比如:需要从数据库表中读200个字段,而数据处理业务逻辑只需要用到其中的2个字段,那么在Job设计的过程中,只需要映射这2个字段,剩余的字段将由RCP来处理。
3.2如何使用RCP(1)设置Project属性登陆Administrator Client,编辑Project Properties,勾选上如下图红色边框标注的复选框,点击“OK”确定即可。
Enable Runtime Column Propagation for new links 有何作用?(2)在Parallel Job 设计中设置在数据源Stage Properties->Output->Columns定义的左下角勾选上 Runtime Column Propagation 复选框,如果不需要使用RCP,则取消勾选即可。
如下图(以 Oracle Enterprise Stage 为例):4.Import & Export4.1Job Design如何将Job Design 文件(.dsx)导入到操作系统语言不同的Server上:使用文本编辑器打开 .dsx 文件,将文件第二行CharacterSet的值修改为目标Server的字符集名称即可。
如:从操作系统语言为英文的 Server 上的 Job 导出后,其CharacterSet值如下图如果要导入到操作系统语言为简体中文的 Server 上,将CharacterSet值修改为“CP936”即可,即4.2Table Definition(1)Import -> Table Definitions -> Plug-in Meta Data Definitions可批量导入所选Schema下多个表的定义。
(2)Oracle 数据类型 Number(6),导入到Table Definition中为 Decimal(6) ,但是Load到Columns定义中会转换为Integer。
5.Processing Stage5.1Copy Stage5.1.1Tips and Problems(1)一个 Job 中要两次用到同一张大表是否可以使用Copy Stage,对性能影响不大,只是消耗内存。
(2)当在一个Job中一个数据流可能需要复制分流时,使用Copy Stage,即使暂时不用也可以先加上一个Copy Stage,便于后续开发。
(3)可以没有输出,作为断点(相当于Peek Stage)。