问题描述
筒子们,你们有谁做过这个吗?连接客户的Oracle数据库,同步他们的数据,同步更新到自己公司的数据库,并且判断操作的数据是新增、修改还是删除
解决方案
解决方案二:
亲们求解呀~
解决方案三:
1.数据量有多大?2.要求的实时性?
解决方案四:
数据库新建一个DBNotify表字段:tableName、propertyName、value、operator分别是表名、属性名、操作的值、操作类型(增删改自己定义)公司这边根据这个表去同步客户的数据库公司和客户之间的交互以及同步更新后的业务逻辑需要商量好或者也可以用一些中间件传递消息
解决方案五:
引用3楼u012171905的回复:
数据库新建一个DBNotify表字段:tableName、propertyName、value、operator分别是表名、属性名、操作的值、操作类型(增删改自己定义)公司这边根据这个表去同步客户的数据库公司和客户之间的交互以及同步更新后的业务逻辑需要商量好或者也可以用一些中间件传递消息
纯属脑补
解决方案六:
你要拿到他的数据结构,沟通是否有自增的字段,然后定时同步就行了,修改还是删除这个你怎么能知道,得问客户啊
解决方案七:
恩,数据结构会给我,但是是新增、修改还是删除需要我这边程序判断,通过查询客户那边的数据和我们库里面的现有数据对比,唉就是单点登录的延伸
解决方案八:
数据量应该挺大的,性能方面还有要求、、、
解决方案九:
引用1楼one_oragle的回复:
亲们求解呀~
什么是要求的实时性?要求每天凌晨开始同步
解决方案十:
他们建立一个操作记录表,然后获取操作记录去更新你们的表.
解决方案十一:
他们的数据中有最后更新时间之类的字段就很容易做了,新增的和删除的可以直接通过minus主键字段来判断,修改的数据根据最后更新时间来判断。如果没有最后更新时间的话,就很慢了,需要每条数据都需要去判断。
解决方案十二:
引用9楼OOCXC的回复:
他们建立一个操作记录表,然后获取操作记录去更新你们的表.
客户不会这么好的。。。
解决方案十三:
1.要是你们用etl,据我所知各种etl工具都有这种日志功能,随便搞搞就行。2.为你的表建触发器,根据创建、更新、删除做不同的操作。为何要比较呢,触发器就会帮你判断对数据的操作。
解决方案十四:
再附上触发器的例子,这里就写个创建的,其他的自己搜搜,看你这需求用这种方式足以。逐行插入test表之前触发:CREATEORREPLACETRIGGERadd8hourBEFOREINSERTONtestFOREACHROWDECLAREBEGIN--向日志表里插入,或者其他什么操作随你高兴END;