本人是菜鸟,最近要做个数据接口的东西,大概意思描述如下,希望各位大虾帮忙出主意~~~
源数据库ORACLE中有一张表的数据(或几张表的数据)有用(这些数据实时的进行着更新),需要将这些数据读出来,并且写到另一个数据库中(SQL SERVER/MY SQL/.....)。
希望用两个PC跑传输用的程序,一个用来读取和发送,一个用来接收数据并写到新的数据库中,我现在是没有一点方法和头绪,希望各位大虾指点~~
小弟感激不尽~~~!!
源数据库ORACLE中有一张表的数据(或几张表的数据)有用(这些数据实时的进行着更新),需要将这些数据读出来,并且写到另一个数据库中(SQL SERVER/MY SQL/.....)。
希望用两个PC跑传输用的程序,一个用来读取和发送,一个用来接收数据并写到新的数据库中,我现在是没有一点方法和头绪,希望各位大虾指点~~
小弟感激不尽~~~!!
我想说数据传输部分,一个线程负责循环地在一定时间间隔内(看更新速度而定)从数据库读取更新的的数据,通过socket把数据发送出去,注意每条数据库数据要有个明显的结束符,另一端程序读到这一结束符时才算是读到一条合格的数据;你可以读到一条就处理一条,或者读到一定数量再处理。视更新速度而定,若很快,可考虑多线程处理数据。
不知道大家对这个东西感兴趣么?本人愿意对有兴趣来做这个的朋友支付相应报酬(RMB)~~!!
本人联系可发站内信,或email: [email protected]
可以把每一条数据记录组成一个实体,此实体实现Serializable接口,再把此实体都放到一个LinkedList中,把此LinkedList序列化之后,通过Socket进行传输
用ETL写一个调度不行吗?
数据库操作,也可分为读取和写入两个小部分。
传输也可以分为发送和接收两个小部分。因为传输的数据量比较大,并且,要求传输的数据就有可靠性,
推荐使用TCP协议进行传输。
如果,传输操作进行的比较频繁,推荐使用长连接的形式。数据库操作,基本没有什么特别要说的,只是要注意,
数据库的数据读取部分,要分批次读取,
不要一次将所有数据都查询出来,要想办法每次只查一部分,
当当前查询的所有数据都发送完毕后,在进行下一次查询,直到查询出所有的数据。我想到的最佳的办法,应该是:
1.数据库读取一批数据;
2.将这批数据进行压缩;
3.将压缩后的数据进行传输;
4.传输采用TCP长连接的方式;
5.接收压缩的数据;
6.将压缩的数据进行解压;
7.将解压的数据插入数据库中。当然,对于刚接触Java的朋友,可以略去压缩的步骤,也可以不只用长连接的形式。
工作中,往往对程序设计的要求并不高,只要能用就行。
那么,楼主可以参考一下我的一篇blog,
这篇blog的功能就比较简单了,虽然是传输小文件的,
但,稍加改动就可以传输数据对象。
http://blog.csdn.net/preferme/archive/2009/10/31/4752031.aspx