c# - SSIS包如何根据查询有选择地导入CSV行
问题描述
我有多个 CSV 文件,每个文件有 100 列左右,我想使用 SSIS 包导入 SQL 数据库。这些 CSV 文件每晚都会收到,我希望我们的 SQL 表可以用作历史/跟踪更改表。
换句话说,我需要在导入之前根据唯一标识符评估 CSV 的每一行。我需要检查表中 ID 的最新(基于导入日期)条目,如果它存在并且与 CSV 中的新行不同,则应该导入它。如果它是重复的,它应该被忽略。如果它根本不存在,它也应该被导入。
我不能简单地过滤掉所有重复项,因为从 X 到 Y 然后再回到 X 的更改应该记录在表中(因为它是历史/更改表)。
最初我尝试使用平面文件导入 -> 查找工具 -> 数据库目标来使其工作,但看起来我不能修改查找工具以使用特定查询,而不是仅将指示的列与DB 看看它是否存在。有没有办法使用提供的 SSIS 工具来实现这一点?我能看到的唯一替代方法是创建一个自定义脚本任务来预先评估 CSV 中的每一行并将其写入临时表或仅包含需要插入的数据的新 CSV。这可能是一个完全可行的解决方案,但我担心性能问题。
解决方案
推荐阅读
- javascript - 如何从 API 调用响应中读取 HTML 文档文本并替换括号内的字符串
- javascript - 当我在javascript中按下复选框时自动完成随机激活
- python - 如何在 pytest 中同时断言 UserWarning 和 SystemExit
- java - 如何修复“NoSuchElementException”被抛出
- flutter - 使用代码一次在整个颤振中删除调试模式
- tensorflow - 运行多类分类时的“NaN”结果
- php - Laravel SQL 登录问题
- computer-science - 如何以符号大小格式添加两个数字而不转换为二进制
- automated-tests - 是否有任何代理可以使用 Reportportal 仪表板中的命令生成脚本或 exe?
- sql - 如何从 4 个表中进行查询