sql - ETL 包最初加载所有数据然后下次运行以仅加载更改或新项目的最佳方法
问题描述
我是 SSIS 的新手,希望创建 ETL 包的最佳方法是最初加载所有数据,然后再运行以仅加载更改或新项目。我将在计划 SQL 作业中使用该包。我知道我可以设置 SSIS 包来截断目标表,但对我来说这是一种资源浪费,如果担心大表,事务日志会很大。
提前致谢!
解决方案
我认为实现这一目标的方法不止一种:
- 添加包含最后插入的ID(或主键值)的引用表,并且每次都必须更新此表。
- 使用变更数据捕获 (CDC),您可以参考这篇文章了解更多信息:SQL Server 2008 中变更数据捕获 (CDC) 简介 (请注意,数据库必须配置为启用 CDC - 可能不适用于您的情况)
- 将列添加到表中,并且列值高于上次运行的 SSIS 作业日期的
LastUpdate
只读日期。LastUpdate
推荐阅读
- php - 表格数据输入未按预期工作。它只是在数据库中保存一条记录
- apache-spark - 配置了 ssl 的 elastic4s 弹性搜索不起作用
- oracle - 当我执行存储过程中存在动态PLSQL的存储过程时,由于变量而出现错误
- apache-spark - 如何从 pyspark 数据框中选择特定列(包含特殊字符)的列表?
- sql - 如果我无法在sql中插入表,如何解决主键问题?
- google-sheets - 连续工作表中相同单元格的总和
- echarts - 树形图 - 按名称而不是值排序
- postman - 谁能告诉我邮递员中不允许的405是什么意思
- docker - 在 Docker 容器内访问 Docker
- flutter - 如何根据所选值显示内容