SSIS 实现update,delete,insert
来源:互联网 发布:淘宝客建立网站 编辑:程序博客网 时间:2024/04/19 16:37
SSIS 实现update,delete,insert
在数据库ETL时,ETL 有两种类型的数据表提取:全部源提取,其中无法标识更改的或新的记录;递增提取,其中只提取新的记录和更改的记录。
在这里我将简单介绍一下利用SQL Server 2005 集成服务(SSIS)如何实现全部源提取的思路,如果不能理解,欢迎发邮件和我交流。
案例:
在源系统上,有些记录包含在表中,该表不标识新的或已修改的记录,因此 ETL 过程必须比较源表和目标表之间的记录以标识更改发生的时间。
然后正确地处理插入或更新。
思路如下:
第一步: 对源表和目标表使用全部合并连接和完整数据集。全部连接有助于标识库存记录添加到源中的时间或完全删除的时间。
使用配置为全部连接的 Merge Join 转换满足此要求。
注:由于要使用Merge Join 转换,必须是有序的,如果用order排序组件在大数据量时效率不高,因此可以事先用order by排序。
为此,数据流需要注意:源已排序以及排序所应用的列和方向。这是在 Source Connection 的 Advanced Editor(高级编辑器)中完成的。
在 Input and Output Properties(输入和输出属性)选项卡上,请查看 OLE DB Source Output(OLE DB 源输出)的顶级属性,有一个名为 IsSorted 的属性,它需要设置为 True。
第二,需要通过 Output Columns(输出列)容器中的 SortKeyPosition 属性指定排序的列。然后数据流将认可此排序。
第二步:利用Conditional Split分别拆分三个和一个默认的如下所示:
Insert 为目标表主键为空;
Delete 为源目标表主键为空;
Unchanged 为源和目标表为发生变化的分别比较每列;
Update 剩下的也就是默认的就是需要Update的数据;
- SSIS 实现update,delete,insert
- ssis 中update then insert
- Insert Update Delete Select
- Insert , Update , Delete 触发器
- Insert,Update,Delete操作
- insert、delete、update、replace
- gridview 绑定数据.实现update、delete、insert into、分页功能
- JavaBean 实现Mysql数据库操作(Query、Insert、Delete、Update)
- JavaBean 实现Mysql数据库操作(Query、Insert、Delete、Update)
- INSERT,UPDATE,DELETE时不写日志
- 數據庫訪問類(Query,Insert,Update,Delete)
- returning into(update,delete,insert)
- LINQ Insert/Update/Delete操作
- SqlServer Trigger insert update delete
- MyBatis-insert, update and delete
- insert、update、delete的用法
- mysql学习-update, delete,insert
- MYSQL INSERT UPDATE DELETE 语句
- Google推广需要知道的细节
- 使用HttpClient模拟网站登陆sina邮箱(保持远程服务器session和cookie)
- HTML中table带滚动条而标题栏不移动的做法
- [C#] C#.Net的常见面试试题
- C#中全角字符转换为半角
- SSIS 实现update,delete,insert
- vnc服务故障处理
- Retirement2.java
- 如何获取数据库中某一个表的所有字段
- 必须掌握的八个【cmd 命令行】
- 好久没有写过一次日志了
- Tag原理及实现简介
- [C#] C#面试问题大全
- 杂记