次の方法で共有


カスタム データ フロー コンポーネントの作成

適用対象:SQL Server Azure Data Factory の SSIS Integration Runtime

Microsoft SQL Server Integration Services のデータ フロー タスクでは、開発者が Microsoft .NET Framework およびマネージド コードを使用してカスタム データ フロー コンポーネント (変換元、変換、および変換先) を作成するためのオブジェクト モデルが公開されます。

データ フロー タスクは、IDTSComponentMetaData100 インターフェイスを含むコンポーネントと、コンポーネント間のデータの移動を定義する IDTSPath100 オブジェクトのコレクションで構成されています。

Note

カスタム プロバイダーを作成するときに、ProviderDescriptors.xml ファイルをメタデータ列の値で更新する必要があります。

デザイン時および実行時

実行前のデータ フロー タスクは、増分的に変更が行われるため、デザイン時の状態にあると言えます。 追加される変更には、コンポーネントの追加または削除、コンポーネントを接続するパス オブジェクトの追加または削除、およびコンポーネントのメタデータに対する変更などが含まれます。 メタデータの変更が発生すると、コンポーネントはその変更を監視して対処できます。 たとえば、コンポーネントは特定の変更を禁止したり、ある変更に応じてさらに変更を加えたりすることができます。 デザイン時に、設計者はデザイン時インターフェイス IDTSDesigntimeComponent100 を介して、コンポーネントとやり取りします。

データ フロー タスクは、実行時に、コンポーネントの順序の確認、実行プランの準備、および作業プランを実行するワーカー スレッドのプールの管理を行います。 各ワーカー スレッドはデータ フロー タスク内の一部の処理を実行しますが、ワーカー スレッドの主なタスクは、実行時インターフェイス IDTSRuntimeComponent100 を介してコンポーネントのメソッドを呼び出すことです。

コンポーネントの作成

データ フロー コンポーネントを作成するには、PipelineComponent 基本クラスからクラスを派生し、DtsPipelineComponentAttribute クラスを適用して、基本クラスの適切なメソッドをオーバーライドします。 PipelineComponent には IDTSDesigntimeComponent100 および IDTSRuntimeComponent100 インターフェイスが実装され、それらのメソッドが公開されているので、ユーザーのコンポーネント内でオーバーライドできます。

コンポーネントで使用するオブジェクトによっては、次のアセンブリの一部またはすべてに対する参照がプロジェクトに必要です。

特徴量 参照するアセンブリ インポートする名前空間
データ フロー Microsoft.SqlServer.PipelineHost Microsoft.SqlServer.Dts.Pipeline
データ フロー ラッパー Microsoft.SqlServer.DTSPipelineWrap Microsoft.SqlServer.Dts.Pipeline.Wrapper
ランタイム Microsoft.SQLServer.ManagedDTS Microsoft.SqlServer.Dts.Runtime
ランタイム ラッパー Microsoft.SqlServer.DTSRuntimeWrap Microsoft.SqlServer.Dts.Runtime.Wrapper

次のコード例では、基本クラスから派生し、DtsPipelineComponentAttribute を適用する簡単なコンポーネントを示します。 Microsoft.SqlServer.DTSPipelineWrap アセンブリへの参照を追加する必要があります。

using System;  
using Microsoft.SqlServer.Dts.Pipeline;  
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;  
  
namespace Microsoft.Samples.SqlServer.Dts  
{  
    [DtsPipelineComponent(DisplayName = "SampleComponent", ComponentType = ComponentType.Transform )]  
    public class BasicComponent: PipelineComponent  
    {  
        // TODO: Override the base class methods.  
    }  
}  
Imports Microsoft.SqlServer.Dts.Pipeline  
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper  
  
<DtsPipelineComponent(DisplayName:="SampleComponent", ComponentType:=ComponentType.Transform)> _  
Public Class BasicComponent  
  
    Inherits PipelineComponent  
  
    ' TODO: Override the base class methods.  
  
End Class  

参照

データ フロー コンポーネント用ユーザー インターフェイスの開発