【发布时间】:2018-09-21 10:42:52
【问题描述】:
有一个进程有巨大的ETL进程,最后它把数据转储到Ddatabase ABC的表X中 我想在不同服务器的数据库 DEF 上的表 Y 上创建该表的镜像。
我为此创建了一个触发器,它将在插入表时推送数据。 但后来才知道 ETL 过程会删除表并重新创建它。 这也会导致触发器丢失。
我可以通过什么方式实现此过程以在另一个服务器数据库上制作表的精确副本。
编辑:
a) 我对 ETL 过程没有任何控制权。因此,我无法对其进行任何修改,并希望保持流程离散。
b) 我无法截断表 Y,因为链接服务器不支持 DDL,因此我想删除表 Y 然后插入
【问题讨论】:
-
建表后重新创建触发器?但是,这可能会使您的 ETL 非常慢(因为它会加载到您的表中,并继续触发触发器)。当 ETL 进行时,您希望在另一台服务器上发生什么?如果表在服务器 A 上被删除,您是否希望它在服务器 B 上被删除?在另一台服务器上配置链接服务器会不会更容易?
-
不应在其他服务器上删除表。但是,触发器将删除表 Y 中的所有数据,并将表 X 中存在的所有数据插入其中。 P.S:我不想对现有的 ETL 流程进行任何更改
-
嗨。请通过帖子编辑进行澄清,而不是 cmets。
-
当然...我会编辑帖子。
标签: sql-server database-design triggers