ssis - SSIS中增量负载的最佳方法是什么
问题描述
我正在尝试从源表创建增量加载到mrr/src
表中,并且在我的源表中我有created
日期和' modified
'日期。
添加新记录:
有两种方法可以做增量,我想知道哪种方法更好:
合并 Source 表和 mrr/src 表之间的连接任务(左连接),并获取所有 mrr/src 表中不存在的记录。
保存上次上传日期并获取所有“创建”日期高于上次上传日期的新记录。
我个人选择第二个选项,但第一个选项在性能方面更可取吗?
更新现有记录:
同样有两种选择:
使用条件拆分任务并在源表和 mrr/src 表中的字段之间进行所有比较。
在源表中使用“修改”日期并将其与上次上传日期进行比较,以便了解自上次检查源表以来哪些记录已更新。
是否有首选选项,我是否缺少选项?
解决方案
添加新记录:我更喜欢#2(假设创建日期总是高于最后插入日期)。对于源表将大幅增长的情况,选项#2 也更好。与选项#1相反,它将执行快速的显式时间,即表越大,比较所有数据所需的时间就越多。
更新现有记录:选项 #2,但这又是假设修改日期总是在字段更改时更改。更快更新性能的提示。而不是即时更新记录。只需将记录保存在临时物理表中,然后在 SSIS 包中的另一个步骤中发出 SQL 脚本以使用该临时表作为更新主最终表的参考。这比在数据流上使用 SQL 任务要快得多。此任务将针对每一行发出一条更新语句。
推荐阅读
- google-cloud-platform - (GCS) 查看此对象的元数据所需的其他权限:请求对象所有者授予您“storage.objects.get”权限
- python - Anaconda 企业连接到云与“离线”
- amazon-web-services - API Gateway 的特殊行为
- laravel - Laravel Voyager Tinymce 插件问题
- jenkins - 从詹金斯的颠覆结帐后如何仅构建更改的文件?
- visual-c++ - 与来自 ISpTTSEngine 的 ISpVoice 交谈
- swift - MapView 不显示路线
- javascript - ReactJS - 上下文 API 用户信息未在 PrivateRouter 上更新
- python - 单选按钮问题:一些网站单选按钮存在,但有些网站没有
- javascript - Firefox 在 keydown 上没有检测到 Alt 键