Ssis 创建集中式数据库

Ssis 创建集中式数据库,ssis,ssis-2005,ssis-2012,ssis-2008,Ssis,Ssis 2005,Ssis 2012,Ssis 2008,我在不同的服务器(B&C)中有两个同名的数据库(A)。这两个数据库具有相同的模式。(sql server 2008 r2) 任务1:将两个数据库复制(传输)到第三台服务器(D)中,并使用名称(A\u B和A\u C) 任务2:将两个数据库合并为一个数据库(A\D)。(我不知道如何处理钥匙) 任务3:每天我都要从服务器B&C获取数据,并将数据放入集中式服务器D中 任何帮助都将不胜感激 谢谢 Ritesh以下是一些想法: 任务1:通过备份和恢复服务器D来传输数据库 任务2:我认为这将涉及ETL过程和

我在不同的服务器(B&C)中有两个同名的数据库(A)。这两个数据库具有相同的模式。(sql server 2008 r2)

任务1:将两个数据库复制(传输)到第三台服务器(D)中,并使用名称(A\u B和A\u C)

任务2:将两个数据库合并为一个数据库(A\D)。(我不知道如何处理钥匙)

任务3:每天我都要从服务器B&C获取数据,并将数据放入集中式服务器D中

任何帮助都将不胜感激

谢谢

Ritesh

以下是一些想法:

任务1:通过备份和恢复服务器D来传输数据库

任务2:我认为这将涉及ETL过程和在数据库中创建新的代理项。在数据源id列中保留原始源的项。我认为发表声明会有帮助

任务3:利用任务2中的逻辑

任务2的更新:

假设数据库a和B中的源
Table1
有一个名为
Table1\u ID
的键列。在数据库中添加列
Table1\u SourceID
Table1\u Source
。使用源数据库中的键填充
Table1\u SourceID
,并使用
Table1\u source
指示源数据库


使用
Table1\u ID
作为
Table1
的键,该键对数据库A\u D是唯一的。这将解释源数据库中键列的冲突。此外,还可以将行跟踪到源数据库

任务1:创建没有结构的目标数据库。我将在SSMS中的源数据库上使用tasks->
export
函数和create structures选项。导出后,您将在目的地获得准确的副本

任务2:
A\u D
的每个表中创建一个新的键列(SurKey)。它必须是一组值的组合,这些值将在整个表中给出唯一的值。例如,源表
缩写+主键列+日期

对于每个表,在SSIS包中创建两个数据流,从
A\u B
A\u C
加载数据。放置一个
派生列
组件,该组件将添加一个新列-SurKey

A_B
数据流中,将
A_B
作为缩写,将
A_C
放在第二个


任务3:使用您创建的数据流。在SSMS中编写作业脚本,并将其添加到每日计划中

对于任务2:你能不能再多解释一点。主要问题是,两个db都有相同的表和ID,如何将它们分开。因为相似表中的某些数据可能都有相同的键。谢谢Mike。。。我会努力的,让你知道它是如何进行的。非常感谢你的回答。只有一个问题。。。如果(A_B和A_C)中的表结构稍有不同(意味着很少有表具有更少或更多的列以及不同的数据类型)。。这个方法有效吗?..然后我将创建一个数据流,有两个源,添加带有代理键的派生列,然后
Union All
组件。