再问.怎么实现数据同步?
存在A B 2个数据库,数据结构(包括表名,字段名以及表结构,表关系等)都不同
A库为数据提供商提供数据后的中央库数据结构不可以变动,数据更新量在2000~5000/天左右,保存量现在有4年份
B库为应用数据库(我这边敲代码后实际要用到的库)公司计划对开发模式做个转变,以后每个平台都是从中央库分离出个别库后再行开发,减少中央库的结构改写
上次问的时候游人说做事物复制或者 服务器发布/订阅.不过看过以后好想都是一数据库快照的方式来进行同步的,好像没涉及到数据结构的改变什么的,所以只能重新来问下.
A B库之间的关系是 同数据服务引擎或者是不同数据引擎
现在想到的数据同步方式是2种:当有数据更改(I/D/U)时A库向B库做推送;定时由B库向A库请求新数据.
1.在同数据服务引擎上,可以在A库的表中做触发器将插入的数据按照B库的格式进行推送.但是应为2库之间表名和字段名几乎都是不同的,所以用数据库级的触发器难度比较大,但是没个表触发工作量又过于庞大(用到大概40~50个表,数据提供商提供了600+个表....),维护一不是很方便,而且不同数据需求的平台一多,一些主数据表势必要挂很多触发器或者触发器结构变的很复杂,不方便维护.
Q1.有没有更理想的方式在实现这种数据推送?
2.在不同的数据服务引擎上,现在看下来好像只有靠服务器的发布/订阅机制来实现(可能我没找到吧),但是用这种方法的话貌似只能取得数据数据快照或者副本而已,并不能对传送过来的数据进行重新搭建结构.
而且分离小数据库出来本来的目的就是为了减少数据量(有些平台需要6个月数据,有些只需要4~8周的就可以,公司好像没打算对中央数据库的旧数据进行清理)以便提高查询效率和降低维护难度
Q2怎么在实现A->B的推动或者B->A的订阅的同时,将A库中的数据格式化成B库中的数据结构,并且只提取我所需要的种类,保留最低限度的纪录量
只有100分了,将就下吧