论坛首页 入门讨论版 设计模式

两个系统,数据导入导出的问题

浏览 332 次
该帖已经被评为新手帖
作者 正文
最后更新时间:2008-07-10
想问下各路高手
现在有两个系统A,B

A系统中某医院中已存在的,B系统是我们正在开发中的.

A系统中允许我们使用他们的数据库(可以建视图),不能动程序

现要求从A系统中提取有用数据字段,导入到我们的系统中,要求批量导入和单条导入

导入的过程中,会涉及B系统中的多张数据表.也就是A系统中的一条数据,导入到我们系统中会影响我们系统中的多张数据表?

批量导入的时候,最好不要取用单条导入的形式,这样速度太慢?

请问有经历过的朋友如何解决此类问题?
   
最后更新时间:2008-07-10
别导入外健
   
0 请登录后投票
最后更新时间:2008-07-10
我以前项目中也遇到过类似情况,不过我们的项目中是将A系统中的多个表关联导入到B系统的一个表中,由于中间还需要进行A系统表中提取的数据进行计算处理,所以我们当时是写了中间程序进行专门导库处理,记录每天大概100W条记录。每天定时执行一次。
   
0 请登录后投票
最后更新时间:2008-07-10
cyberblue 写道
别导入外健

现在不是这个问题,是流程的问题,批量导入流程不知道怎么走
   
0 请登录后投票
最后更新时间:2008-07-10
这种问题我遇到过,我之前是做新旧系统的数据移植,新旧系统的数据结构完全不同,结果是我直接用Java写了一个程序进行数据移植(两个数据库是不同的数据库,MySQL > Oracle),开始为了方便使用Hibernate,后来发现大批量数据处理Hibernate确实是瓶颈,改用JDBC,100万级的数据由2天变成2小时。

注意,转移过程中一定要做数据完整性检查。还有,在转移的时候,可以考虑为源数据库增加临时索引,而把目标数据库的所有索引暂时屏蔽掉,这会大大提高转移效率。
   
0 请登录后投票
最后更新时间:2008-07-10
我的经验的,使用JDBC batch insert操作,能大幅提高性能。
   
0 请登录后投票
最后更新时间:2008-07-10
johnnylzb 写道
这种问题我遇到过,我之前是做新旧系统的数据移植,新旧系统的数据结构完全不同,结果是我直接用Java写了一个程序进行数据移植(两个数据库是不同的数据库,MySQL > Oracle),开始为了方便使用Hibernate,后来发现大批量数据处理Hibernate确实是瓶颈,改用JDBC,100万级的数据由2天变成2小时。

注意,转移过程中一定要做数据完整性检查。还有,在转移的时候,可以考虑为源数据库增加临时索引,而把目标数据库的所有索引暂时屏蔽掉,这会大大提高转移效率。

谢谢,这些是细节的问题,主要是导入的过程怎么去做,代码的思路?
   
0 请登录后投票
最后更新时间:2008-07-10
感觉单条导入直接用jdbc连接程序搞定就成;批量导入可以试试在B数据库中创建临时表,用程序同步A的数据,然后在B内用DBMS分开数据……
   
0 请登录后投票
最后更新时间:2008-07-10
按照我的习惯,只倒入少量而且重要的,比如人员列表,其他大量而且不常用的就不导入,留在原来那台服务器里(如果不怕费那点电的话),然后把查询结果混合到一起。
   
0 请登录后投票
最后更新时间:2008-07-10
如果是mysql,可以采用把数据存到文本文件中,然后用shell,执行loaddata操作。loaddata是我目前见到过的最快的。我曾经在一张表里面倒入7000w的数据,时间在15m左右。mysql5。2*2核cpu。4G内存。sata硬盘。
   
0 请登录后投票
论坛首页 入门讨论版 设计模式

跳转论坛:
JavaEye推荐