很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞

SQL*UnLoader2是一款高效的Oracle数据导出工具,由阿里巴巴DBA团队使用并优化,支持自定义导出格式及列分隔符等特性,实测每秒导出超过28万条记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个写代码的夜猫子 2017-09-22 16:58

SQLLDR2 介绍

每周发表一篇数据库或大数据相关的帖子,敬请关注

1. 工具介绍

Sqluldr2(SQL * UnLoader 第二版)是灵活与强大的 Oracle 文本导出程序,已被大众使 用许多年了,有上千个国内外 DBA 在使用它或使用过它,并在使用的过程中提出了宝贵实 用的改进需求,在完善了众多真实客户的需求后,最终形成了现在的稳定版本。Oracle 有一 个工具叫 SQL*Loader(sqlldr)是用来将文本文件装载到数据库中的,而这个工具是用来将 Oracle 中的数据导出成文本的,因此取名为 SQL*UnLoader(sqluldr),而最后的 2 是因为第一 版是用 OCI 7 接口写的,而现在发布的是用 OCI 8 接口重写的,是第二代的意思。学会这样 的好工具,在遇到数据迁移需求时,可以让 DBA 轻松自在地完成任务。

1.1. 导出效率:

阿里巴巴(Alibaba)集团的 DBA 几年前就开始用 sqluldr 从生产系统中导出巨量数据给数据仓库分析,并在真实应用环境下 创下了我所见过的文本导出速度的最高记录, 总共用了 595 秒钟导出了 171 135 273 条记录, 平均每秒 287622 条记录。

1.2. 下载地址:

很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞

2. 工具安装

2.1. 下载安装包并解压

很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞

2.2. 配置环境变量

要运行Sqluldr2必须要安装Oracle的客户端(Oracle客户端的安装方法不在这里讨论),并配置LD_LIBRARY_PATH环境变量.

export LD_LIBRARY_PATH=/opt/oracle/product/11.2.0/dbhome_1/lib:$LD_LIBRARY_PATH

将其中的/opt/oracle/product/11.2.0/dbhome_1/lib替换成你自己的客户端安装目录.

2.3. 执行实例

2.3.1. 查看帮助

选项 格式 作用

query select 指定一个SQL 语句,通常用双引号括直来。

sql 文件名 指定包括SQL 语句的文本文件名。

field 分隔符 指定字段分隔符,默认为逗号

record 分隔符 指定记录分隔符,默认为回车换行,Windows 下的换行

2.3.2. 导出一个表的全部数据

很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞

1258万条数据,导出只需要100秒左右,效率还是可以的。

2.3.3. 导出一个表的部分数据

很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞

2.3.4. 导出时指定列分隔符

在上面导出时导出的文件内容如下

很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞

可以看出列分隔符为“,”,你也可以手动指定列分隔符.

很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞

通过field属性手动指定列分隔符.同理你也可以通过record属性指定行分隔符.

2.3.5. 指定导出文件的风格

通过text属于指定导出文件的风格

很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞

可以看出在列类型为varchar2和date的列的导出数据上分别加了双引号.

2.3.6. 优化

array 数字 指定 Array Fetch 的大小

read 数字 Oracle 一次读的最大块数

sort 数字(单位:MB) 指定排序区的大小

hash 数字(单位:MB) 指定 Hash 区的大小

serial yes 指定当全表扫描时用 direct path read

很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞

通过指定array的大小为20000后,发现导出的速度相比之前快了很多,1258万条数据只用了17秒.其余的几个属性请自己动手验证.

内容来自互联网,如有侵权通知后删除 sqluldr2是一款Oracle数据快速导出工具,包含32、64位程序,sqluldr2在大数据导出方面速度快,能导出亿级数据为excel文件,另外它的导入速度也是非常快速,功能是将数据以TXT/CSV等格式导出,有需要的赶快下载吧! oracle数据导出工具sqluldr2 基本简介   下载完sqluldr解压后,文件夹内容如下:   sqluldr2.exe 用于32位windows平台;   sqluldr2_linux32_10204.bin 适用于linux32位操作系统;   sqluldr2_linux64_10204.bin 适用于linux64位操作系统;   sqluldr264.exe 用于64位windows平台。 使用方法   1、首先将sqluldr2.exe复制到执行目录下,即可开始使用   2、查看help 帮助 sqluldr2 官方下载   3、执行数据导出命令   3.1、常规导出   sqluldr2 test/test@127.0.1.1/orcl query="select * from temp_001" head=yes file=d:\tmp001.csv   说明:head=yes 表示输出表头 oracle数据导出工具sqluldr2   3.2、使用sql参数   sqluldr2 test/test@127.0.1.1/orcl sql=test_sql.sql head=yes file=d:\tmp001.csv   test_sql的内容为:   select * from temp_001 sqluldr2 官方下载   3.3、使用log参数   当集成sqluldr2在脚本中时,就希望屏蔽上不输出这些信息,但又希望这些信息能保留,这时可以用“LOG”选项来指定日志文件名。   sqluldr2 test/test@127.0.1.1/orcl sql=test_sql.sql head=yes file=d:\tmp001.csv log=+d:\tmp001.log oracle数据导出工具sqluldr2   3.4、使用 table 参数   当使用 table 参数时,在目录下会生成对应的ctl控制文件,如下语句会生成temp_001_sqlldr.ctl文件。   sqluldr2 test/test@127.0.1.1/orcl query="select * from temp_001" table=temp_001 head=yes file=d:\tmp001.csv sqluldr2 官方下载   生成的控制文件temp_001_sqlldr.ctl的内容如下: oracle数据导出工具sqluldr2   4、主要参数说明   Field 分隔符 指定字段分隔符,默认为逗号   record 分隔符 指定记录分隔符,默认为回车换行,Windows下的换行   quote 引号符 指定非数字字段前后的引号符   例如现在要改变默认的字段分隔符,用“#”来分隔记录,导出的命令如下所示:   sqluldr2 test/test sql=tmp.sql field=#   在指定分隔符时,可以用字符的ASCII代码(0xXX,大写的XX为16进制的ASCII码值)来指定一个字符,常用的字符的ASCII代码如下:   回车=0x0d,换行=0x0a,TAB键=0x09,|=0x7c,&=0x26,双引号=0x22,单引号=0x27   在选择分隔符时,一定不能选择会在字段值中出现的字符
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值