博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssis组件_SSIS脚本组件概述
阅读量:2525 次
发布时间:2019-05-11

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

ssis组件

SSIS Script component is a prominent strength of SQL Server Integration Services since it allows developers to implement any complex logic and utilize libraries from the powerful .NET framework or third-parties.

SSIS脚本组件是SQL Server集成服务的突出优势,因为它允许开发人员实现任何复杂的逻辑并利用功能强大的.NET框架或第三方提供的库。

In this article, we will give an overview of SSIS Script component, and illustrate the benefits of using it. In addition, we will answer some of the most common questions asked concerning writing scripts in SSIS, such as the difference between a derived column transformation and a Script component.

在本文中,我们将概述SSIS脚本组件,并说明使用它的好处。 另外,我们将回答一些有关在SSIS中编写脚本的常见问题,例如派生列转换和Script组件之间的区别。

this image shows the ssis script component description from the toolbox

SSIS Script component can be used in three ways:

SSIS脚本组件可以三种方式使用:

  1. As a source component

    作为源组件
  2. As a destination component

    作为目标组件
  3. As a transformation component

    作为转换组件

When adding a Script component to the data flow task, you will be asked how the script will be used, as shown in the image below:

将脚本组件添加到数据流任务时,将询问您如何使用脚本,如下图所示:

this image shows the form used to select the ssis script component type

SSIS脚本组件编辑器 (SSIS Script component editor)

Before describing each approach, we will illustrate the options that can be configured in the SSIS script component editor. If you open the SSIS Script component editor, you will see four tabs:

在介绍每种方法之前,我们将说明可以在SSIS脚本组件编辑器中配置的选项。 如果打开SSIS脚本组件编辑器,将看到四个选项卡:

  • Script: Here, you can open the script editor where you can write your script, select the script programming language (C# or VB.NET) and select the SSIS variables you need within the script (for read or write purposes) 脚本:在这里,您可以打开脚本编辑器,在其中编写脚本,选择脚本编程语言(C#或VB.NET),然后在脚本中选择所需的SSIS变量(用于读取或写入)
  • Input Columns: Here, you can select the input columns for use within the script 输入列:在这里,您可以选择脚本中要使用的输入列
  • Inputs and Outputs: Here, you can configure the outputs generated by the script (number of outputs, type of each output, output columns, etc.) 输入和输出:在这里,您可以配置脚本生成的输出(输出数量,每个输出的类型,输出列等)
  • Connection Managers: Here, you can select the connection managers for use within the script 连接管理器:在这里,您可以选择要在脚本中使用的连接管理器

this image shows the script tab page in the ssis script component editor

Note, that when using the SSIS script component as a source, there are no input columns to select. In addition, when using this component as a destination, no output configuration is needed.

请注意,使用SSIS脚本组件作为源时,没有输入列可供选择。 另外,使用此组件作为目标时,不需要输出配置。

Additional information can be found in the following documentation:.

在以下文档中可以找到更多信息: 。

SSIS脚本组件作为源 (SSIS Script component as source)

The first way to use a script component is as a source. This approach is useful when reading from a data source that doesn’t have its own source component (Flat File, Excel, OLE DB, etc.,) such as when reading JSON data from a Web API or reading an unstructured Flat File that can’t be handled using a Flat File Connection Manager.

使用脚本组件的第一种方法是作为源。 当从没有自己的源组件(平面文件,Excel,OLE DB等)的数据源中读取数据时,例如从Web API读取JSON数据或读取可以不能使用平面文件连接管理器来处理。

Refer to the following links for more information and some examples:

请参阅以下链接以获取更多信息和一些示例:

SSIS脚本组件作为目标 (SSIS Script component as destination)

The second way to use an SSIS Script component is as a destination. This approach is useful when exporting the data into a file that is not supported by other destination components, or for applying some processing without the need for a destination component.

使用SSIS脚本组件的第二种方法是作为目标。 当将数据导出到其他目标组件不支持的文件中,或者不需要目标组件进行某些处理时,此方法很有用。

Refer to the following links for additional information:

请参阅以下链接以获取更多信息:

SSIS脚本组件转换 (SSIS Script component transformation)

The third and most popular way to use a script component is for transformations. In this approach, the script component reads input values from the data flow and generates outputs. There are two types of outputs that can be generated:

使用脚本组件的第三种也是最流行的方法是进行转换。 在这种方法中,脚本组件从数据流中读取输入值并生成输出。 可以生成两种类型的输出:

  • Synchronous output

    同步输出
  • Asynchronous output

    异步输出

In this section, we will briefly describe these two output types, and you can refer to the following link for more information: .

在本节中,我们将简要描述这两种输出类型,并且您可以参考以下链接以获取更多信息: 。

同步输出 (Synchronous output)

With this output type, there is an output row for each input row. All output columns defined in the output buffer are added to the input row. As shown in the image below, in the Inputs and Outputs tab page, you must select the synchronous input property for the output buffer created:

使用此输出类型,每个输入行都有一个输出行。 将输出缓冲区中定义的所有输出列添加到输入行。 如下图所示,在“输入和输出”选项卡页面中,必须为创建的输出缓冲区选择同步输入属性:

this image shows how to add a synchronous output in the ssis script component transformation

When performing a synchronous transformation, all input and output columns are accessed using the Row class. As an example:

执行同步转换时,使用Row类访问所有输入和输出列。 举个例子:

Row.outColumn = Row.InColumn + “_1”;

Row.outColumn = Row.InColumn +“ _1”;

For more information, refer to the following official documentation:

有关更多信息,请参考以下官方文档:

异步转换 (Asynchronous transformation)

With this transformation type, each input row may have 0 or multiple output buffers. You can set the output type as asynchronous by setting the SynchronousInput property to None:

使用此转换类型,每个输入行可以具有0个或多个输出缓冲区。 您可以通过将SynchronousInput属性设置为None来将输出类型设置为异步:

this image shows how to add a asynchronous output in the ssis script component transformation

You must use the output buffer wrapper class to add an output row and to assign values to columns. As an example, if the output buffer name is “Output1,” then you must use the following code:

您必须使用输出缓冲区包装器类来添加输出行并将值分配给列。 例如,如果输出缓冲区名称为“ Output1”,则必须使用以下代码:

Output1Buffer.AddRow();

Output1Buffer.outColumn = “abc”;

Output1Buffer.AddRow();

Output1Buffer.outColumn =“ abc”;

For more information, refer to the following official documentation:

有关更多信息,请参考以下官方文档:

单/多输出 (Single/multiple outputs)

From the Inputs and Outputs tab, you can add multiple output buffers, and you can configure each one as synchronous or asynchronous based on the logic you want to implement.

在“输入和输出”选项卡上,可以添加多个输出缓冲区,并且可以根据要实现的逻辑将每个缓冲区配置为同步或异步。

派生列与脚本组件 (Derived Column vs. Script Component)

One of the most common questions asked is when to use a derived column transformation or a script component. A derived column is used to apply simple transformations using SSIS expressions and doesn’t require programming language knowledge. An SSIS Script component is more advanced and is used to implement more complex logic than the derived column.

提出的最常见问题之一是何时使用派生列转换或脚本组件。 派生列用于使用SSIS表达式应用简单的转换,并且不需要编程语言知识。 SSIS脚本组件比派生列更高级,用于实现更复杂的逻辑。

Also, the script component can use .NET Framework libraries and functions, as well as third-party assemblies, which is not possible in derived columns.

此外,脚本组件可以使用.NET Framework库和函数以及第三方程序集,而这在派生列中是不可能的。

More details about the differences between the SSIS script component and derived columns are mentioned in the following article:

以下文章中提到了有关SSIS脚本组件和派生列之间差异的更多详细信息:

If you are new to SSIS, refer to the following link to learn more about SSIS Derived column transformation:

如果您不熟悉SSIS,请参考以下链接以了解有关SSIS派生列转换的更多信息:

调用目标已引发异常 (Exception has been thrown by the target of an invocation)

One of the most common errors related to writing scripts in SSIS is that the Script component or Script Task has encountered an error at runtime but the exception message does not provide further information: “Exception has been thrown by the target of an invocation”.

与在SSIS中编写脚本有关的最常见错误之一是,脚本组件或脚本任务在运行时遇到错误,但异常消息未提供进一步的信息: “调用的目标已引发异常”

This is a generic error message that is shown when a script fails. To retrieve the original error message, you have to implement a try/catch logic and use ComponentMetadata class to fire the real error message:

这是脚本失败时显示的一般错误消息。 要检索原始错误消息,您必须实现一个try / catch逻辑并使用ComponentMetadata类来触发实际的错误消息:

try{     //...write your code here     Dts.TaskResult = (int)ScriptResult.Success; }catch(Exception ex){     ComponentMetaData.FireError(0,"An error occured", ex.Message,String.Empty, 0); }

Additional information can be found on: (just note that in a script task, DTS namespace is used instead of ComponentMetadata).

可以在以下位置找到其他信息: (请注意,在脚本任务中,使用DTS命名空间而不是ComponentMetadata)

结论 (Conclusion)

In this article, we have provided an overview of the SSIS script component, and showed how it can be used within the data flow task. In addition, we briefly described the differences between Script and derived columns. Finally, we showed how to read the error messages thrown in runtime.

在本文中,我们提供了SSIS脚本组件的概述,并展示了如何在数据流任务中使用它。 此外,我们简要描述了Script列和派生列之间的区别。 最后,我们展示了如何读取运行时引发的错误消息。

翻译自:

ssis组件

转载地址:http://nfnwd.baihongyu.com/

你可能感兴趣的文章
Python编程语言的起源
查看>>
Azure ARMTemplate模板,VM扩展命令
查看>>
使用Masstransit开发基于消息传递的分布式应用
查看>>
[CF808A] Lucky Year(规律)
查看>>
关于推送遇到的一些问题
查看>>
寒假作业3 抓老鼠啊~亏了还是赚了?
查看>>
Orcal Job创建实例
查看>>
Django
查看>>
批量Excel数据导入Oracle数据库(引用 自 wuhuacong(伍华聪)的专栏)
查看>>
处理移动障碍
查看>>
优化VR体验的7个建议
查看>>
2015年创业中遇到的技术问题:21-30
查看>>
《社交红利》读书总结--如何从微信微博QQ空间等社交网络带走海量用户、流量与收入...
查看>>
JDK工具(一)–Java编译器javac
查看>>
深入.NET框架与面向对象的回顾
查看>>
改变label中的某字体颜色
查看>>
[转]SQL SERVER 的排序规则
查看>>
C语言函数的可变参数列表
查看>>
七牛云存储之应用视频上传系统开心得
查看>>
struts2日期类型转换
查看>>