ETL使用手册
ETL使用手册2007年11月8日
ETL使用手册
第一章配置文件结构
第二章标签说明
ETL配置文件的根标签。
属性默认范围描述参数
logMode n> and 统默认"normal". -m objectIDIncrement n> 定义配置文件中指定的目标对象数 量.默认20. none objectIDTableName n> 定义配置文件中指定的目标对象表 名. .默认"objectid". none objectIDColumnNam e n> 定义配置文件中指定的目标对象字 段名. 默认 "next". none objectIDNameColum nName n> Defines the column name for OID name defined by TOS. If this value is set, Loader uses OID logic as used by TOS. none objectIDNameColum nValue n> Defines the column name for OID values defined by TOS. If this value is set, Loader uses OID logic as used by TOS. Type of this column is VARCHAR. none onErrorContinue n> 定义转换任务执行SQL命令或转换 过程中发生错误都将继续执行。默认"false" -e commit "false" none userID none 为userID column标签定义值-u logDir none 定义日志文件夹路径. 默认为当前 工作目录 -l logFile none 定义日志文件名.默认 "LoaderLog-YYYY-MM-DD-HH-mm-ss .txt" -f vendorConfig none 定义数据库类型配置文件名称。默 认 "OctopusDBVendors.xml" -d returnCode none 定义默认java.exe返回代码到外部 环境,转换任务失败时返回。 -rc objectIDAutoCreat e n> 定义objectID表是否自动创建默 认 "false". none objectIDStartValu e n> 定义objectID起始值,仅在自动创 建时,默认 "1" none commitCount n> and 认 "100" -c oidLogic n> and none tableMode n> and none dataCutOff n> 定义数据截取开关。系统默认"false".超出目标字段长度时是否 截取数据 none logTableName 表,如果使用就必须制定日志表名。 none logColumnName 称列名,默认LOGCOLUMNNAME. none logRowNumber 号的列名。默认LOGROWNUMBER. none logOriginalValue 原始值的列名。默认 LOGORIGINALVALUE. none logNewValue 原始值的列名。默认LOGNEWVALUE. none logImportDefiniti onName ImportDefinition标签名称的列 名。默认 LOGIMPORTDEFINITIONNAME. none logOperationName (cut off, replaced null...)的列 名。默认LOGOPERATIONNAME. none logTypeName (insert, update...) 的列名。默 认LOGTYPENAME. none logClassName logger) none pathToLoggerConf (log4j logger) none setCursorName n> 定义是否使用setCursorName 方法 (如果数据库支持setCursorName ()方法) none setFetchSize n> 定义是否使用setFetchSize方法 (如果数据库支持setFetchSize() 方法) none 例如: objectIDTableName="myAdminObjectID" objectIDColumnName="myNext" onErrorContinue="false" commit="true" userID="r004d\meier" logDir="c:\mylogs" logFile="myFile.txt" vendorConfig="MyVendorConfig.xml" objectIDAutoCreate="true" objectIDStartValue="150000" commitCount="1000" oidLogic="false" tableMode="Cache" returnCode="1" dataCutOff="true" logTable="LOGTABLE"> ... 在目标数据库中创建数据表,纪录importDefinition标签重新启动的次数,如果表存在,会抛错. 属性描述 tableName 指定存放任务重启的数据表名,该表创建在目标数据库中, 默认"LOADERRESTART". importDefinitionColum nName 指定存放importDefinition标签名称的字段名,默认"IMPORTDEFINITION". restartCounterColumnN ame 指定存放importDefinition重启次数的字段名,默认"RESTARTCOUNTER". restartAutoCreate 是否自动创建该表,默认"false". 注意:如果一个转换任务没有-r参数启动,重启记录信息将从该表中删除。 例如: ... 接收参数定义 属性描述 prefix 定义变量默认前缀,在各个variable标签中. suffix 定义变量默认后缀,在各个variable标签中. override 定义变量默认是否强制转换,在各个variable标签中. replaceInConstants 定义变量默认是否在常量中替换,在各个variable标签中. replaceInSQL 定义变量默认是否在SQL语句中替换,在各个variable标签 中. replaceInData 定义变量默认是否在数据中替换,在各个variable标签中. replaceInJDBC 定义变量默认是否在JDBC中替换,在各个variable标签中. 属性描述默认值 name 变量名称 value 变量值 prefix 变量名前缀% suffix 变量名后缀% override 是否强制转换true replaceInConstants 是否在常量中替换false replaceInSQL 是否在SQL语句中替换false replaceInData 是否在数据中替换false replaceInJDBC 是否在JDBC中替换false defaultValue 这个属性被使用在数据清理中optional 例如: ... replaceInData="true" replaceInJDBC="true"> override="true" replaceInConstants="false" replaceInSQL="true" replaceInData="false" replaceInJDBC="false"/> ... 默认JDBC连接 JDBC数据源参数 dbVendor OctopusDBVendors.xml中定义的数据库类型 driverName OctopusDBVendors.xml中定义的数据库驱动 JDBC数据源参数 属性描述 name 源数据库JDBC属性. 包含: JdbcDriver, Connection.Url, User ,Password. value 源数据库JDBC属性值. JDBC数据源参数 < jdbcTargetParameters dbVendor="Informix" driverName="ifxjdbc"> 属性描述 dbVendor OctopusDBVendors.xml中定义的数据库类型 driverName OctopusDBVendors.xml中定义的数据库驱动 JDBC数据源参数 属性描述 name 源数据库JDBC属性. 包含: JdbcDriver, Connection.Url, User ,Password. value 源数据库JDBC属性值. 例如: 执行SQL语句 属性描述 name logMode 可选属性,这个模式定义了转换执行步骤将被写到日志之中的模 式:none, normal,full. -'none' –只记录出现的错误,这个 模式返回程序退出编码。-'normal' –记录程序开始和结束的每 一个importDefinition标签转换任务,importDefinition名称, 提交的行数和每一个导入任务(SQL)。-'full' –记录转换任 务的详细信息到日志文件。系统默认'normal'. onErrorContinue 可选值:true或false.当这个值是true, 如果出现一个错误, 错误信息将要被显示出来,程序继续运行。当这个值是false, 如 果出现一个错误,错误信息将要被显示出来,程序结束。这个属 性可选,系统默认false. commit 可选值:true or false. 当这个值是true, SQL语句将会在执行 后立即提交,否则将会在程序最后提交,这个属性可选,系统默 认true. returnCode 定义默认java.exe返回代码到外部环境,转换任务失败时返回。 这个属性可选,系统默认1. 目标JDBC数据源参数< jdbcTargetParameters dbVendor="Informix" driverName="ifxjdbc"> 属性描述 dbVendor OctopusDBVendors.xml中定义的数据库类型 driverName OctopusDBVendors.xml中定义的数据库驱动 目标JDBC数据源参数 属性描述 name 源数据库JDBC属性. 包含: JdbcDriver, Connection.Url, User ,Password. value 源数据库JDBC属性值. SQL语句,例如: CREATE DATABASE Together; 包含文件,例如: 属性描述 href 包含文件路径 parse 包含文件类型 (text) 定义包含,例如: ... ... ... 包含多个 属性描述 href 包含文件路径 parse 包含文件类型 (xml) 日志开头要显示的信息,例如: 简单表复制 属性描述 name copyTable 任务名称,在loaderJob 标签中必须保 持唯一,属性必填。 sourceTableName 定义将要完全复制到目标表中去的源表名称。targetTableName 定义目标表名称。 logMode 这个模式定义了转换执行步骤将被写到日志之中的 模式:none, normal,full. -'none' –只记录 出现的错误,这个模式返回程序退出编码。 -'normal' –记录程序开始和结束的每一个 copyTable标签转换任务,copyTable名称,提交的 行数和每一个导入任务(SQL)。-'full' –记录 转换任务的详细信息到日志文件。系统默认 'normal'. ObjectIDIncrement 定义配置文件中指定的目标对象数量.默认20. oidLogic 定义表是否使用OID逻辑,系统默认"true". onErrorContinue 定义转换任务执行SQL命令或转换过程中发生错误 都将继续执行。默认"false" commitCount 定义系统默认的一次提交数量。默认 "100" 这个属性可选。如果这个属性不存在,默认使用 loaderJob 标签中的定义。 setCursorName 定义是否使用setCursorName 方法(如果数据库支 持setCursorName()方法) setFetchSize 定义是否使用setFetchSize方法(如果数据库支持 setFetchSize()方法) 例如: onErrorContinue="false" sourceTableName="PERSISTENTTREE" targetTableName="PERSISTENTTREE"/> 导入定义 属性描述 name 导入定义名称。在loaderJob 标签中必须保持唯一,属 性必填。 tableName 源数据库中源表的名称。这个属性可选。如果这个属 性不存在,必须设置 selectStatement 属性来用SQL 语句导入数据。 selectStatement 通过SQL语句从多个源表导入数据。这个属性可选。如 果tableName属性不存在那么必须有这个属性。commitCount 定义系统默认的一次提交数量。默认 "100" 这个属性可选。如果这个属性不存在,默认使用 loaderJob 标签中的定义。 logMode 可选属性,这个模式定义了转换执行步骤将被写到日志 之中的模式:none, normal,full. -'none' –只记 录出现的错误,这个模式返回程序退出编码。-'normal' –记录程序开始和结束的每一个importDefinition标 签转换任务,importDefinition名称,提交的行数和每 一个导入任务(SQL)。-'full' –记录转换任务的详 细信息到日志文件。系统默认'normal'. objectIDIncrement 定义配置文件中指定的目标对象数量.默认20. objectIDTableName 定义配置文件中指定的目标对象表名. .默认 "objectid". objectIDColumnName 定义配置文件中指定的目标对象字段名. 默认 "next". objectIDNameColumnName Defines the column name for OID name defined by TOS. If this value is set, Loader uses OID logic as used by TOS. This attribute is optional. objectIDNameColumnValue Defines the column name for OID values defined by TOS. If this value is set, Loader uses OID logic as used by TOS. Type of this column is VARCHAR. This attribute is optional. returnCode 定义默认java.exe返回代码到外部环境,转换任务失 败时返回。这个属性可选,系统默认1. dataCutOff 定义数据截取开关。系统默认 "false".超出目标字段 长度时是否截取数据 onErrorContinue 可选值:true或false.当这个值是true, 如果出现 一个错误,错误信息将要被显示出来,程序继续运行。 当这个值是false, 如果出现一个错误,错误信息将要 被显示出来,程序结束。这个属性可选,系统默认false. setCursorName 定义是否使用setCursorName 方法(如果数据库支持 setCursorName()方法) setFetchSize 定义是否使用setFetchSize方法(如果数据库支持 setFetchSize()方法) 确保字段数据唯一 导入任务定义的JDBC连接 JDBC数据源参数 dbVendor OctopusDBVendors.xml中定义的数据库类型 driverName OctopusDBVendors.xml中定义的数据库驱动 JDBC数据源参数 属性描述 name 源数据库JDBC属性. 包含: JdbcDriver, Connection.Url, User ,Password. value 源数据库JDBC属性值. JDBC数据源参数 < jdbcTargetParameters dbVendor="Informix" driverName="ifxjdbc"> 属性描述 dbVendor OctopusDBVendors.xml中定义的数据库类型 driverName OctopusDBVendors.xml中定义的数据库驱动 JDBC数据源参数 属性描述 name 源数据库JDBC属性. 包含: JdbcDriver, Connection.Url, User , Password. value 源数据库JDBC属性值. 直接对应转换列 属性描述 sourceColumnName 源数据库表字段名称,这个属性必须。 targetTableName 目标数据库表名,这个属性必须。 targetColumnName 目标数据库表字段名称,这个属性必须。 targetTableID 定义逻辑目标表数量,可能一个真实目标表指定为多个逻辑目 标表。这个属性的值从0开始。这个属性是必需的,可以定义 多个逻辑表指定相同的物理表。 valueMode 定义数据修改模式。值包括: Key, Overwrite, Update, SetIfCreated,SetNull.这个属性是必需的。‘Key’ –定义 成KEY的目标表字段用来确定一行数据(主键功能)。 ‘Overwrite’ - 定义成Overwrite的目标表字段,将把源表 字段数据覆盖目标表字段的数据。‘Update’ -定义成Update 的目标表字段,只修改目标表字段为空的数据。 ‘SetIfCreated’ -定义成SetIfCreated的目标表字段,只在 插入新数据行时把源表字段数据转到目标表字段的数据。 ‘SetNull’ –定义成SetIfCreated的目标表字段,将目标表 字段的数据设成NULL。 defaultValue 这个属性可选,如果字段数据为NULL时,可以指定默认值。toHex 可选值:true或false.如果toHex 的属性设成true,数据字 段BLOB类型的值将要被转换成String类型。 fromHex 可选值:true或false.如果fromHex的属性设成true,数据 字段String类型的值将要被转换成BLOB类型。 例如: 自定义转换规则,例如: retVal = new Array(); retVal[0] = JRJGDM_ZHJLBS+YWH_ZHJLBS; retVal[1] = JRJGDM_ZHJLBS+YWH_ZHJLBS; retVal[2] = JRJGDM_ZHJLBS+YWH_ZHJLBS; retVal[3] = dateconversion(KHRQ); retVal[4] = dateconversion(DQRQ); retVal[5] = getInt(SXED); retVal[6] = getInt(GXSXED); retVal; 转换规则 属性描述 name 转换规则名称 transformatorClassName 通过调用java类转换数据,要指定类的完整名称。 (org.webdocwf.util.loader.transformation. ReplaceDataFromDesDB) transformatorConfig 指定向转换类(例如:ReplaceDataFromDesDB)中传递 的参数,只能传递一个参数。 源表数据字段 源表字段,例如: 目标表数据字段 目标表字段 属性描述 name 目标表字段名称 tableName 目标表名 tableID 目标表的逻辑ID号 valueMode 值的转换模式: (Update,SetNull,Overwrite,Key) 包括: Key, Overwrite, Update, SetIfCreated,SetNull.这个属性是必需的。‘Key’ –定义成KEY的目标表字段用来确定一行数据(主键功能)。 ‘Overwrite’ - 定义成Overwrite的目标表字段,将把源表字段数据覆 盖目标表字段的数据。‘Update’ -定义成Update的目标表字段,只修 改目标表字段为空的数据。‘SetIfCreated’ -定义成SetIfCreated的 目标表字段,只在插入新数据行时把源表字段数据转到目标表字段的数 据。‘SetNull’ –定义成SetIfCreated的目标表字段,将目标表字段 的数据设成NULL。 javascript脚本转换,例如: retVal = new Array(); retVal[0] = JRJGDM_ZHJLBS+YWH_ZHJLBS; retVal[1] = JRJGDM_ZHJLBS+YWH_ZHJLBS; retVal[2] = JRJGDM_ZHJLBS+YWH_ZHJLBS; retVal[3] = dateconversion(KHRQ); retVal[4] = dateconversion(DQRQ); retVal[5] = getInt(SXED); retVal[6] = getInt(GXSXED); retVal; 包含脚本,例如: 属性描述 href 包含文件路径 parse 包含文件类型 (text) 获得变量值字段,例如: targetColumnName="name" targetTableID="0" valueMode="Overwrite"/> targetTableID="0" valueMode="Key" defaultValue="defUser"/> targetColumnName="name" targetTableID="0" valueMode="Overwrite" defaultValue="defVal"/> 将变量值赋给目标字段必须属性override="true" 属性描述 name 变量名称 targetTableName 目标表名,这个属性必须。 targetColumnName 目标表字段名,这个属性必须。 targetTableID 目标表逻辑ID号,可能一个真实目标表指定为多个逻辑目标表。 这个属性的值从0开始。这个属性是必需的,可以定义多个逻辑 表指定相同的物理表。 valueMode 定义数据修改模式。值包括: Key, Overwrite, Update, SetIfCreated,SetNull.这个属性是必需的。‘Key’ –定义 成KEY的目标表字段用来确定一行数据(主键功能)。 ‘Overwrite’ - 定义成Overwrite的目标表字段,将把源表字 段数据覆盖目标表字段的数据。‘Update’ -定义成Update的 目标表字段,只修改目标表字段为空的数据。‘SetIfCreated’ -定义成SetIfCreated的目标表字段,只在插入新数据行时把源 表字段数据转到目标表字段的数据。‘SetNull’ –定义成 SetIfCreated的目标表字段,将目标表字段的数据设成NULL。defaultValue 这个属性可选,如果字段数据为NULL时,可以指定默认值。 将当前用户赋给目标字段 属性描述 targetTableName 定义目标表名。这个属性必须。 targetColumnName 定义目标表字段名。这个属性必须。 targetTableID 目标表逻辑ID号,可能一个真实目标表指定为多个逻辑目标表。 这个属性的值从0开始。这个属性是必需的,可以定义多个逻辑 表指定相同的物理表。 valueMode 定义数据修改模式。值包括: Key, Overwrite, Update, SetIfCreated,SetNull.这个属性是必需的。‘Key’ –定义 成KEY的目标表字段用来确定一行数据(主键功能)。 ‘Overwrite’ - 定义成Overwrite的目标表字段,将把源表字 段数据覆盖目标表字段的数据。‘Update’ -定义成Update的 目标表字段,只修改目标表字段为空的数据。‘SetIfCreated’ -定义成SetIfCreated的目标表字段,只在插入新数据行时把源 表字段数据转到目标表字段的数据。‘SetNull’ –定义成 SetIfCreated的目标表字段,将目标表字段的数据设成NULL。defaultValue 这个属性可选,如果字段数据为NULL时,可以指定默认值。 将当前时间赋给目标字段 属性描述 targetTableName 定义目标表名。这个属性必须。 targetColumnName 定义目标表字段名。这个属性必须。 targetTableID 目标表逻辑ID号,可能一个真实目标表指定为多个逻辑目标表。 这个属性的值从0开始。这个属性是必需的,可以定义多个逻辑 表指定相同的物理表。 valueMode 定义数据修改模式。值包括: Key, Overwrite, Update, SetIfCreated,SetNull.这个属性是必需的。‘Key’ –定义 成KEY的目标表字段用来确定一行数据(主键功能)。 ‘Overwrite’ - 定义成Overwrite的目标表字段,将把源表字 段数据覆盖目标表字段的数据。‘Update’ -定义成Update的 目标表字段,只修改目标表字段为空的数据。‘SetIfCreated’ -定义成SetIfCreated的目标表字段,只在插入新数据行时把源 表字段数据转到目标表字段的数据。‘SetNull’ –定义成 SetIfCreated的目标表字段,将目标表字段的数据设成NULL。defaultValue 这个属性可选,如果字段数据为NULL时,可以指定默认值。 外键关联字段转换,例如: relationSourceColumnName="id" relationSourceTableID="0" relationTargetTableName="etltest" relationTargetColumnName="name" relationTargetTableID="0" relationMode="Overwrite" defaultValue="2"/> 导入外键关系(必须存在对应关系) 属性描述 relationSourceTableName 关联的主表,这个标在目标数据库中,这个属性必须。relationSourceColumnName 主表字段名。属性可选。默认值OID。relationSourceTableID 定义逻辑主表。可能一个真实主表指定为多个逻辑主 表。这个属性的值从0开始。这个属性是必需的,可 以定义多个逻辑表指定相同的物理表。relationTargetTableName 关联的子表,这个标在目标数据库中,这个属性必须。relationTargetColumnName 子表字段名。属性可选。默认值OID。(当 oidLogic = true). relationTargetTableID 定义逻辑子表。可能一个真实主表指定为多个逻辑子 表。这个属性的值从0开始。这个属性是必需的,可 以定义多个逻辑表指定相同的物理表。 relationMode 定义数据修改模式。值包括: Key, Overwrite, Update, SetIfCreated,SetNull.这个属性是必需的。 ‘Key’ –定义成KEY的目标表字段用来确定一行数 据(主键功能)。‘Overwrite’ - 定义成Overwrite 的目标表字段,将把源表字段数据覆盖目标表字段的 数据。‘Update’ -定义成Update的目标表字段,只 修改目标表字段为空的数据。‘SetNull’ –定义成 SetIfCreated的目标表字段,将目标表字段的数据设 成NULL。 defaultValue 这个属性可选,如果字段数据为NULL时,可以指定默 认值。 例如: targetColumnName="name" targetTableID="0" valueMode="Overwrite" constantValue="sss"/> 将固定值(常量)赋给目标字段 属性描述 targetTableName 目标表名,这个属性必须。 targetColumnName 目标表字段名,这个属性可选。默认oid. targetTableID 目标表逻辑ID号,可能一个真实目标表指定为多个逻辑目标 表。这个属性的值从0开始。这个属性是必需的,可以定义多 个逻辑表指定相同的物理表。 valueMode 定义数据修改模式。值包括: Key, Overwrite, Update, SetIfCreated,SetNull.这个属性是必需的。‘Key’ –定义 成KEY的目标表字段用来确定一行数据(主键功能)。 ‘Overwrite’ - 定义成Overwrite的目标表字段,将把源表 字段数据覆盖目标表字段的数据。‘Update’ -定义成Update 的目标表字段,只修改目标表字段为空的数据。 ‘SetIfCreated’ -定义成SetIfCreated的目标表字段,只在 插入新数据行时把源表字段数据转到目标表字段的数据。 ‘SetNull’ –定义成SetIfCreated的目标表字段,将目标表 字段的数据设成NULL。 constantValue 常量值。这个属性可选。如果没有指定常量值数据为NULL。defaultValue 这个属性可选,如果字段数据为NULL时,可以指定默认值。 属性描述 counterTableName 指定计数器表名。这个属性必须。 counterNameColumn 指定计数器名称字段。这个属性必须。 counterValueColumn 指定计数器当前值字段。这个属性必须。 例如: targetTableID="0" targetColumnName="name" valueMode="SetIfCreated" counterStartValueReset="true"/> 通过计数器表向目标字段自动增量生成数据(例如:自动加1) 属性描述 counterName 计数器名称。必须在importDefinition 标签中唯一。 这个属性必须。 counterStartValue 计数器起始值,默认1. counterIncrement 增量值,默认1. counterStartValueReset 可选值true和false. 如果这个值是'false'那么 计数器从计数器表中的得到的当前数开始增量,如果 值是'true'计数器从counterStartValue属性中定 义的数值开始增量。这个属性必须。 valueMode 定义修改模式,目前只有SetIfCreated 模式,其他 模式还没有实现,这个属性必须。 targetTableName 目标表名,这个属性必须。 targetColumnName 目标表字段名,这个属性必须。 targetTableID 目标表逻辑ID号,可能一个真实目标表指定为多个 逻辑目标表。这个属性的值从0开始。这个属性是必 需的,可以定义多个逻辑表指定相同的物理表。 属性描述 counterName 计数器名称。必须在importDefinition 标签中唯一。这 个属性必须。 counterStartValue 计数器起始值,默认1. counterIncrement 增量值,默认1. targetTableName 目标表名,这个属性必须。 targetColumnName 目标表字段名,这个属性必须。 targetTableID 目标表逻辑ID号,可能一个真实目标表指定为多个逻辑 目标表。这个属性的值从0开始。这个属性是必需的,可 以定义多个逻辑表指定相同的物理表。 valueMode 定义修改模式,目前只有SetIfCreated 模式,其他模式 还没有实现,这个属性必须。 例子: 定义目标表,例如: 定义表是否使用OID逻辑,系统默认"true".
定义默认的表访问方法.系统默认"Query".