我有40个表在一个服务器上的DB之一具有不同的结构,正由数据提供者更新。
我想创建一个SSIS包,它将从该数据提供者数据库中提取数据,并将数据插入,更新或删除(合并)到开发,测试,UAT和prod数据库中。
这些表分别有1m-3m行和20-30列,所有数据库都在SQL Server平台上,并且位于不同的服务器上。
业务要求是每天在特定时间加载数据,并且必须使用SSIS。我是SSIS的新手,希望您的建议能够创造更好的设计。
答案 0 :(得分:0)
我不了解SSIS。
有同步数据库的打包解决方案。
一般只有TSQL
TSQL
delete
tableA a
where not exists (select 1 from tableB b where b.PK = a.PK)
update A
set ...
from TableA a
join TableB b
on a.PK = b.PK
insert into TableA (columns)
select columns
from tableB b
where not exists (select 1 from tableA a where b.PK = a.PK)
答案 1 :(得分:0)
这是一个非常广泛的问题。我可以帮你指点。当你遇到困难时,跟着他们问问题。我会告诉你一张桌子。你必须与其他人并行:
source OLEDB connection
和destination OLEDB connection
。这将用于从源复制到实际数据仓库所在的临时表。Data flow task
。只需将源数据库复制到临时表。您必须实现增量加载逻辑。例如,存储最后一个source.Id并将该Id中的数据加载到最新的。Data flow task
,您必须应用Lookup transformation
来插入和更新数据,同时加载到目标表中。execute sql task
)以上步骤是指导原则。您将拥有多个并行工作的序列容器,每个容器都在DFT之上,在不同的表上工作。