我们正在设计从MAS200这样的外部源导入到生产Server 2005/2008数据库中的数据。源将是一个事务性数据库,并且是安全/隔离的。我们需要使数据库与源保持同步,以便定期进行数据同步。
我们可以自由地请求任何类型的源数据,比如CSV、txt文件,甚至可以在另一个具有类似结构的SQL数据库中获得源数据。我们需要选择导入数据的最佳方式--它将是周期性的,可能是每小时或每天进行的。
根据我的经验,我认为在SQL数据库中拥有源数据可能是最好的入门方式。这是我们迄今为止得出的一个粗略的设计-
总之,我们将打破存储过程中的步骤,然后创建一个SQL作业,它将一个接一个地遵循这些步骤。我知道有很多方法可以做到这一点,SSIS,数据导入向导等等。但我们需要保持它相当简单,易于移植,不那么依赖和灵活的未来变化。
注意:数据将是巨大的-上一次我们有一个类似的设置,它花了几分钟,像几乎20-25分钟来完成整个数据导入过程,所以我们安排了一个小时的数据导入。
谢谢。
更新#1:我理解使用合并命令似乎是最好的。但是如果我必须为Server 2005创建它呢?我相信它在2008年以后会起作用。我找到了一个链接-
http://sqlserver-tips.blogspot.com/2006/09/mimicking-merge-statement-in-sql.html
2005年还有其他想法吗?
发布于 2011-11-16 13:49:28
对于第3项和第4项,如果使用Server 2008,请考虑使用MERGE命令,而不是使用游标和循环
如果可能,保留源db的未触及副本,如果数据处理中有任何问题,您可以更容易地跟踪原因。
发布于 2011-11-16 14:09:17
你考虑过使用Server集成服务吗?听起来你的项目非常适合它。
我最近参与了一个项目,该项目从各种数据源(数据库和文件)中提取数据,对其进行聚合和清理,然后将其推入关系型Server 2008数据库。在SSIS里这一切都很直接。
发布于 2011-11-16 14:22:59
正如其他人所说,在这个过程中没有必要使用游标;我也同意SSIS可能比您想象的更适合这种情况(因为它是可移植的和可配置的)。但是,如果要在that中执行此操作,则建议您将获取步骤替换为如下所示:
很简单,没有游标。
https://stackoverflow.com/questions/8152542
复制相似问题