SSIS 查找 组件
通过SSIS的“查找”组件进行不同数据源之间数据的合并操作
为了协助开发还原生产环境中的某些bug,需要将将生产环境的某些特定表数据导入到测试环境做测试,
之前一直都是暴力地truncate测试环境的表,然后用SSIS将生产环境对应的整张表数据导入测试环境,简便快捷
后来开发提出来,保留测试环境已有的数据,只同步差异的数据(根据主键),于是就尝试使用SSIS中的“查找”组件进行不同服务器之间的“存在则更新,不存在则插入”数据合并操作,
实际操作的时候只执行插入操作,达到同步数据的目的。
尝试之后觉得还是挺好使的,看起来跟简单,操作起来步骤还是挺多的,记录一下。
首先最主要的一个组件就是如下截图的查找组件。

完整的测试结果如图所示,最主要的目的就是让源数据“兵分两路”,以不同的方式(更新或者插入)去同步到目标服务器中,当然数据源与数据目标可以是不同的服务器,不同类型的数据库或者文件,关键是一种实现方式。

开始操作步骤
新建SSIS任务什么的就不说了,操作一遍就回了,微软的IDE还是比较好用的。
首先是最基本的数据流任务,拖一个数据任务流到SSIS设计器中

双击进入源编辑界面,设置数据源的服务器和表

添加查找组件,设置查找组件的服务器和表(导入数据的目标服务器和表)

根据这里的需求,常规选项中一定要将设置为“将行重定向到无匹配输出”,因为这里是要执行“不存在就插入”的操作,因此“源”与“目标”中的数据进行匹配,匹配到的与没有匹配到的都要输出,只不过是处理方式不同
注意有对于目标中的数据有三种缓存模式,这里选择默认的方式,不多说,有兴趣的可以上网搜

继续编辑列映射属性


分别拉一个OLE DB 命令 和 OLE DB目标,位置尽量摆放的好看一点

分别设置个OLE DB 命令 和 OLE DB目标的属性信息


列映射选项卡中编译映射信息,可用目标列中的Parama_0和Param_1分别代表两个上述SQL语句中的两个参数,
因为SQL语句是update test_table1 set name = ? where id = ?,这里的参数的顺序要与占位符的?顺序表示的意义相同

“左边”更新的操作分支属性编辑完成之后,编辑“右边”的插入分支的属性,这一步就简单了,设置好数据源与目标表即可。

接下来就可以执行了,将源数据“兵分两路”,分别执行“存在则更新,不存在则插入”的操作,因为这里已经示例的是源与目标匹配到了5999行,进行更新,没有匹配的是4999行,执行插入
执行完成后,源服务器与目标服务器数据一致。

一边测试一遍截图,比较乱,中间还是有一些细节的。
对于类似小众化或者说是平时用的不是太频繁的工具,时间久了可能会生疏,只要多实践,多摸索,多看报错信息,还是可以使用起来提高工作效率的。
SSIS 查找 组件的更多相关文章
- 通过SSIS的“查找”组件进行不同数据源之间数据的合并操作
原文:通过SSIS的"查找"组件进行不同数据源之间数据的合并操作 为了协助开发还原生产环境中的某些bug,需要将将生产环境的某些特定表数据导入到测试环境做测试,之前一直都是暴力地t ...
- 自动生成查找组件的lua代码
本篇主要解决的问题是使用lua脚本编写unity业务逻辑时,自动生成一些查找组件及绑定控件事件的lua代码! 现在很多unity项目都是用ulua作为热更新解决方案,因此需要用lua来写相关的逻辑,经 ...
- Android:认识R类、findViewById方法查找组件、@string查找字符、@color查找颜色、@drawable查找图片、@dimen某个组件尺寸定义、项目引入资源国际化
导入 之前都是断断续续的看了一些于如何使用android开发的文章.资料等,到目前位置很多基础的东西都不清楚,于是去学习了别人的课程,才了认识了R类.findViewById方法查找组件.项目引入资源 ...
- SSIS Destination 组件使用Fast-Load mode出错
查看一个Package的历史Message 数据,发现 DataFlow Task 经常出错,错误信息的Description是: Description: "While reading c ...
- 使用PIA查找组件的PeopleSoft导航
导航到企业组件>查找对象导航. 使用组件名称 使用页面名称 使用辅助页面名称 使用内容参考名称 只需输入对象名称,然后单击“搜索”即可.在这个例子中.我们知道组件名称即'PRCSDEFN',我们 ...
- Informatica 常用组件Lookup之四 查找组件
在映射中配置查找转换时,请定义以下组件: 查找源 端口 属性 条件 元数据扩展 查找源 您可以使用平面文件或关系表作为查找源.创建查找转换时,您可以从以下位置导入查找源: 资料库中的任 ...
- SSIS 数据源组件的External Metadata和Advanced Property
1,SSIS的组件属性ValidateExternalMetadata 如果一个Destination组件使用的是上游创建的staging table,那么必须设置 ValidateExternalM ...
- SSIS: Lookup组件高级用法,生成推断成员(inferred member)
将数据导入事实表如果无法匹配维度表的记录一般有两种处理方式. 一是将不匹配记录输出到一个表中待后续处理,然后重新导入.二是先生成维度Key,后续再完善维度key,本文指导各位使用第二种方式. 背景 比 ...
- Cocos Creator学习二:查找节点和查找组件
1.目的:只有通过方便的获取节点对象以及组件,才能较好的进行逻辑控制. 2.通过 cc.find(节点全路径名称字符串) 获取节点. 3.通过getComponent获取组件(注意一个是类型,一个是类 ...
随机推荐
- 硬件知识整理part1--电阻E系列行业规范
仁者,人心也,义者,人路也. --孟子 “ E ”表示“指数间距”(Exponential Spacing) 在上个20世纪的电子管时代,电子元器件厂商为了便于元件规格的管理和选用.大规模生产的电 ...
- 重写了下Ajax请求Webservice,顺便复习一下Javascript的闭包概念
var AjaxRequest = function(){ //返回处理结果的回调函数 this.agentCallBack = {}; //javascript 调用domino代理的方法. thi ...
- H5网页布局+css代码美化
HTML5的结构化标签,对搜索引擎更友好 li 标签对不利于搜索引擎的收录,尽量少用 banner图片一般拥有版权,不需要搜索引擎收录,因此可以使用ul + li <samp></s ...
- NoSQLBooster如何MongoDB的部分文档从一个集合拷贝到另外一个集合中
假设MongoDB数据库中存有collection_A和collection_B两个集合,如下图所示: (一)先从集合collection_A中拷贝选择的文档 打开collection_A,看到目前有 ...
- kali2020更换中科大的更新源
kali2020更换中科大的更新源 中科大的源地址 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb ...
- python-flask模块注入(SSTI)
前言: 第一次遇到python模块注入是做ctf的时候,当时并没有搞懂原理所在,看了网上的资料,这里做一个笔记. flask基础: 先看一段python代码: from flask import fl ...
- Xamarin.Forms弹出对话框插件
微信公众号:Dotnet9,网站:Dotnet9,问题或建议,请网站留言: 如果您觉得Dotnet9对您有帮助,欢迎赞赏. Xamarin.Forms弹出对话框插件 内容目录 实现效果 业务场景 编码 ...
- Spring IoC Container源码分析(二)-bean初始化流程
准备 Person实例 @Data public class Person { private String name; private int age; } xml bean配置 <?xml ...
- MySQL基础篇(01):经典实用查询案例,总结整理
本文源码:GitHub·点这里 || GitEE·点这里 一.连接查询 图解示意图 1.建表语句 部门和员工关系表: CREATE TABLE `tb_dept` ( `id` int(11) NOT ...
- iptables (一) 主机防火墙和网络防火墙
Firewall : 防火墙,隔离工具:工作于主机或网络的边缘,对于进出本主机或网络的报文根据事先定义好的检测规则作匹配,对于能够被规则所匹配到的报文做出相应处理的组件:有主机防火墙和网络防火墙 Ip ...