日期:2014-05-18  浏览次数:20528 次

难度比较大的数据整合问题,看有人会吗?
这个方案应该能满足以下的要求
1. 多个SQL数据源,但是所有这些数据源的schema都是一样的,数据不一样,但是有可能存在重复。
2. 多个数据源的数据要拷贝到同一个目标数据库,要涉及到数据的整合去重。
3. 数据源的个数可能以后会有添加。
4. 数据源分布在多个域上,也就是说会涉及到跨域访问的问题。
5. 每个源的数据增长速度可能不完全相同,有的可能会非常快。
6. 数据同步是单向的,只有多个源到同一个目标。目标不会有任何改动。
7.源数据的更改必须能同步到目标,也就是说对于已经同步过的数据在源系统做了修改,那需要重新同步。

目前考虑个的两个方案,一个是SQL replication另外一个是SSIS+BCP,似乎都不能很好地满足要求。

SQL replcation方案在多个源re-initialization会造成目标数据库的数据被重写,丢掉从其他源过来的数据,另外跨域访问好像也有问题。

SSIS+BCP似乎不能很好地满足第七条,求高手支招,在这个板块级别太低只能给100分了。

------解决方案--------------------
这只是一个数据同步的需求
这个需求复杂了一点,多数据源 + 数据更新同步(增、删、改)
但是,这些数据源存在的冲突又如何处理? 楼主好像没有说明一下。

后续如何使用这些数据,要将这些数据完全去重,整合在一起,是否还有其它要求?

如果按字面理解,假设数据源和目标库都一样,都是ORACLE,DBLINK+PRC+触发器 就可以解决所有问题
------解决方案--------------------
探讨
引用:

首先按照sz_haitao说的加入一个字段Datasource,好的方法是加入一个table DataSource(SourceID, Source, des,...)
定义好数据重复的依据,相当于Natural Key;
从任何数据源Pull数据时,首先给数据添加一个信息SoruceID,然后再做Upsert处理;
SSIS可以完成这类工……

------解决方案--------------------
探讨
引用:

引用:
引用:

首先按照sz_haitao说的加入一个字段Datasource,好的方法是加入一个table DataSource(SourceID, Source, des,...)
定义好数据重复的依据,相当于Natural Key;
从任何数据源Pul……