博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MS SQL可写脚本和编程的扩展SSIS包(转)
阅读量:2493 次
发布时间:2019-05-11

本文共 1769 字,大约阅读时间需要 5 分钟。

微软的SQL Server 2005中用来替代数据传输服务(DTS)的SQL Server综合服务(SSIS),包含了很多 用于导入数据并将其转换为有意义的信息,而不仅仅是被动的导入。但是还有一点要注意的是,你会发现这个新的SSIS 有时候并不能完全覆盖你要做的所有事情。

  因此,微软提供了两种基本方法来扩展SSIS的功能。一种方法对那些没有很多编程经验,或者是不需要编写复杂程序的人们来说相对简单;另一种方法就是复杂的,它可以让喜欢挑战的程序员深入SSIS,对其进行很大程度上的扩展。

  简单方式:脚本

  我们中的大多数人都在某种程度上至少接触过脚本,SSIS通过在SSIS包中使用VB .NET来为程序员提供编写脚本动作的功能。脚本的范围,与客户项目相比,是十分小并且集中的;那是在你需要在现有的包允许或者已经完成的范围内多少做些修改的时候使用的。

  在SSIS包里面,有两个元素是你可以用来添加脚本的:Script Task(在综合服务设计应用程序的控制流窗口中)和Script Component(在数据流窗口中)。它们俩的应用环境稍微有些不同。

  脚本任务(Script Task)是你用来在包里面实现一般目的的流控制的——它比脚本组件(Script Component)更加全局化,功能更强大,但是也复杂得多。它在包的数据流之外运行,不能被数据流的工作方式约束,虽然脚本任务通常都是只有包被触发的情况下才运行(虽然你可以构建在异常里面)。任务也支持断点和调试,这在你编写了比较精细的具有控制逻辑或者完成某类决策制订的脚本的时候比较有用。关于脚本任务的一个例子就是查询活动目录,寻找一些关于数据的信息,或者是与另外一个数据仓库对话——都是在运行包之前。

  脚本组件更加贴近数据流工作的方式。脚本组件不是在整个包中之运行一次,而是它的主要处理为每个需要处理的数据行运行一次。脚本组件有三个比较基本的运行环境:数据源、数据转换,或者数据目标。组件的交互性也比较小——它并不支持脚本任务支持的那种类型的调试,这是其一。使用脚本组件的大多数情况是类似一行接一行的转换,构建客户ODBC目标,或者是不能通过SSIS本地函数处理的不重要的错误处理或者转换动作。

  高级方式:对客户对象编程

  虽然SSIS包里面的脚本很强大,有时候它仍然无法完成某些任务。在一些情况下,你可能需要从头编写(或者其他人编写)一个客户 SSIS 扩展。这不是轻松完成的事情;它需要你从根本上完全理解编程。但是对于客户对象,它可能会以某种方式是使用SSIS,但是这方式绝对不是简单的自动化任务。

  例如,如果你的数据源不支持任何现有的SSIS转换(例如,一些古怪的不再被制造厂商支持的私有数据源),你可以编写客户连接管理对象来允许像在本地那样使用这个数据。同样,你可以创建客户任务,日志提供商,或者是通过SSIS实现的带有同样的编程库的数据流组件。

  以上谈到的每一种类型都可以作为SSIS支持的语言中的基本类、属性和方法集使用:Visual Basic, C#, C++, J# 和Jscript。C++, C# 和VB更容易产生最好的结果,因为在这些情况下它们在更大程度上被开发人员和供应商支持。想法就是你所使用的语言不应该成为你的障碍;它们都可以插入到同一个外部编程接口。你还可以为客户对象创建用户接口,通过标准的Windows窗体,无论是否需要它们。

  一个极端强大的此类例子就是,你可以通过SSIS客户对象创建可定制的前端调查装置 。我们说,如果你想要创建一组程序类来为集合中的每个对象集执行任务,例如,中的一组表。如果你想要在很广泛的范围内实现这样的一个动作,并且不需要每次都重新发明一次轮子,这就是一中最好的实现方式。当你对一些新类型的数据(例如上面例子中提到的)创建客户连接管理器,并且想要在上面创建客户前端动作的时候,它就特别有用处了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-122706/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-122706/

你可能感兴趣的文章
css新奇技术及其未来发展
查看>>
『重构--改善既有代码的设计』读书笔记----序
查看>>
[ZJOI2007] 时态同步
查看>>
部署好网站,同局域网中电脑无法访问的问题的解决方案
查看>>
leetcode第一刷_Binary Tree Zigzag Level Order Traversal
查看>>
php对二维数据进行排序
查看>>
安装TokuDB引擎
查看>>
第二章:用户登录管理模块
查看>>
C#OOP之二 变量和表达式
查看>>
必须掌握的前端模板引擎之art-template
查看>>
vue项目实现列表页-详情页返回不刷新,再点其他菜单项返回刷新的需求
查看>>
初学者持续自我提升指南
查看>>
树莓派进阶之路 (016) - 通过595驱动4位LED显示系统时间
查看>>
docker 部署nginx 使用keepalived 部署高可用
查看>>
性能测试需求分析
查看>>
MySQL 8.0索引合并
查看>>
P2782 友好城市
查看>>
Install OpenStack Kilo Dashboard wiht Nginx + uWSGI On RHEL7.1
查看>>
响应式网页设计
查看>>
数组各元素出现的次数
查看>>