ssis - 将不匹配的查找行插入表后如何继续该过程?

标签 ssis dataflow union-all

在数据流内部,是否可以进行查找、插入不匹配的行、重新查找然后继续完整(原始)数据集?

我看不到在插入的行转到 OLE DB Destination 后如何获取/重新使用它们,我也看不到 Multicast可以等到查找插入分支完成(然后将所有它们重新合并)。

如果它不能在数据流内部完成,我是否必须在以前的数据流任务中重复我的所有过滤逻辑,以便首先执行查找插入?

这可能是一个明显/已经回答的问题,但搜索后我找不到太多。

最佳答案

这在单个数据流中是不可能的。如果你用足够的谷歌搜索,有各种各样的“解决方案”,但它们忽略了行在缓冲区/批处理中沿着数据流向下行进,并行处理的架构现实。

因此,图像中有多个"new"行到达 2 个相邻的缓冲区。无法确保在缓冲区 2 命中上游查找之前已完成对缓冲区 1 中"new"行的下游处理。这将导致多个"new"行被插入到您的查找目标表中以获取相同的键。

您需要有一个执行所有必需查找插入的上游数据流任务。这将是运行时整体上更有效的解决方案,因为您的查找插入可以使用快速加载和表锁定,而您的下游查找可以是完全缓存。

关于ssis - 将不匹配的查找行插入表后如何继续该过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13265813/

相关文章:

sql-server - SSIS 作业无法访问 Azure 文件共享路径

kubernetes - 在 Kubernetes 下调度任务失败

google-cloud-dataflow - 带有触发器用例的数据流滑动窗口与全局窗口?

java - 我收到错误 : "Overload resolution ambiguity" from MapElements transform in Apache Beam when using Kotlin

c# - 筛选 Excel 数据 : . 网络与 SSIS

sql-server - SSIS Foreach 循环容器建议

sql-server - Unicode 和非 Unicode 之间的 SSIS 数据转换错误

missing-data - 从基本记录生成记录序列

具有三个未索引的联合表和一个左连接的 MySQL 查询负担过重的数据库