我需要整合来自 30 个数据库和 20 个表的数据。我的第一次尝试是为每个表创建一个数据流。每个数据流将有 30 个数据库源,它们从每个数据库的 1 个表中获取数据,然后插入 1 个目标。这不起作用,因为没有足够的内存。我试图过滤数据以忽略不会使用的数据 - 它没有帮助。这些任务应该每天执行。整个 Consolidation db 被删除然后插入新数据,这意味着每天插入大量数据。有人对如何处理内存问题有建议吗?
目前我看到的唯一解决方案是创建 20 个包。每个包将有 30 个数据流。每个数据流只能从一个数据库中获取数据。但是话又说回来,我不知道执行顺序是什么?一个包的数据流是同时开始执行还是一个接一个地执行?
编辑:
我就是这样做的……这是控制流的屏幕截图:
数据流截图:
我为所有数据库中的一张表创建了一个包。在这种情况下,每个数据流从表中获取 4 年前的数据并导入到源数据库。问题是我在一个数据库中有一个表,它有太多数据并且它返回错误:
缓冲区管理器对 10484608 字节的内存分配调用失败,但无法换出任何缓冲区以减轻内存压力。考虑了 20 个缓冲区并锁定了 20 个。管道没有足够的内存可用,因为没有安装足够的内存,其他进程正在使用它,或者太多的缓冲区被锁定。
有什么建议么?