使用 ssis 将一些数据从一组相关表复制到另一组

Copy some data from one set of related tables to another using ssis

我需要将 10 天前的数据存档到存档数据库 tables,你能帮我理解如何将数据从一组相关的 tables 复制到另一组,包括依赖行,同时保留行之间的正确关系。

这是显示 table 的源集和目标集的数据模型的图表:

存档数据库中的相同 table 结构。

您应该可以使用 "Data Flow Task" 来实现此目的,可能每个 table 一个。只需从没有任何依赖关系的 table 开始(图中的 table A),然后使用适当的方法将数据从源 table 复制到目标 table SSIS 工具箱中的数据源和目标组件。之后复制仅依赖于这些前table的table的数据(table B)等等。

如果源 tables 中的主键列以某种方式计算(例如通过使用身份增量),则它们在存档 tables 中的各自列应该具有相同的数据类型,但是,不应计算它们,因为这会扰乱您的依赖项。不过,它们仍然可以是主键。

更新: 关于 10 天前的 部分:在您的数据源组件中,您可以使用 SQL 查询仅阅读您需要的特定行。只要能保证 SSIS 作业不是一天开始运行到午夜过后(即一天完全运行),就可以计算这些查询的 WHERE 条件中的日期部分。更简洁的解决方案是计算第一个数据流任务之前的日期,然后将其作为变量传递给每个数据流任务。这样您就可以确保所有查询都使用相同的日期值。