【发布时间】:2011-08-27 01:14:22
【问题描述】:
我们有一个从各种外部系统更新的源表。我要求目标表(在不同的服务器中)与此源表同步。目标表不是源表的精确副本,在将数据插入/更新到目标表之前必须进行一些数据处理。
我想到了以下逻辑
我们每 15 分钟运行一次这个 java 消费者代码,它会获取创建时间戳的记录,而不是之前更新的记录,并存储在 CachedRowSet 中。并调用以CachedRowSet为参数的存储过程,完成数据处理并将数据插入/更新到目标表中。
您是否认为上述方法是一种有效的方法,因为我们每次更新都会处理超过一百万条记录?
当源表中的一条记录被删除时,上述方法也不会被复制!你能建议在这种情况下该怎么做
【问题讨论】:
-
当你根据时间戳进行同步时,你应该确保两台服务器也从同一个(NTP)服务器同步它们的时钟......不过我宁愿设置一个主从,复制远程位置上的数据,根据需要进行处理(存储很便宜,您可以将所有同步问题留给数据库本身),然后将处理后的数据存储在单独的表中。
标签: java sql database optimization jdbc