我有2个异构数据库A,B,想把B库中的某张表(数据比较多,估计有1亿条)的数据用xml远程传到本地,再把xml文件解析出来放入A库中,大家觉得在批量数据传输时采用xml是否合理,但涉及到异构数据交换xml又是个不错的选择,大家对此有什么看法?
解决方案 »
- 三色旗算法求其深解!!
- 请问Sun公司依靠什么赚钱的呢?
- java Swing里的如何放置图片?
- Java的基础问题 可是书上确没有写 关于 System.out.print()
- java记事本怎样实现如windows记事本样的查找功能?
- 大家能否简单地告诉我Collections、Lists、Sets、Maps的区别吗?以及Vector、Hastalbe、Lists谢谢了!
- 小问题大问题
- scjp的一道题?
- jbuilder开发中遇到的问题. 好几个.
- java Swing组件不能显示问题,在JTextArea读取java文件,添加读取的文件语句后不能显示组件,添加之前可以显示,新人求教啊 谢谢
- 弱问题讨论,关于运算符的优先级
- 想做一个抽签程序,思路应如何??
是否可以将数据转换成二进制文件,然后压缩传递
因为不能像文本那样用byte数来取数据。
我也碰到过...我也建议分批,因为如果表比较大,XML太大的话,解析起来超慢的.....建议XML文件不要超过1024K.....如果有条件,最好压缩了再传JAVA里面有提供压缩功能的类库......
1.这么大的数据量,使用XML显然不是一个正确的选择。既然是数据库里面的记录,你完全可以把表的结构和数据导出来,然后迁移到你的目标数据库就行。
2.使用消息中间件,如JMS之类的,把表看做对象,在不同的系统之间传递消息就行,这个完全可以借助工具去实现。
3.使用效率高的算法压缩数据,转换成二进制,也是一个选择。
首先,有用信息所占的比率,可能会比较低(大部分都是XML的标签)。
其次,DOM方式生成大型的XML文件,容易爆掉内存。
第三,大文件还要对数据进行整理分析,然后再插入的B库中,效率不如直接用数据库高。
第四,如果A、B两个数据库,是同一种类的数据库,那么,虽然表结构不同,
但仍然可以用工具进行数据迁移。这样效率会高很多。
第五,如果所迁移的数据,不存在多国语言问题,以及BLob、CLob类型,
那么,使用Txt文本,是最简单有效的办法。
先按条件导出相应的Txt文本,然后,直接导入到目标库中。(因为数据库处理数据快)