代码之家  ›  专栏  ›  技术社区  ›  Anonymouslemming

ssis适合我的问题吗(用于查询的数据库复制)

  •  0
  • Anonymouslemming  · 技术社区  · 15 年前

    我有一个挑战,我正试图解决,我无法从文件或示例,如果ssis适合我的问题。

    我有两张桌子(工作和任务)。工作代表着一大块工作,而任务则与工作联系在一起。每个作业通常有1个任务到1000000个任务。每个任务都有一列存储作业ID。作业表中的作业ID是主键。

    每N个小时,我想做以下事情:

    1. 获取自上次运行以来作业已完成的所有作业行(基于具有结束时间值且该值在从现在到上次运行之间的时间内),并将其添加到“查询”数据库的“作业”列中。

    2. 将具有作业ID的所有任务从步骤1中包含的作业复制到“查询”数据库的“任务”列中。

    基本上,我希望能够定期更新查询数据库,但我只希望包含已完成的作业(因此需要结束时间)和这些已完成作业中的任务。

    这可能是每天2-3次,这样用户就可以查询实时数据的最新副本。

    ssis是否适合此任务,如果适合,请提供一些文档,以显示将第1步结果中的列用作第2步标准的位置?

    提前谢谢…

    1 回复  |  直到 15 年前
        1
  •  0
  •   HLGEM    15 年前

    当然SSIS可以做到。

    如果要确保子记录已移动,请对第二个数据流的数据流源使用查询。将记录插入第一个数据流中的主表。然后使用一个查询来选择源子表中不在目标子表中且在父目标表中有记录的任何记录。这样,您也可以捕获对现有已关闭记录的任何更改(您知道会有一些更改,有些更改会很快关闭作业,然后重新打开并向其中添加某些内容)。

    或者,可以将要移动的记录添加到临时表中。然后在对子表执行数据流时加入到该表。这将确保您移动的记录正是填充子表的记录。

    或者,如果您在一个非规范化的数据仓库中,只需编写一个查询,将父表和子表与结束日期的where子句连接在一起就可以了。当然,不要忘记检查当前不在数据仓库中的记录。