曾经参与过一个系统,数据采集汇总方面的,从各种不同结构的数据库中提取共有的数据,做一定的数据校验和过滤,也有数据类型的转换(其实都是转为字符串处理了),采用了图形化的配置,反射数据库表和字段,当时最有创意的就是可以像很多数据库那种从一个表结构中拖拽一个字段到另一个表上,之间画上一条连线,类似构建主外键那样,构建了字段映射关系来抽取数据(折腾了好久GDI+才实现)。最后还要实时的监控数据库的变化,由于业务上的要求其实最后是采用的轮询读取比较的方式。
一晃两三年过去了,新的技术也层出不穷,之前听说了Oracle收购了一套中间件,就是做数据抽取和转移的,我对Oracle不是很了解,最近听同事说SQLServer的SSIS很好用,也实现了从源数据到目标数据的抽取、处理和转移,而且还可以开发中间程序,同时调试中断也很方便。做为一个.net程序员自然要关注一下,况且和曾经自己实现的系统有很多相似的地方,就是不知道有没有实时的更新检测呢?不管怎样,微软的东西自然是没得说,远比我们小米加步枪的强大多了,应该好好学习一下。
以下是摘录的学习资源,做为初步的了解计划:
摘自:http://www.cnblogs.com/shanyou/archive/2009/12/29/1634974.html
SSIS数据流
数据流是在SQL Server 2005中才引入的新概念。数据流是专门处理数据操作的工作流。数据流也称为流水线。可以将数据流认为是装配线,该装配线包含了顺序执行的多个操作。在数据流中的每个节点都称为转换。数据流通常以源转换开始,以目标转换结束。在这两个转换之间,预定义的数据流转换被依序应用到数据上。一些转换是同步的,例如,查找、条件性拆分和数据转换。这些同步的转换可以并行执行。
一旦已经将转换应用到数据行上,则下一个转换可以开始处理该数据行,而无需等到上一级转换处理完整个数据集。一些转换是异步的,例如聚合和排序。这些转换必须从前面的输出中获得所有的行,从而可以处理和产生输出,用于后续转换。