datastage server job开发Manual3
DataStage作业开发规范-V2.3
del-删除文件。
如果存在跨系统的生成的目标文件,源系统名填写输入主表对应的系统
Hash file
HASH_业务系统_原表表名_属性。
注:在此次项目中不会出现
Sort
SRT_description
数据排序
Transformer
TRF_description
数据转换
由于需要根据输入、输出文件的stage的名称进行数据平衡跟踪以及,故输入输出文件的stage命名必须严格按照上述的规范。
单主要输入输出,如下图:
多主要输入输出如下图:
2.
作业的头上须表明作业加工的档名,下方须表明作业加工逻辑,
所有的属性中须注名作业的作者,及设计思路。
对设计的流程做适当的说明以便让人更易理解,如上图。
3.
注意事项:
Stage的命名全部使用英文,参数注释也必须使用英文。
Job中使用Annotationstage来做模块说明可以使用中文注释。
()
FTP,其中direction为ftp的方向,get为下传,put为上传,为生成的文件名
Merge
MRG_description
数据合并
ODBC data access
ODB_tablename
ODBC数据表,其中tablename为表名
Oracle OCI
ORA_tablename
Oracle数据表,其中tablename为表名
3.个人目录
在Jobs下,建立目录test,test中为每个人创建一个私人用来做调试的目录。
3.4
3.4.1
此种job的命名是针对一项任务拆分成为了多个job的命名方式
格式:
逻辑模型阶段:Systemname_targetsystemname_tablename_jobtype_lgc
DataStage BASIC 语言开发实践
本文着重介绍了如何使用 DataStage BASIC 语言开发一个用户自定义的功能函数,并且以一个完整的 Server Job 实例为读者讲解在 Transformer Stage 中如何使用内置的和自定义的函数来转化数据。
文章的最后介绍了如何重用自定义的功能函数。
读者定位为具有一定 DataStage 使用经验的开发人员。
DataStage 概述IBM WebSphere DataStage是一个图形化的进行数据整合的开发环境,可以用来实现数据抽取,转化,净化,加载到目标数据库或者数据仓库中, 即ETL过程(Extract, Transform, Cleansing, Load)。
DataStage使用Stage实现对数据的操作。
在整个操作数据的过程中,需要创建从不同的数据源抽取数据的Stage,以及用来转化和净化数据的Stage,还需要一些Stage将数据加载到目标数据库中,一个ETL job就是一些被连线连接在一起的Stages,数据则是从一个Stage 流向下一个Stage。
关于DataStage的基本使用方法,读者可以参考发表在developWorks中国网站上的《用 IBM WebSphere DataStage 进行数据整合》系列文章。
回页首Transformer Stage 介绍在数据整合的整个过程中,很重要的一步就是对抽取数据的格式或者内容进行必要的转化。
用户可以在Transformer Stage中,对传入的数据进行任何必要的处理,再把处理好的数据传给下一个Stage。
图1就是一个正在被编辑的Transformer Stage,窗口的上半部分显示了输入与输出的字段之间的对应关系,其中DSLink13是输入的连线名称,DSLink4是输出的连线名称。
而窗口下半部分详细说明了每一个输入或者输出字段的定义。
图1.一个Transformer Stage的实例如果仅仅是把输入与输出的字段对应起来,那并不能体现出Transformer Stage 的作用。
DataStage安装手册
3.ETL环境部署3.1 安装DataStage3.1.1 Server安装3.1.1.1 创建用户及组AIX运行smit命令,启动管理界面在安装机器上创建dstage组, ADMINISTRATIVE USER 选项为true,创建用户dsadm,主属为dstage ,ADMINISTRATIVE USER 选项为true;Primary GROUP,Group SET,ADMINISTRATIVE GROUPS:均为dstageHP Unix运行sam命令,启动管理界面在安装机器上创建dstage组创建用户dsadm,主属为dstage组3.1.1.3 系统参数设置1)检查Server端paging space的空间,对于CPU数量少于20个的机器,最好整个Paging Space为500M×CPU数,如机器配置了8个CPU,则推荐至少需要配置4GB的Paging Space空间。
2)检查核心参数,不符合要求则针对操作系统进行如下调整(AIX使用smit,HPUnix使用sam):3)运行lsattr -E -l sys0 | grep maxuproc,检查参数Maximum number of PROCESSESallowed per user,设置Datastage允许运行的最大进程数,推荐设置到较大的值,如:8192。
4)运行lsuser –f dsadm,检查如下参数:fsize,data,stack,rss。
推荐将这些参数设置为unlimit3.1.1.4 Server安装步骤确保以超级用户root进入系统(非常重要)如果是硬盘包,则执行命令:gunzip 2105-ds-75a-aix.tar.Z进入解压目录Tar xvf 2105-ds-75a-aix.tar进入/解压环境/Ascential.media/aix目录如果是光盘包,则执行命令:Mount /cdrom进入/cdrom目录1)AIX操作系统执行/Ascential.media/install.sh –admin dsadm.2);HP Unix执行./INSTALL.SH\;1。
datastage使用说明
用DataStage进行数据整合DataStage 的开发环境是基于C/S 模式的,通过DataStage Client 连接到DataStage Server 上进行开发。
这里有一点需要注意,DataStage Client 只能安装在Windows 平台上面。
而DataStage Server 则支持多种平台,比如Windows、Redhat Linux、AIX、HP-UNIX。
DataStage Client 有四种客户端工具。
分别是DataStage Administrator、DataStage Designer、DataStage Manager、DataStage Director。
接下来首先介绍这几种客户端工具在DataStage 架构中所处的位置以及它们如何协同工作来开发ETL Job 的,接着再分别详细介绍每个工具的功能。
图1 描述了IBM WebSphere DataStage 的整个系统架构。
DataStage 的客户端工具连接到DataStage Server 上进行ETL Job 的开发,DataStage Server 再与后台的数据库连接起来进行数据处理。
DataStage 的客户端工具之间的是一个相互合作的关系。
下面通过介绍ETL Job的开发过程来介绍他们之间的这种关系。
ETL Job开发流程1.用DataStage Administrator 新建一个项目;2.用DataStage Designer 连接到这个新建的项目上进行ETL Job的设计;3.用DataStage Director 对设计好的ETL Job设置运行的模式,比如多长时间运行一次ETL Job;4.用DataStage Manager 进行ETL Job的备份等。
图1:IBM WebSphere DataStage 架构图DataStage AdministratorDataStage Administrator 的主要功能有以下几个:1.设置客户端和服务器连接的最大时间。
datastage入门教程
简介DataStage 使用了Client-Server 架构,服务器端存储所有的项目和元数据,客户端DataStage Designer 为整个ETL 过程提供了一个图形化的开发环境,用所见即所得的方式设计数据的抽取清洗转换整合和加载的过程。
Datastage 的可运行单元是Datastage Job ,用户在Designer 中对Datastage Job 的进行设计和开发。
Datastage 中的Job 分为Server Job, Parallel Job 和Mainframe Job ,其中Mainframe Job 专供大型机上用,常用到的Job 为Server Job 和Parallel Job 。
本文将介绍如何使用Server Job 和Parallel Job 进行ETL 开发。
Server Job一个Job 就是一个Datastage 的可运行单元。
Server Job 是最简单常用的Job 类型,它使用拖拽的方式将基本的设计单元-Stage 拖拽到工作区中,并通过连线的方式代表数据的流向。
通过Server Job,可以实现以下功能。
1.定义数据如何抽取2.定义数据流程3.定义数据的集合4.定义数据的转换5.定义数据的约束条件6.定义数据的聚载7.定义数据的写入Parallel JobServer Job 简单而强大,适合快速开发ETL 流程。
Parallel Job 与Server Job 的不同点在于其提供了并行机制,在支持多节点的情况下可以迅速提高数据处理效率。
Parallel Job 中包含更多的Stage 并用于不同的需求,每种Stage 使用上的限制也往往大于Server Job。
Sequence JobSequence Job 用于Job 之间的协同控制,使用图形化的方式来将多个Job 汇集在一起,并指定了Job 之间的执行顺序,逻辑关系和出错处理等。
数据源的连接DataStage 能够直接连接非常多的数据源,应用范围非常大,可连接的数据源包括:•文本文件•XML 文件•企业应用程序,比如SAP 、PeopleSoft 、Siebel 、Oracle Application•几乎所有的数据库系统,比如DB2 、Oracle 、SQL Server 、Sybase ASE/IQ 、Teradata 、Informix 以及可通过ODBC 连接的数据库等•Web Services•SAS 、WebSphere MQServer JobServer Job 中的Stage 综述Stage 是构成Datastage Job 的基本元素,在Server Job 中,Stage 可分为以下五种:1.General2.Database3.File4.Processing5.Real Time本节中将介绍如何使用Datastage 开发一个Server Job。
新教材DATASTAGE的介绍及基本操作.ppt
Datastage测试
• 问题一:
Datastage的Designer是用来建立和编译job、用来进行数据 的抽取、转换和加载即ETL。(Yes/No) 答案一: Yes,Designer使用拖拽的方式将设计元素(习惯上叫stage) 拖拽到设计区域中,经过建立和编译,Job就可以执行,用 来进行数据的抽取、转换和加载。
安装操作员版本的Datastage,需要有Datastage 的Director的许可。
一个工程关联着一个目录,这个工程目录用来存储jobs、 Datastage项目和元数据。在做任何操作前都要先打开这个 工程,即登录这个工程。
工程是自包含的很多的工程可以在同一时间被打开,在 各自单独的环境打开。可以在它们之间导入或导出项目。
多用户可以在同一时间使用一个工程中工作,但是 Datastage禁止在同一时间由多个用户访问同一个job。
• 3,到期时间。 • 4,授权代码。
在许可信息中,这个信息必须被正确输入 的。
课件
安装向导会指导通过以下步骤进行:
• 1,输入许可信息。 • 2,指定服务器的路径。 • 3,选择程序的文件夹。 • 4,创建一个新的工程或升级已经存在的工
程。
课件
安装Datastage
课件
首先安装Datastage Server端,鼠标点击 软件会自动安装,安装过
• 在Windows系统中安装Datastage服务端。 • 建立一个Datastage的工程。 • 安装Datastage的客户端。
课件
Datastage 的服务端要首先安装,之后才 可以安装Datastage 客户端,服务端能都安 装在WinNT、Windows2000或者UNIX系统中, 这个模块将介绍在Windows环境下进行安装。
DataStage企业版产品白皮书之三
DataStage企业版产品白皮书之三ETL..MetaStage20041021本文件涉及信息为北京先进数通信息技术有限公司专有信息,敬请视同机密文件处理。
除因需要而得到授权的中国建设银行及本公司有关人员外,请勿以任何形式向他人或任何第三方透露。
中国建设银行统一数据交换池项目-产品白皮书 1. 关于MetaStage .............................................................. ................................................ 3 2. 集成元数据 ..................................................................... .............................................. 4 3. 捕捉操作型元数据 ..................................................................... ................................... 5 4. 共享元数据 ..................................................................... .............................................. 6 5. 资源分析和报表 ..................................................................... ....................................... 7 6. 查看对象 ..................................................................... .................................................. 8 7. 流览对象 ..................................................................... .................................................. 9 8. 执行简单的检索 ..................................................................... ..................................... 10 9. 调查数据世系 ..................................................................... ......................................... 11 10. 执行 ProcessAnalysis ............................................................... ............................... 11 11. 执行 ImpactAnalysis ............................................................... ................................ 12 12. 执行查询 ..................................................................... ............................................. 12 13. 建立元数据文档 ..................................................................... ................................. 13 14. National LanguageSupport ................................................................ ....................... 13 15. MetaStage 安全 ..................................................................... .................................. 13 16. MetaStage 组件 ..................................................................... .................................. 15 17. MetaStage 目录 ..................................................................... . (16)17.1 查看目录 ..................................................................... ................................... 16 18.MetaBrokers ............................................................ ................................................. 17 19. MetaStage 管理员...................................................................... (18)19.1MetaArchitect .......................................................... (18)19.2 ProcessMetaBroker ............................................................. (18)19.3 MetaStageExplorer ............................................................... ......................... 19 20. 同时使用 DataStage 与MetaStage .............................................................. .......... 20 21. 同时使用 QualityStage 与MetaStage .............................................................. ...... 20 22. 管理数据集成项目中的元数据 ..................................................................... . (21)第 2 页中国建设银行统一数据交换池项目-产品白皮书这个文档描述了MetaStage 的特征,以及 MetaStage 为数据集成项目管理人员和用户带来的好处。
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的介绍及基本操作
1、在‘General'页框中,设置Job监控的一些限制信息 和Director中的其他信息。
2、在‘Permission'页框中,设置并分配开发人员组的 权限 。
3、在‘Tracing' 页框中, 设置或取消服务端进行跟踪 。
? Designer提供一个数据流程的模式,轻松将设置和Job的设计有 机的组成。
? 使用Designer,可以: 1、指定数据如何抽取。
? 2、指定数据的转换规则和进行转换。
? 3、使用参考性质的LookUp到数据集市中编辑数据。
? a)例如,如果销售的记录集包括CustomerID,可以在 CustomerMaster表中使用LookUp查找到Customer的名称。
? 自定义的Routines和Transforms 也在DataStage 中 的Manager 里创建。
DataStage中的Designer
? DataStage中的Designer允许使用熟练地拖拽图标和连线的方式 来表示数据抽取、清洗、转换、整合和加载的过程,并将数据导 入数据仓库的表单之中。
? 问题二:
Datastage的Manager用来执行编译通过的Jobs。(Yes/No )
答案二:
No, Datastage的Manager是用来管理元数据的,如表单结 构,内置和自定义Routines等的,使Datastage用来管理资 源存储的。
? 问题三: Datastage 的Director用来执行编译通过的 Jobs。( Yes/No ) 答案三: Yes ,使用Director来对编译通过的 job进行验证或 者运行,也可以在 jobs运行过程中对其进行监控。
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产品开发使用指南目录目录 (I)1. 引言 (1)2. 常用STAGE使用说明 (1)2.1.S EQUENTIAL F ILE S TAGE (1)2.2.A NNOTATION (4)2.3.C HANGE C APTURE S TAGE (5)2.4.C OPY S TAGE (7)2.5.F ILTER S TAGE (8)2.6.F UNNEL S TAGE (9)2.7.T ANSFORMER S TAGE (10)2.8.S ORT S TAGE (11)2.9.L OOK U P S TAGE (12)2.10.J OIN S TAGE (12)2.11.M ERGE S TAGE (14)2.12.M ODIFY S TAGE (15)2.13.D ATA S ET S TAGE (16)2.14.F ILE S ET S TAGE (17)2.15.L OOKUP F ILE S ET S TAGE (19)2.16.O RACLE E NTERPRISE S TAGE (21)2.17.A GGREGATOR S TAGE (22)2.18.R EMOVE D UPLICATES S TAGE (24)2.19.C OMPRESS S TAGE (25)2.20.E XPAND S TAGE (26)2.21.D IFFERENCE S TAGE (27)2.22.C OMPARE S TAGE (29)2.23.S WITCH S TAGE (30)2.24.C OLUMN I MPORT S TAGE (31)2.25.C OLUMN E XPORT S TAGE (33)3. DATASTAGE ADMINISTRATOR常用配置 (35)3.1.设置T IME O UT时间 (35)3.2.设置P ROJECT的属性 (36)3.3.更新D ATA S TAGE S ERVER的L ICENSE和本地C LIENT的L ICENSE (37)4. DATASTAGE MANAGER使用 (37)4.1.导入导出J OB及其它组件 (37)4.2.管理配置文件 (39)5. DATASTAGE DIRECTOR使用 (40)5.1.察看J OB的状态,运行已经编译好的J OB (40)5.2.将编译好的J OB加入计划任务 (43)5.3.监控J OB的运行情况 (44)1.引言DataStage EE的开发主要由DataStage Designer完成。
datastage server job开发Manual3
1.OC阶段Master表转化成维度EM表时,有几种转换类型,其中主要拷贝了“transformer stage1”的内容如下图所示:RtNotAvailable(SU_OC_B001_LGETCAA0.YYMMDD, L_H_EM_YYYYMMDD.YYYYM MDD_ORIG_ID, L_H_EM_YYYYMMDD.YYYYMMDD_ID)RtNotAvailable(SU_OC_B001_LGETCAA0.BASIC_SIGN, L_H_EM_CURRENCY01.CU RRENCY_ORIG_ID, L_H_EM_CURRENCY01.CURRENCY_ID)RtNotAvailable(SU_OC_B001_LGETCAA0.CURR_SIGN, L_H_EM_CURRENCY02.CU RRENCY_ORIG_ID, L_H_EM_CURRENCY02.CURRENCY_ID)RtNotAvailable(SU_OC_B001__CD, L_H_EM_CORP.CORP_ORIG_ID, L_H_EM_CORP.CORPORATION_ID)IF IsNull(L_H_EM_EMPLOYEE.EMPLOYEE_ID) Then KeyMgtGetNextValue("EMP LOYEE_ID") Else L_H_EM_EMPLOYEE.EMPLOYEE_IDIF IsNull(L_H_EM_EMPLOYEE.EMPLOYEE_ID) Then RtCurrTimeStamp(0) Else L_H_EM_EMPLOYEE.CREATION_TIMESTAMPRtNotAvailable(SU_OC_B001_EMP__CD, L_H_EM_CORP.CORP_ORIG _ID, L_H_EM_CORP.CORPORATION_ID)RtNotAvailable(SU_OC_B001_EMP__CD:CHAR(17):SU_OC_B001_EM P_MASTER.DIV_CD, L_H_EM_AU.AU_ORIG_ID, L_H_EM_AU.ACCOUNTING_UNIT_ ID)RtNotAvailable(SU_OC_B001_EMP__CD:CHAR(17):SU_OC_B001_EM P_MASTER.DEPT_CD, L_H_EM_ANIZATION_ORIG_ID, L_H_E M_ANIZATION_ID)RtNotAvailable(SU_OC_B001_EMP_MASTER.HR_ORG_ID, L_H_EM_ORGANIZATIO ANIZATION_ORIG_ID, L_H_EM_ANIZATION_ID)RtNotAvailable(SU_OC_B001_EMP_MASTER.JOB_FLAG, L_H_EM_JOB_TYPE.JOB_ TYPE_ORIG_ID, L_H_EM_JOB_TYPE.JOB_TYPE_ID)2.EMP_MASTER表生成EM表,再生HASH FILE过程如下图所示:SELECT _CD,a.EMPNO,a.E_ABBR_NAME,a.E_FULL_NAME,a.L_ABBR_NAME,a.L_FULL_NAME,CASE WHEN a.STATUS='R' THEN NULLWHEN a.DIV_CD = '***' THEN NULLELSE a.DIV_CD END DIV_CD,a.DEPT_CD,_CD||CHR(17)||_ID HR_ORG_ID,CASE WHEN a.STATUS = 'W' THEN a.JOB_FLAGELSE NULL END JOB_FLAG,CASE WHEN a.JOB_POSITION_CD in ('Group Leader','Division Leader','De partment Leader','Part Leader','Shil Leader','Team Leader') THEN a.JOB_POSITIO N_CDELSE NULL END JOB_POSITION_CD,a.STATUS,HEX(DATE(a.DATE_GROUP_HIRED)) DATE_GROUP_HIRED,HEX(DATE(a.DATE_HIRED)) DATE_HIRED,HEX(DATE(a.DATE_RETIRED)) DATE_RETIRED,a.CONTRACT_FLAGFROM COC.OC_B001_EMP_MASTER ALEFT JOIN COC.OC_D002_INF_EMP C ON(A.EMPNO = C.EMPNOAND C.SUBSD_CD = 'LGECH')WHERE _CD = 'LGECH'WITH URIF IsNull(L_H_EM_EMPLOYEE.EMPLOYEE_ID) Then KeyMgtGetNextValue("EMP LOYEE_ID") Else L_H_EM_EMPLOYEE.EMPLOYEE_IDIF IsNull(L_H_EM_EMPLOYEE.EMPLOYEE_ID) Then RtCurrTimeStamp(0) Else L_H_EM_EMPLOYEE.CREATION_TIMESTAMPRtNotAvailable(SU_OC_B001_EMP__CD, L_H_EM_CORP.CORP_ORIG _ID, L_H_EM_CORP.CORPORATION_ID)RtNotAvailable(SU_OC_B001_EMP__CD:CHAR(17):SU_OC_B001_EM P_MASTER.DIV_CD, L_H_EM_AU.AU_ORIG_ID, L_H_EM_AU.ACCOUNTING_UNIT_ ID)RtNotAvailable(SU_OC_B001_EMP__CD:CHAR(17):SU_OC_B001_EM P_MASTER.DEPT_CD, L_H_EM_ANIZATION_ORIG_ID, L_H_E M_ANIZATION_ID)RtNotAvailable(SU_OC_B001_EMP_MASTER.HR_ORG_ID, L_H_EM_ORGANIZATIO ANIZATION_ORIG_ID, L_H_EM_ANIZATION_ID)RtNotAvailable(SU_OC_B001_EMP_MASTER.JOB_FLAG, L_H_EM_JOB_TYPE.JOB_ TYPE_ORIG_ID, L_H_EM_JOB_TYPE.JOB_TYPE_ID)INSERT INTO cmt.em_employee (employee_id,emp_orig_id,creation_timestamp,last_update_timestamp,use_flag,emp_std1_name,emp_std1_desc,emp_std2_name,emp_std2_desc,emp_sort1_id,emp_sort2_id,corporation_id,accounting_unit_id,organization_id,job_type_id)SELECT #$S_NULL_ID#,'#$S_NULL#',CURRENT TIMESTAMP,CURRENT TIMESTAMP,'Y','#$S_NULL#','#$S_NULL#','#$S_NULL#','#$S_NULL#',#$S_NULL_SORT#,#$S_NULL_SORT#,#$S_NULL_ID#,#$S_NULL_ID#,#$S_NULL_ID#,#$S_NULL_ID#FROM sysibm.sysdummy1 UNIONSELECT #$S_NA_ID#,'#$S_NA#',CURRENT TIMESTAMP,CURRENT TIMESTAMP,'Y','#$S_NA#','#$S_NA#','#$S_NA#','#$S_NA#',#$S_NA_SORT#,#$S_NA_SORT#,#$S_NA_ID#,#$S_NA_ID#,#$S_NA_ID#,#$S_NA_ID#FROM sysibm.sysdummy13. 关于时间观点 YYYY 生成hash file 的例子:INSERT INTO cmt.em_yyyy(yyyy_id,yyyy_orig_id,creation_timestamp,last_update_timestamp,use_flag,yyyy_std1_name,yyyy_std1_desc,yyyy_std2_name,yyyy_std2_desc,yyyy_sort1_id,yyyy_sort2_id)SELECT #$S_NULL_ID#,'#$S_NULL#',CURRENT TIMESTAMP,CURRENT TIMESTAMP,'Y','#$S_NULL#','#$S_NULL#','#$S_NULL#','#$S_NULL#',#$S_NULL_SORT#,#$S_NULL_SORT# FROM sysibm.sysdummy1 UNIONSELECT #$S_NA_ID#,'#$S_NA#',CURRENT TIMESTAMP,CURRENT TIMESTAMP,'Y','#$S_NA#','#$S_NA#','#$S_NA#','#$S_NA#',#$S_NA_SORT#,#$S_NA_SORT#FROM sysibm.sysdummy14. EM_YYYYHH 生成例子IF IsNull(L_H_EM_YYYYHH.YYYYHH_ID) Then KeyMgtGetNextValue("YYYYHH_I D") Else L_H_EM_YYYYHH.YYYYHH_IDIF IsNull(L_H_EM_YYYYHH.YYYYHH_ID) Then RtCurrTimeStamp(0) Else L_H_E M_YYYYHH.CREATION_TIMESTAMP。
datastage综合使用参考手册
Ascential DataStage Enterprise Edition 综合使用参考手册目录目录 (I)1. 引言 (1)1.1.编写目的 (1)1.2.帮助使用 (1)2. 产品概述 (2)2.1.A DVANCED D EVELOPMENT AND M AINTENANCE (2)2.2.C OMPLETE D EVELOPMENT E NVIRONMENT (3)2.3.H IGHLY S CALABLE A RCHITECTURE (6)2.4.E ND-TO-E ND E NTERPRISE M ETA D ATA (7)3. 安装 (8)3.1.S ERVER安装 (8)3.1.1. Server安装前准备 (8)3.1.2. Server安装步骤 (9)3.1.3. 验证DataStage的安装 (22)3.1.4. Server启动和停止 (23)3.2.C LIENT安装 (24)4. 常规应用 (24)4.1.常用组件使用方法 (24)4.1.1. Sequential file (24)4.1.2. Annotation (27)4.1.3. Change Capture Stage (29)4.1.4. Copy Stage (31)4.1.5. Filter Stage (32)4.1.6. Funnel Stage (33)4.1.7. Tansformer Stage (34)4.1.8. Sort Stage (35)4.1.9. LookUp Stage (36)4.1.10. Join Stage (36)4.1.11. LookUp Stage 和Join Stage的区别 (38)4.1.12. Merge Stage (38)4.1.13. Modify Stage (39)4.1.14. Data Set Stage (40)4.1.15. File Set Stage (41)4.1.16. Lookup File Set Stage (43)4.1.17. Oracle Enterprise Stage (45)4.1.18. Aggregator Stage (46)4.1.19. Remove Duplicates Stage (48)4.1.20. Compress Stage (49)4.1.21. Expand Stage (50)4.1.22. Difference Stage (51)4.1.23. Compare Stage (53)4.1.24. Switch Stage (54)4.1.25. Column Import Stage (55)4.1.26. Column Export Stage (57)4.2.常用数据库的连接 (59)4.2.1. Informix数据库连接 (59)4.2.2. Oracle数据库连接 (60)5. 高级应用 (62)5.1.D ATA S TAGE BASIC接口 (62)5.2.自定义S TAGE T YPE (62)5.2.1. Wrapped Stage (62)5.2.2. Build Stage (67)5.2.3. Custom Stage (75)5.3.性能调优 (75)5.3.1. 优化策略 (75)5.3.2. 关键问题分析 (79)5.3.3. 并行度 (80)5.3.4. 处理建议 (80)5.3.5. 其它 (80)5.3.6. 机器的对称性 (81)5.3.7. 并行调度测试说明: (81)6. 开发经验技巧汇总 (82)6.1.1. 问题 (82)1.引言1.1.编写目的IBM DataStage作为项目主要使用的ETL开发工具,在项目中得到了比较充分的应用,对IBM DataStage产品方方面面的功能,都有所涉及。
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 JOB 开发指导说明
1.概述本文档是用来对ETL 开发人员初步熟悉整个基于DataStage 平台进行ETL 开发指导手册。
整个DS 处理的过程如下:从一张业务系统数据源表到DW模型目的表的数据流处理在开发CODING中一般分4个JOB,包含一个调度JOB。
●第一个JOB(XXXX_DS10CD)用于队连续2天的数据源表进行比较和记录的筛选(选出新增和变化的)●第二个JOB(XXXX_DS20)对第一步处理后的数据进行Trim和简单的校验格式处理确认、以及生成各个目的表所需要的KEY值(比如各IP主题区域表的IP_ID)●第三步JOB(XXXX_DS30)将第二步处理后的数据分别映射到各个目的表、代码转换,最终形成按照各个目的表结构的文件。
注:以下的说明及示例中所列例子都是为本文档所需而命名,具体的各个文件和STAGE的命名规范请参考《CZB-ETL-Design-V1.1.doc》2.DS 处理流程2.1. 组件快速使用2.1.1.数据源结构导入及筛选在进行Ds 开发中,会经常对表结构进行导入导出,已加快ETL 开发速度。
下面是对元数据结构如何导入和保存进行整体说明。
2.1.1.1. 结构导入在DataStage Designer的工作窗口左边“Repository”区域的“Table Definitions”中导入数据源的表结构。
导入数据结构存放路径参考《CZB-ETL-DESIGN-V1.1.DOC》。
如下图:2.1.1.2. 数据源结构筛选导入的数据源结构跟实际ETL所需要进行加工的结构是不同的,ETL只对源结构中有用的字段进行加工,所以真正实际的数据源文件中所包含的字段是不同于数据源表的字段。
DataStage要处理这些文件就需要对导入的数据源结构字段进行筛选。
在“Repository”中找到该表结构,打开该表字段属性的界面,然后根据《》接口文档对不用的字段进行删除。
如下图:2.1.2.DS函数的查看在开发过程的映射中需要用到很多函数,比如用于查询IP主题的IP_ID函数IPLookUp,查询AR主题的AR_ID函数的ARLookUp等。
datastage学习文档
工作总结1 如何重新启动DataStage服务器, 步骤如下: (5)2 DataStage开发经验积累: (5)2.1模板开发 (5)2.2通过S ERVER S HARED C ONTAINER在P ARALLEL J OB中添加S ERVER J OB S TAGE (5)2.3去除不需要的字段 (5)2.4T RANSFORMER S TAGE的使用 (5)2.5L OOK UP/JOIN 空值处理 (6)2.6D ATA S TAGE中默认和隐式类型转换时注意的问题 (6)2.7配置一个INPUT或OUTPUT,就VIEW DATA一下,不要等到RUN时再回头找ERROR (6)2.8D ATA型数据是比较麻烦的 (6)2.9行列互换之H ORIZONTAL P IVOT(P IVOT S TAGE) (7)2.10行列互换之V ERTICAL P IVOT (7)2.11O RACLE EE S TAGE在VIEW数据时出现的错误及解决方法 (9)2.12D ATA S TAGE SAP S TAGE的使用 (10)2.13C OLUM I MPORT S TAGE的使用 (10)2.14C OLUM E XPORT S TAGE的使用 (12)2.15G OT ERROR:C ANNOT FIND ANY PROCESS NUMBER FOR STAGES IN J OB J OBNAME解决 (13)2.16U NABLE TO CREATE RT_CONFIG NNN (14)2.17查看JOB和CLIENT的对应的后台进程 (14)2.18强制杀死DS进程 (14)2.19查看S ERVER E NGINE的进程 (15)2.20查看S ERVER L OCKS (15)2.21关于UNIX系统下无法启动服务的解决办法 (16)2.22L OCKED BY OTHER USER (17)2.23DATA S TAGE J OB L OG的处理 (17)2.24一些BASIC语言中处理字符串的函数 (17)2.25BASIC程序中使用到的一些语法知识 (18)3DS中常见问题记录 (22)3.1权限管理问题 (22)3.2JOB MAY BE BEING MONITORED或者是CLEANUP问题 (22)3.3删除文件的问题 (22)3.4SEQUENCE调度出现的错误问题 (23)3.17字符集问题 (23)3.18V ERSION C ONTROL的问题 (23)3.19SEQUENCE调不起JOB的问题 (23)3.20SEQUENCE调度失败的问题 (24)3.21DS发送邮件的配置问题 (25)3.22随机错误问题 (26)3.23DS中的日期问题 (26)3.24DS连接ORACLE问题 (27)。
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 如何重新启动DataStage服务器, 步骤如下: (5)2 DataStage开发经验积累: (5)2.1模板开发 (5)2.2通过S ERVER S HARED C ONTAINER在P ARALLEL J OB中添加S ERVER J OB S TAGE (5)2.3去除不需要的字段 (5)2.4T RANSFORMER S TAGE的使用 (5)2.5L OOK UP/JOIN 空值处理 (6)2.6D ATA S TAGE中默认和隐式类型转换时注意的问题 (6)2.7配置一个INPUT或OUTPUT,就VIEW DATA一下,不要等到RUN时再回头找ERROR (6)2.8D ATA型数据是比较麻烦的 (6)2.9行列互换之H ORIZONTAL P IVOT(P IVOT S TAGE) (7)2.10行列互换之V ERTICAL P IVOT (7)2.11O RACLE EE S TAGE在VIEW数据时出现的错误及解决方法 (9)2.12D ATA S TAGE SAP S TAGE的使用 (10)2.13C OLUM I MPORT S TAGE的使用 (10)2.14C OLUM E XPORT S TAGE的使用 (12)2.15G OT ERROR:C ANNOT FIND ANY PROCESS NUMBER FOR STAGES IN J OB J OBNAME解决 (13)2.16U NABLE TO CREATE RT_CONFIG NNN (14)查看JOB和CLIENT的对应的后台进程 (14)强制杀死DS进程 (14)查看S ERVER E NGINE的进程 (15)查看S ERVER L OCKS (15)关于UNIX系统下无法启动服务的解决办法 (16)L OCKED BY OTHER USER (17)DATA S TAGE J OB L OG的处理 (17)一些BASIC语言中处理字符串的函数 (17)BASIC程序中使用到的一些语法知识 (18)3DS中常见问题记录 (22)3.1权限管理问题 (22)3.2JOB MAY BE BEING MONITORED或者是CLEANUP问题 (22)3.3删除文件的问题 (22)3.4SEQUENCE调度出现的错误问题 (22)字符集问题 (23)V ERSION C ONTROL的问题 (23)SEQUENCE调不起JOB的问题 (23)SEQUENCE调度失败的问题 (23)DS发送邮件的配置问题 (25)随机错误问题 (25)DS中的日期问题 (26)DS连接ORACLE问题 (26)在S EQUENCE F ILE S TAGE中的空值处理问题 (26)在DS中使用O RACLE E NTERPRISE S TAGE必须的权限 (27)DS中去除‘回车符’的问题以及从CHAR类型转变成整型的方法 (27)从后台看JOB列表的方法 (27)D ATASTAGE和数据库的连接方法 (28)在DATASTAGE中使用环境变量的问题 (28)IC ONV 和OC ONV (28)在M ERGE中使用特殊字符 (29)4部分常用Stage 的使用说明 (29)5dsjob 语法说明: (30)6如何从DataStage服务器导出所开发的JOBS列表 (32)7查看当前服务器状态信息的方法: (35)8如何在两台机器之间进行FTP文件 (36)9如何获得Jobstatus ,步骤如下: (37)10dsjob –run 的用法 (39)11如何在后台运行和停止一个JOB (40)12DS Oracle EE Stage 配置 (42)11.1安装O RACLE客户端 (42)11.2添加O RACLE用户到DSADM GROUP组选项 (42)11.3配置D ATA S TAGE服务器DSENV文件 (42)11.4配置 (43)11.5重起D ATA S TAGE服务 (43)11.6配置O ACLE S TAGE抽取的S ELECT权限 (43)11.7O ACLE EE STAGE配置结束 (44)13DS ODBC 的配置 (44)12.1修改$DSHOME/DSENV (44)12.2修改$DSHOME/.ODBC.INI,来提供数据库连接信息; (44)12.3修改IG,来指定DSN(DATA SOURCE NAME). (45)14ETL系统扩展 (46)15Remote Shell (rsh)的配置 (46)14.1创建并配置.RHOSTS文件 (46)14.2修改文件 (47)16dsadmin命令的使用 (47)15.1DSADMIN命令的使用 (47)17如何启动JobMonApp (49)18 (49)19uvsh常用命令 (52)18.1LOGTO P ROJECT N AME --------登录一个工程 (52)18.2DS.TOOLS---------进入DS工具 (52)LIST DS_JOBS--------显示所有的J OB及J OB的分类C ATEGORY (52)18.4LIST DS_JOBS WITH NAME=J OB N AME ------显示某个特定J OB的信息 (52)LIST.READU EVERY-----列出所有的锁及锁的拥有用户U SER N AME (52)18.6UNLOCK USER USERNO ALL----解锁用户锁住的J OBS (52)18.7LIST.INDEX-----列出资料库的索引 (52)20Usage Analysis来进行影响分析 (53)19.1如何启动U SAGE A NALYSIS (53)19.2U SAGE A NALYSIS中S ELECT C OLUMNS的使用 (54)19.3U SAGE A NALYSIS中V IEW HTML的使用 (55)19.4U SAGE A NALYSIS中L OCATE IN M ANAGER的使用 (56)19.5U SAGE A NALYSIS可使用的S OURCE类型 (57)21DS Message Handlers (58)20.1M ESSAGE H ANDLERS的两种级别 (58)20.2M ESSAGE H ANDLERS的三种动作种类 (59)20.3M ESSAGE H ANDLERS的文件格式 (59)22DS Parallel Routine (60)21.1P ARALLEL R OUTINE注意事项 (60)21.2P ARALLEL R OUTINE创建流程 (60)21.3P ARALLEL R OUTINE示例 (61)23uvconfig文件中参数修改方法 (63)修改文件UVCONFIG中的参数 (63)运行UVREGEN (63)重启DS服务 (63)校验 (63)24&PH& (63)CD \&PH\&或CD ‘&PH&’ (63)25DB2支持的数据格式 (64)26DB2中Load语法和基本使用 (65)1如何重新启动DataStage服务器, 步骤如下:启动DataStage Server 的命令要在$DSHOME/bin 目录下进行. 启动之前要切断所有与服务器端的连接:1. 登陆DataStage 服务器,输入: $DSHOME/bin2. 关闭DataStage 服务器 ./uv –admin –stop3. 检查服务器上是否还有进程没关掉,否则服务器无法启动起来,netstat -a | grep ds4. 重起服务器 ./uv –admin –start.Note: 关闭DataStage 服务器后,建议过30 sec 再重起服务器.2DataStage开发经验积累:2.1 模板开发并行JOB中模板的开发可以最大程度的重用并行JOB的构件,节省时间1. 使用JOB参数(PARAMETER)可以在运行时提供参数的值,增加灵活性,可以在不同的环境处理不同的数据;使用JOB PARAMETER 可以在同一时间使用不同参数运行同一个JOB2. Shared Container共享容器可以在多个JOB中共享相同的逻辑,当一个JOB编译时共享容器被嵌入.2.2 通过Server Shared Container在Parallel Job中添加Server Job Stage在Designer中创建一个server shared container,添加需要的Server job stage,再把server shared container添加到parallel job并连接到其他parallel stage.去除不需要的字段当从数据库中读取数据时,要尽可能早的去除不需要的字段,只读取需要的字段,而不是整个表,这样可以提高数据读取效率.2.4 Transformer Stage的使用1. 慎用Transformer Stage,因为它可能降低JOB的运行效率,有些功能能合并成一个单独的STAGE的不要用多个STAGE,要用其他的STAGE来代替Transformer Stage 能完成的任务.2. Transformer Stage 的数据流程是先经过constraint的过滤,然后再经过Derivation处理3. 对于确定类型的操作,使用其他STAGE 比使用TRANSFORMER 会更好:(1) 对如下情况,使用Copy Stage 将比Transformer Stage 更好﹡在界面上提供一个JOB 设计占位符﹡重新命名字段﹡删除字段﹡Implicit类型变换(2) 使用Filter Stage 或者Switch Stage 来把输入记录按照限制表式分成多个输出分支.(3) 使用Modify Stage 来explicit 类型变换和Null处理﹡Modify Stage 也可重新命名字段﹡保持(keep)或删除(drop)字段﹡也可增加新字段,并为新增字段赋值,但赋值方式要以字段=字段形式,例如:new_columnname=old_columnname; 但new_columnname=”hf”这样赋值是错误的﹡Null的处理destinationColum=handle_null(sourceColum,Value)destinationColum=make_null(sourceColum,Value),这个使用中有问题,不处理空值2.5 Look up/join 空值处理1. 当使用Lookup Failure = Contunue 时,要把reference link 的非主键设置成Nullable,即使reference data 是非空的,也要设置成Nullable,这样能够确保Lookup 把空值分配给没有匹配的参考非主键2. 如果参考非主键没有设置成Nullable ,将会发生什么:Lookup 将会分配一个默认值给没有匹配的的行:Integer 默认值为0Varchar/char 默认值为空字符串(0长度的)2.6 DataStage中默认和隐式类型转换时注意的问题当从源向目标映射数据时,如果类型不一致,对于有些类型我们需要在modify或transfomer stage中通过函数进行转换,对于有些系统会自动完成类型转换,在类型转换过程中,注意以下几点:1 在变长到固定长度字符串的默认转换中,parallel jobs用空格(ASCII 20)字符来填充剩余长度(环境变量APT_STRING_PADCHAR的默认值也是空格(ASCII20),具体在哪个stage填充的不知.2 通过环境变量APT_STRING_PADCHAR可以改变默认的填充字符null(ASCII0)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.OC阶段Master表转化成维度EM表时,有几种转换类型,其中主要拷贝了“transformer stage1”的内容如下图所示:RtNotAvailable(SU_OC_B001_LGETCAA0.YYMMDD, L_H_EM_YYYYMMDD.YYYYM MDD_ORIG_ID, L_H_EM_YYYYMMDD.YYYYMMDD_ID)RtNotAvailable(SU_OC_B001_LGETCAA0.BASIC_SIGN, L_H_EM_CURRENCY01.CU RRENCY_ORIG_ID, L_H_EM_CURRENCY01.CURRENCY_ID)RtNotAvailable(SU_OC_B001_LGETCAA0.CURR_SIGN, L_H_EM_CURRENCY02.CU RRENCY_ORIG_ID, L_H_EM_CURRENCY02.CURRENCY_ID)RtNotAvailable(SU_OC_B001__CD, L_H_EM_CORP.CORP_ORIG_ID, L_H_EM_CORP.CORPORATION_ID)IF IsNull(L_H_EM_EMPLOYEE.EMPLOYEE_ID) Then KeyMgtGetNextValue("EMP LOYEE_ID") Else L_H_EM_EMPLOYEE.EMPLOYEE_IDIF IsNull(L_H_EM_EMPLOYEE.EMPLOYEE_ID) Then RtCurrTimeStamp(0) Else L_H_EM_EMPLOYEE.CREATION_TIMESTAMPRtNotAvailable(SU_OC_B001_EMP__CD, L_H_EM_CORP.CORP_ORIG _ID, L_H_EM_CORP.CORPORATION_ID)RtNotAvailable(SU_OC_B001_EMP__CD:CHAR(17):SU_OC_B001_EM P_MASTER.DIV_CD, L_H_EM_AU.AU_ORIG_ID, L_H_EM_AU.ACCOUNTING_UNIT_ ID)RtNotAvailable(SU_OC_B001_EMP__CD:CHAR(17):SU_OC_B001_EM P_MASTER.DEPT_CD, L_H_EM_ANIZATION_ORIG_ID, L_H_E M_ANIZATION_ID)RtNotAvailable(SU_OC_B001_EMP_MASTER.HR_ORG_ID, L_H_EM_ORGANIZATIO ANIZATION_ORIG_ID, L_H_EM_ANIZATION_ID)RtNotAvailable(SU_OC_B001_EMP_MASTER.JOB_FLAG, L_H_EM_JOB_TYPE.JOB_ TYPE_ORIG_ID, L_H_EM_JOB_TYPE.JOB_TYPE_ID)2.EMP_MASTER表生成EM表,再生HASH FILE过程如下图所示:SELECT _CD,a.EMPNO,a.E_ABBR_NAME,a.E_FULL_NAME,a.L_ABBR_NAME,a.L_FULL_NAME,CASE WHEN a.STATUS='R' THEN NULLWHEN a.DIV_CD = '***' THEN NULLELSE a.DIV_CD END DIV_CD,a.DEPT_CD,_CD||CHR(17)||_ID HR_ORG_ID,CASE WHEN a.STATUS = 'W' THEN a.JOB_FLAGELSE NULL END JOB_FLAG,CASE WHEN a.JOB_POSITION_CD in ('Group Leader','Division Leader','De partment Leader','Part Leader','Shil Leader','Team Leader') THEN a.JOB_POSITIO N_CDELSE NULL END JOB_POSITION_CD,a.STATUS,HEX(DATE(a.DATE_GROUP_HIRED)) DATE_GROUP_HIRED,HEX(DATE(a.DATE_HIRED)) DATE_HIRED,HEX(DATE(a.DATE_RETIRED)) DATE_RETIRED,a.CONTRACT_FLAGFROM COC.OC_B001_EMP_MASTER ALEFT JOIN COC.OC_D002_INF_EMP C ON(A.EMPNO = C.EMPNOAND C.SUBSD_CD = 'LGECH')WHERE _CD = 'LGECH'WITH URIF IsNull(L_H_EM_EMPLOYEE.EMPLOYEE_ID) Then KeyMgtGetNextValue("EMP LOYEE_ID") Else L_H_EM_EMPLOYEE.EMPLOYEE_IDIF IsNull(L_H_EM_EMPLOYEE.EMPLOYEE_ID) Then RtCurrTimeStamp(0) Else L_H_EM_EMPLOYEE.CREATION_TIMESTAMPRtNotAvailable(SU_OC_B001_EMP__CD, L_H_EM_CORP.CORP_ORIG _ID, L_H_EM_CORP.CORPORATION_ID)RtNotAvailable(SU_OC_B001_EMP__CD:CHAR(17):SU_OC_B001_EM P_MASTER.DIV_CD, L_H_EM_AU.AU_ORIG_ID, L_H_EM_AU.ACCOUNTING_UNIT_ ID)RtNotAvailable(SU_OC_B001_EMP__CD:CHAR(17):SU_OC_B001_EM P_MASTER.DEPT_CD, L_H_EM_ANIZATION_ORIG_ID, L_H_E M_ANIZATION_ID)RtNotAvailable(SU_OC_B001_EMP_MASTER.HR_ORG_ID, L_H_EM_ORGANIZATIO ANIZATION_ORIG_ID, L_H_EM_ANIZATION_ID)RtNotAvailable(SU_OC_B001_EMP_MASTER.JOB_FLAG, L_H_EM_JOB_TYPE.JOB_ TYPE_ORIG_ID, L_H_EM_JOB_TYPE.JOB_TYPE_ID)INSERT INTO cmt.em_employee (employee_id,emp_orig_id,creation_timestamp,last_update_timestamp,use_flag,emp_std1_name,emp_std1_desc,emp_std2_name,emp_std2_desc,emp_sort1_id,emp_sort2_id,corporation_id,accounting_unit_id,organization_id,job_type_id)SELECT #$S_NULL_ID#,'#$S_NULL#',CURRENT TIMESTAMP,CURRENT TIMESTAMP,'Y','#$S_NULL#','#$S_NULL#','#$S_NULL#','#$S_NULL#',#$S_NULL_SORT#,#$S_NULL_SORT#,#$S_NULL_ID#,#$S_NULL_ID#,#$S_NULL_ID#,#$S_NULL_ID#FROM sysibm.sysdummy1 UNIONSELECT #$S_NA_ID#,'#$S_NA#',CURRENT TIMESTAMP,CURRENT TIMESTAMP,'Y','#$S_NA#','#$S_NA#','#$S_NA#','#$S_NA#',#$S_NA_SORT#,#$S_NA_SORT#,#$S_NA_ID#,#$S_NA_ID#,#$S_NA_ID#,#$S_NA_ID#FROM sysibm.sysdummy13. 关于时间观点 YYYY 生成hash file 的例子:INSERT INTO cmt.em_yyyy(yyyy_id,yyyy_orig_id,creation_timestamp,last_update_timestamp,use_flag,yyyy_std1_name,yyyy_std1_desc,yyyy_std2_name,yyyy_std2_desc,yyyy_sort1_id,yyyy_sort2_id)SELECT #$S_NULL_ID#,'#$S_NULL#',CURRENT TIMESTAMP,CURRENT TIMESTAMP,'Y','#$S_NULL#','#$S_NULL#','#$S_NULL#','#$S_NULL#',#$S_NULL_SORT#,#$S_NULL_SORT# FROM sysibm.sysdummy1 UNIONSELECT #$S_NA_ID#,'#$S_NA#',CURRENT TIMESTAMP,CURRENT TIMESTAMP,'Y','#$S_NA#','#$S_NA#','#$S_NA#','#$S_NA#',#$S_NA_SORT#,#$S_NA_SORT#FROM sysibm.sysdummy14. EM_YYYYHH 生成例子IF IsNull(L_H_EM_YYYYHH.YYYYHH_ID) Then KeyMgtGetNextValue("YYYYHH_I D") Else L_H_EM_YYYYHH.YYYYHH_IDIF IsNull(L_H_EM_YYYYHH.YYYYHH_ID) Then RtCurrTimeStamp(0) Else L_H_E M_YYYYHH.CREATION_TIMESTAMP。