ITKeyword,专注技术干货聚合推荐

注册 | 登录

SQL Server BI Step by Step SSIS 4 ---合并数据1

lonely7345 分享于

2021腾讯云限时秒杀,爆款1核2G云服务器298元/3年!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1062

2021阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址https://www.aliyun.com/minisite/goods

推荐:SQL Server BI Step by Step SSIS 4 ---合并数据3

  我们已经介绍了三种方法来实现数据流源和数据库数据的合并,也就是Excel中的数据和数据库里面的数据进行同步,存在的数据进行更新操作,不存在的添加数据,另外还

     我们已经实现了把Excel中的数据导入到数据流目标,也就是数据库中,但是我们只是模拟了不重复的数据,也就是都是数据库中此时不存在的数据.那么如果数据流源Excel中的数据和数据库中的数据的主键相同的情况下,再进行插入操作就会出现异常,怎么才能实现自动的更新操作呢?也就是自动的判断数据源的数据,如果数据库中存在就执行更新,不存在就执行插入呢?
    可能叫做合并数据会有些误解,这里的合并数据与数据流中的Merge组件和Merge Join组件直接实现的效果是有差别的,首先我们看看这两个组件.
    我们新建一个包,重合名为MergeData,然后在控制流中将上次的ForeachInput包中的组件全部复制过来(包括连接管理器),删除Foreach循环容器,然后修改数据流,添加两个Excel数据流源,分别对其通过Sort进行排序(按照ProductNumber字段),再添加Merge进行数据合并,分别添加三个数据查看器,修改后的数据流图如下:
    screenshot4

    我们执行一下,三个数据查看器的部分载图如下:

 

    screenshot5

 

screenshot6

screenshot7

   可以看到,Merge数据合并了两个数据源的数据,但是并不直接实现我们想达到的目标,不过注意到Merge有以下两个特点:
    1.使用Merge转换之前必须对数据进行排序,可能通过象上面那样使用Sort转换,或者直接在源连接中指定ORDER BY直接完成.
    2.合并数据的两个路径之间的元数据必须相同.
    3.只能应用于两个数据的合并,如要两个以上,可考虑选择Union All转换
   Merge Join组件和Merge组件有什么样的区别呢?我们再新建一个包MergeData2来看下Merge Join组件,两个数据流源分别连接到Product表和ProductInventory表,修改数据流如下:

screenshot8

推荐:SQL Server BI Step by Step SSIS 3 --

    上一次我们已经介绍了简单的数据导出和导入,但是只是对单一文件进行操作,如果我们想同时对一个目录下面的所有的文件执行数据导入怎么实现呢相当简单,SSIS在

    两个Sort分别按照ProductID字段进行升序排序,Product路径输入流作为左侧输出,Merge Jogin组件设置成左外部连接(左连接,外部,内部连接和SQL一样),并选择需要输出传递到路径的列:
    screensho9

 

 

   执行过程的三个数据查看器显示的数据如下:
   screenshot10

screenshot11

screenshot12

     可以看到和SQL的连接一下,将产品的基本信息和产品的库存信息连接在一起组合一起,它的作用就是可以合并两个输入的输出并对数据执行INNER或者OUTER连接,当然,如果两路输入位于同一个数据库中,你直接使用OLE DB数据级别的join操作会更快,但是当你希望合并两个不同的数据源时,Merge Join就可以派上用场了.
     OK,今天就到这里,我们主要今天主要是熟悉了Merge和Merge Join,但是并没有实现我们上面提出来的直接同步合并数据的需求(不过其实仔细考虑一下,其实再结合其它的组件可以实现).下几次我们将采用几种方式实现.

     本次项目文件下载.(for Vs 2005)

 

作者:孤独侠客似水流年
出处:http://lonely7345.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

推荐:SQL Server BI Step by Step SSIS 4 ---合并数据2

    上次我们并没有实现Excel中的数据与数据库中的数据进行整合,存在即更新,不存在即插入.这次主要介绍几种方法来实现:      1.使用Lookup      2.使用execute S

     我们已经实现了把Excel中的数据导入到数据流目标,也就是数据库中,但是我们只是模拟了不重复的数据,也就是都是数据库中此时不存在的数据.那么如果数据流源Excel中的数据和数据库中的数据的

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。