重复造轮子——DataLoader,导入数据文件到数据库表

以前一直使用SQLLoader及PL/SQL Dev导入文本文件Oracle的数据库表。其中SQLLoader导入速度飞快,但是需要Oracle服务端工具支持,在客户端无法直接安装使用。在测试环境中经常将数据文件sftp到服务器上,然后在服务器上执行。而sftp过程中,遇到过以二进制模式传文件时,文件中的分隔符会多出换行符,导致导入出错(文本文件就要以文本模式传输,不要用二进制模式)。而使用PL/SQL Dev导入的话,采用“Text Importer”小文件速度挺快,大文件经常会导致PL/SQL Dev 死掉,且不知道当前导入状态。导致导入文件时不敢点击PL/SQL Dev,一点就死……

前两天又要导入一批文本数据到数据库,不想安装Oracle服务端,便想着写一个小工具来模拟SQLLoader的功能(当然,SQLLoader性能很高,也不是直接执行insert  sql)。

于是一个名为 DataLoader 的工具就产生了,有兴趣的可以看看。之所以重复造轮子,一方面好久没写代码练练手,另一方面,我真的很闲……

好吧,继续说工具。它采用了多线程批量提交的方式,支持一次导入一个文件夹内的所有数据文件。每个文件一个解析线程,每个解析线程一个入库线程。

约束:

  1. 需要文件名前缀与表名一致;
  2. 需要标题行列名与表结构一致;
  3. 所有标题列要在表中存在,且必须导入到表中。目前不支持只导入部分列。
  4. 目前只支持Oracle数据库
  5. ……

 

此条目发表在技术, 未分类分类目录,贴了, , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。