1.组件概述
Oracle 装载组件、卸载组件常常用于Oracle 数据库之间的大数据量的数据传输场景。
项目上使用传统的表输入-表输出的形式针对大数据量的情况下,性能往往与预期相差较大。
Oracle卸载组件:将数据输出成文件的形式.来源库必须为oracle库。
Oracle装载组件:将文件读取到Oracle数据库.目标库必须为oracle库。
2.前置步骤
①.Oracle装载组件、卸载组件依赖于oracle数据库工具sqlludr 、sqlldr .其中sqlldr为oracle数据库中自带的工具。Sqluldr2 为第三方工具需要手动安装部署。具体步骤见部署手册。
②.边缘采集节点程序,由于微服务集群模式下,产品只能读取工作目录下的文件,导致装卸载文件读取存在一定局限性,所以微服务之后的产品版本,该组件支持边缘采集节点的配置,通过配置边缘采集节点,打破该组件的局限性。
③.需部署oracle数据库或oracle数据库客户端,且oracle客户端需与sqluldr2 、边缘采集节点部署在同一台服务器上。
场景一:其他库——>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 可能需要注意外键约束的问题。
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 配置成功。

请先登录