Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture SSI整合大量数据-建议_Architecture_Ssis_Workflow_Ssis Data Flow - Fatal编程技术网

Architecture SSI整合大量数据-建议

Architecture SSI整合大量数据-建议,architecture,ssis,workflow,ssis-data-flow,Architecture,Ssis,Workflow,Ssis Data Flow,我需要整合来自30个数据库和20个表的数据。我的第一次尝试是为每个表创建一个数据流。每个数据流将有30个db源,从每个db的1个表中获取数据,然后插入1个目标。这不起作用,因为内存不足。我试图过滤数据以忽略那些不会被使用的数据——这没有帮助。这些任务应每天执行。整个合并数据库被删除,然后插入新数据,这意味着每天都会插入大量数据。有人对如何处理记忆问题有什么建议吗 目前我看到的唯一解决方案是创建20个包。每个包将有30个数据流。每个数据流只从一个数据库获取数据。但话说回来,我不知道执行的顺序是什么

我需要整合来自30个数据库和20个表的数据。我的第一次尝试是为每个表创建一个数据流。每个数据流将有30个db源,从每个db的1个表中获取数据,然后插入1个目标。这不起作用,因为内存不足。我试图过滤数据以忽略那些不会被使用的数据——这没有帮助。这些任务应每天执行。整个合并数据库被删除,然后插入新数据,这意味着每天都会插入大量数据。有人对如何处理记忆问题有什么建议吗

目前我看到的唯一解决方案是创建20个包。每个包将有30个数据流。每个数据流只从一个数据库获取数据。但话说回来,我不知道执行的顺序是什么?一个包的数据流是同时开始执行还是逐个执行

编辑:

我就是这样做的。。。以下是控制流的屏幕截图:

数据流截图:

我从所有数据库中为一个表创建了一个包。在本例中,每个数据流从表中获取4年前的数据并导入到源数据库。问题是,我在一个数据库中有一个表,它包含太多数据,并且返回错误:

缓冲区管理器未能调用10484608字节的内存分配, 但无法调出任何缓冲区以减轻内存压力。20 考虑了缓冲区,锁定了20个缓冲区。要么是内存不足 可用于管道,因为未安装足够的,其他 进程正在使用它,或者太多的缓冲区被锁定


有什么建议吗?

如果您计划在SSIS中执行此操作,我会给出以下建议

  • 假设数据库DB1、DB2中有表A、B、C…、R、s、T。。。DB30。以及MainDB中的整合数据库


  • 创建一个SSIS包,该包将包含一个或多个数据流任务,以将数据从数据库DB1中的表传输到数据库MainDB中的表。为此,可以使用OLEDB源从DB1检索数据。如果必须应用某些转换,可以通过适当的转换任务来实现。要将数据插入目标表,可以使用OLE DB目标

  • 在包配置文件(dtsConfig)中保存连接字符串

  • 创建30个不同的配置文件,每个文件包含30个数据库的连接字符串

  • 您可以在SQL Server代理下创建30个SQL作业来安排每日运行

  • 每个SQL作业将运行相同的SSIS包,但使用相应的配置文件指向正确的数据库

  • 其他选项包括

  • 使用。你需要一个两步的过程。使用SQL作业截断MainDB中的数据,然后在数据库之间同步数据

  • 使用商业产品,如或


  • 希望这能给你一个想法。

    完全相同的结构,每天执行一次。“创建一个SSIS包,在数据库DB1和MainDB之间同步20个表。”-你说的“同步”到底是什么意思?我不明白这一步。谢谢你的回答!我已经编辑了我的问题。。。问题在于内存,显然这种方法试图处理太多的数据。谢谢你的帮助!这个答案缺少一些细节,让初学者可以理解。。。以下是我最后得出的结论:1)这是我在数据流任务中使用的插入/更新/删除记录的方法:2)使用FOREACH循环:3)如果遇到内存问题,这可能是解决方案之一: