在google code上开了一个java版的ETL小工具project:jmyetl
来源:互联网 发布:八皇后问题 python 编辑:程序博客网 时间:2024/05/22 06:46
以前,曾经利用各数据库底层C-API作wrapping,实现了若干异构数据库间数据导入导出的功能,但是代码复杂,不便开源。
下午,用java写了一个简单的数据抽取程序,实现MySQL数据库到Sybase ASE的数据移植。将它开源,放到:http://code.google.com/p/jmyetl/ 上边了。本来取名做myetl,结果已经有人在sf.net上申请了,后来在其前加上一个j。以示java版本。
有兴趣的可以试用一下。
目前,可以是某用户的全库数据导入,也可以选择性的导入若干张表。
因为刚实现一个初步框子,所以定为0.9.0版。
打算以后有空再写些别的库间ETL,最后再重构,组合。
使用方法:
当前目录下边有一个xml配置文件etl_config.xml,其格式如下:
直接运行myEtl.bat即可实现导入。如果去掉<table>那一块的注释,则全库导入。
注意字符集选项,如果没有这个配置,很容易出现乱码。
目前的限制条件是:
不要使用数据库超级用户来配置连接,因为目前程序里边没有对系统表进行过滤。
后期计划:
Sybase ASE --> Sybase ASE
Sybase ASA --> Sybase ASE
Sybase ASE --> Sybase ASA
Oracle --> Sybase ASE
DB2 --> Sybase ASE
SQL Server --> Sybase ASE
逆向导入,以后有时间再做。
已有功能:
1. 能保持表结构几乎一致,类型兼容
2. 日志文件etl.log里会记录导入的详细过程以及中间可能出现的出错信息
3. 目标表,会建立与源表一样的主键结构
4. 目标表会创建与源表一致的identity信息
5. 通过字符集一致性配置,会保持源表中的字符集到目标表,不致乱码。
待改进功能:(下述功能,是细致一些的功能,适用目的不同,如果只是简单的抽取数据,则不需要)
1. 添加与源表一致的foreign key constraints (这个稍微有点复杂,会增加导入时间)
2. 添加与源表一致的index功能,即附加创建的索引也在目标表上体现出来
其实,以前用C++ wrapper实现的原理与java版本比较接近,相比JDBC而言,它能操纵更多底层的API,获取更丰富的信息,只是代码量可能比较大。
<script type="text/javascript"><!--google_ad_client = "ca-pub-7104628658411459";/* wide1 */google_ad_slot = "8564482570";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 在google code上开了一个java版的ETL小工具project:jmyetl
- 一个在pc上显示手机屏幕的小工具droid
- Google有意思的一个小工具Google Sets
- 在 Google Code 上申请 Project
- 在 Google Code 上申请 Project
- ETL小工具
- 在 google project 上又新建了一个项目,关于JSTL增强方面的。
- 在 google project 上又新建了一个项目,我整理,翻译或原创的文档。
- 在 Code Google 上建了一个工程.
- 时间都去哪儿了?开源一个统计iPhone上App运行时间和打开次数的小工具
- JAVA的一个String连接小工具
- Java IO流的一个小工具
- 开发了一个小工具
- 正式发布jmyetl-1.0.2:一个表数据导入导出的ETL工具
- 领域驱动设计思想在一个小工具上的实践
- JS_小工具_自己写了一个画像素画的小工具
- 无事,故汉化了一个GBA的小工具
- 写了一个管理桌面图标的小工具
- php表单数据的验证
- C/C++板块常见问题集
- extjs文件上传成功后,却弹出了下载框!
- svn 大小写问题
- php URL编码解码函数
- 在google code上开了一个java版的ETL小工具project:jmyetl
- PB 代码的架构模型
- 字符函数库#include
- CodeSmith 实例2
- JavaScript与ActionScript函数相互调用
- 如何学习Hibernate
- Macro Scheduler——非常强大的宏记录工具
- ExtJs 编辑工具spket
- cppunit在mfc中的用法