测试文档(产品帮助文档专用)

参数赋值组件@

1. 组件介绍

参数赋值组件用于根据输入的记录来更新ETL编辑器中定义的参数值。参数值可以设置输入的字段、表达式、宏等。

在交换任务执行的过程中,通过参数赋值组件改变参数的取值,供后续组件调用参数。

每次点击“新增”,都会新增一个参数(不重复),参数值取的是默认值。新增条数限制:<= 参数总数。超出限制,给出提示,如下:

2. 使用场景

常用场景1

现存在一张学生成绩表表结构及数据如下,表中记录了2024学年学生期末考试成绩,现需要将成绩输出成文本的形式存储在本地中。每一次的考试成绩都需要单独放在一个文本中存放,要求输出的时候文件名称带上当天的日期。

进入ETL任务设计页面,拖入表输入、表达式、参数赋值、平面文件输出组件,新建一个参数time。

表输入选择学生成绩表STUDENT_SCORES,参数赋值组件给time 参数值赋值为today(),通过today函数来获取当前日期。

平面文件输出组件文件名设置为学生成绩+当前日期的格式。

这样任务每次执行都会在服务器指定路径下生成一个学生成绩+当天日期的文件

常用场景2

某企业有存在一张员工信息表,其结构以及数据如下所示。

该表中包含了正式员工、非正式员工、外包员工等。现在人事部需要每天把当天转正员工信息录入到系统中去。由于sql语句中的where 条件无法直接填写数据库函数,但是ETL组件中的sql输入组件中的sql语句可支持填写参数,所以我们通过参数赋值组件与sql输入组件组合来实现此场景。为了实现这个场景,我们进入ETL任务设计页面,定义全局参数time,拖入参数 赋值组件、sql输入组件、表达式组件、表输出组件。

参数赋值组件赋值为today(),为自动获取当天日期。Sql输入组件 手动编写sql语句,设置where条件为等于当天日期。

配置好表达式组件、表输出组件后,执行任务即可。这样每次任务执行获取的都是当天转正的员工数据。

3. 使用场景

场景一:其他库——>Oracle

将非oracle大数据量级的数据写入另oracle库,要想高效率写入,可使用oracle装载组件,该组件利用sqlldr命令行工具进行文本数据的快速装载,对于大数据量的处理比insert的效率高很多。具体设置如下:

使用组件:表输入+平面文件输出+oracle装载,库表通过【平面文件输出】将该表数据以文件方式导出,再通过【oracle装载】将数据写入oracle库中。

源库可以选任意已兼容的库,将原表中的数据已文件的形式输出到服务器端。 然后通过oracle装载组件读取该文件,将文件数据写入目标库表中。由于平面文件输出组件只能输出到产品所在的服务器路径,故该场景下的边缘采集节点以及sqlldr、sqluldr2工具只能部署在产品所在服务器下。

此处需要注意的是平面文件输出的文件格式相关配置要与oracle装载组件中的配置保持一致,例如列分隔符、字符集等。配置不一致可能导致任务运行失败或数据读取不正确等问题。

场景二:Oracle——>Oracle

Oracle到oracle库之间大数据量的数据传输可通过oracle卸载组件与oracle装载组件组合使用一次来提高传输效率。

Etl任务界面拖入表输入组件、oracle 卸载组件、oracle装载组件,其中表输入组件数据源配置必须为oracle数据库。

配置oracle卸载组件、oracle装载组件,配置示例如下。


装载组件中如果目标表已存在的情况下还需要手动配置字段映射。

配置完成后执行任务即可。执行日志中会记录sqlldr过程中数据的读取传输情况。


注意事项:

①.针对字段类型为TIMESTAMP时间戳类型的字段,进行卸载时会遇到ORA-24345: A Truncation or null fetch error occurred   

类似的错误,此错误为sqluldr2执行的报错,程序无法修改可变通解决,解决方法见EDG-21226

②.Oracle装载组件字段设置中加载方式有4种。
INSERT:这是默认的加载方法。使用INSERT 时,目标表必须为空。如果尝试在已有数据的表中使用此方法插入数据,将会导致错误。

APPEND:允许在不删除现有数据的情况下向表中添加新行。即使表中有数据,也可以继续添加新的记录。这对于需要保留现有数据并增加新数据的情况非常有用。

REPLACE:这个选项首先会删除表中的所有现有数据(类似于执行 DELETE FRoM table_name;),然后加载新的数据。与TRUNCATE 不同,REPLACE 可以处理有外键约束的表,因为它实际上执行的是 DELETE 操作而不是 TRUNCATE。 TRUNCATE:与REPLACE 类似,但它通过执行 TRUNCATE命令来快速删除表中的所有数据,然后再加载新数据。由于TRUNCATE 是一个DDL操作,它不能回滚,并且通常比 DELETE更快,因为它不会记录单个行的删除操作。但是,使用TRUNCATE 可能需要注意外键约束的问题。

5.4.2.4.1.14.5 sqluldr2安装部署

Linux(Centos7.6)安装sqluldr2

简介

本资源文件提供了在Linux(Centos7.6)系统上安装sqluldr2的详细步骤。sqluldr2是一款高效的Oracle数据导出工具,能够快速导出大量数据为文本或CSV格式。

安装步骤

1. 配置环境变量

首先,切换到Oracle用户并编辑.bashrc文件,添加以下环境变量:

export LD_LIBRARY_PATH=$ORACLE_HOME/bin:$ORACLE_HOME/lib:/lib:/usr/lib

保存并退出后,使配置生效:

source ~/.bashrc

2. 上传并解压sqluldr2

将sqluldr2的压缩包上传到服务器,并解压到指定目录:

cd /usr/local/oracle/product/11.2.0/bin/

rz

解压后,重命名文件:

mv sqluldr2_linux64_10204.bin sqluldr2.bin

3. 授权

切换回root用户,对sqluldr2文件进行授权:

chown -R oracle:oinstall sqluldr2.bin

4. 验证安装

切换回Oracle用户,进入sqluldr2所在目录,使用ldd命令验证依赖库:

ldd sqluldr2.bin

如果出现libclntsh.so.10.1 => not found,则需要创建软链接:

cd $ORACLE_HOME/libln -s libclntsh.so libclntsh.so.10.1

5. 使用sqluldr2

使用以下命令进行sqluldr2验证:

./sqluldr2.bin

输出类似信息代表sqluldr2 已正常安装。

注意事项

确保Oracle数据库已正确安装并配置。

根据实际需求调整sqluldr2的参数配置。

边缘采集节点所在的服务器安装sqlldr,sqlldr本身不支持连接远程数据源,所以要在安装的时候装oracle客户端。
边缘采集节点主机上的 配置环境变量如下,保证sqlldr命令,在任意位置执行能生效。

vi ~/.bashrc

# Oracle Settings

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

export NLS_LANG=AMERICAN_AMERICA.AL32UTF

 

配置好了后,然后再执行下 source ~/.bashrc
在服务器任意位置执行sqlldr,输出一下内容,代表sqlldr 配置成功。

附件列表

0

文档内容仅供参考
如果您需要解决具体问题,还可以登录亿信社区
在提问求助板块提问,30分钟内帮您解决问题

如果您认为本词条还有待完善,请编辑

上一篇ORACLE装卸载组件@

下一篇循环节点组件@

请先登录