Architecture SSI整合大量数据-建议
我需要整合来自30个数据库和20个表的数据。我的第一次尝试是为每个表创建一个数据流。每个数据流将有30个db源,从每个db的1个表中获取数据,然后插入1个目标。这不起作用,因为内存不足。我试图过滤数据以忽略那些不会被使用的数据——这没有帮助。这些任务应每天执行。整个合并数据库被删除,然后插入新数据,这意味着每天都会插入大量数据。有人对如何处理记忆问题有什么建议吗 目前我看到的唯一解决方案是创建20个包。每个包将有30个数据流。每个数据流只从一个数据库获取数据。但话说回来,我不知道执行的顺序是什么?一个包的数据流是同时开始执行还是逐个执行 编辑: 我就是这样做的。。。以下是控制流的屏幕截图: 数据流截图: 我从所有数据库中为一个表创建了一个包。在本例中,每个数据流从表中获取4年前的数据并导入到源数据库。问题是,我在一个数据库中有一个表,它包含太多数据,并且返回错误: 缓冲区管理器未能调用10484608字节的内存分配, 但无法调出任何缓冲区以减轻内存压力。20 考虑了缓冲区,锁定了20个缓冲区。要么是内存不足 可用于管道,因为未安装足够的,其他 进程正在使用它,或者太多的缓冲区被锁定Architecture SSI整合大量数据-建议,architecture,ssis,workflow,ssis-data-flow,Architecture,Ssis,Workflow,Ssis Data Flow,我需要整合来自30个数据库和20个表的数据。我的第一次尝试是为每个表创建一个数据流。每个数据流将有30个db源,从每个db的1个表中获取数据,然后插入1个目标。这不起作用,因为内存不足。我试图过滤数据以忽略那些不会被使用的数据——这没有帮助。这些任务应每天执行。整个合并数据库被删除,然后插入新数据,这意味着每天都会插入大量数据。有人对如何处理记忆问题有什么建议吗 目前我看到的唯一解决方案是创建20个包。每个包将有30个数据流。每个数据流只从一个数据库获取数据。但话说回来,我不知道执行的顺序是什么
有什么建议吗?如果您计划在SSIS中执行此操作,我会给出以下建议
其他选项包括
:
希望这能给你一个想法。完全相同的结构,每天执行一次。“创建一个SSIS包,在数据库DB1和MainDB之间同步20个表。”-你说的“同步”到底是什么意思?我不明白这一步。谢谢你的回答!我已经编辑了我的问题。。。问题在于内存,显然这种方法试图处理太多的数据。谢谢你的帮助!这个答案缺少一些细节,让初学者可以理解。。。以下是我最后得出的结论:1)这是我在数据流任务中使用的插入/更新/删除记录的方法:2)使用FOREACH循环:3)如果遇到内存问题,这可能是解决方案之一: