Azure SSIS 統合ランタイムの有料 (ライセンスあり) カスタム コンポーネントをインストールする

適用対象: Azure Data Factory Azure Synapse Analytics> [ヒント] > 企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。]

この記事では、ISV が、Azure SSIS 統合ランタイム、およびセルフホステッド統合ランタイムを使用したプロキシにおいて Azure で実行される SQL Server Integration Services (SSIS) パッケージの有料 (ライセンスあり) カスタム コンポーネントの開発およびインストールを行う方法について説明します。

Azure SSIS 統合ランタイムの有料 (ライセンスあり) カスタム コンポーネントをインストールする

問題

Azure SSIS 統合ランタイムは、その性質上、いくつかの難題を提示します。そのため、カスタム コンポーネントのオンプレミス インストールに使用される一般的なライセンス供与方法では不十分となります。 その結果、Azure SSIS IR で別の手法が必要となります。

  • Azure SSIS IR のノードは一時的なものであり、いつでも割り当てたり、リリースしたりできます。 たとえば、ノードを開始したり、停止したりすることでコストを管理し、ノード サイズをスケールアップまたはスケールダウンします。 結果的に、MAC アドレスや CPU ID など、コンピューター固有の情報をサードパーティ コンポーネント ライセンスを特定のノードにバインドできなくなります。

  • また、ノードの数をいつでも拡大または縮小できるように、Azure SSIS IR をスケールインまたはスケールアウトできます。

解決策

前のセクションで説明されている従来のライセンス方法の制限の結果、Azure SSIS IR は新しい解決策を提供します。 この解決策では、Windows 環境変数と SSIS システム変数を使用して、サード パーティ コンポーネントのライセンスのバインドと検証を行います。 ISV はこのような変数を使用し、クラスター ID やクラスター ノード数など、Azure SSIS IR の固有かつ永続的な情報を取得できます。 この情報を使用することで、ISV はクラスターとしての Azure SSIS IR にコンポーネントのライセンスをバインドできます。 このバインドでは、顧客が任意の方法で Azure SSIS IR を開始または停止、スケールアップまたはスケールダウン、スケールインまたはスケールアウト、もしくは再構成したときに変更されない ID を使用します。

次の図は、これらの新しい変数を使用するサードパーティ コンポーネントの一般的なインストール、ライセンス認証、ライセンス バインディング、検証のフローを示したものです。

Installation of licensed components

手順

  1. ISV はさまざまな SKU または階層でライセンス コンポーネントを提供できます (シングル ノード、最大 5 個のノード、最大 10 個のノードなど)。 ISV は、顧客が製品を購入したときにプロダクト キーを提供します。 ISV は、ISV セットアップ スクリプトと関連ファイルが含まれる Azure Storage BLOB コンテナーも提供します。 顧客はこれらのファイルを自分のストレージ コンテナーに複製し、自分のプロダクト キーで変更できます (たとえば、IsvSetup.exe -pid xxxx-xxxx-xxxx を実行します)。 顧客は次に、自分のコンテナーの SAS URI をパラメーターとして Azure SSIS IR をプロビジョニングしたり、再構成したりできます。 詳細については、「Custom setup for the Azure-SSIS integration runtime」(Azure-SSIS 統合ランタイムのカスタム設定) を参照してください。

  2. Azure SSIS IR がプロビジョニングまたは再構成されると、ISV セットアップが各ノードで実行され、Windows 環境変数の SSIS_CLUSTERIDSSIS_CLUSTERNODECOUNT にクエリを実行します。 次に、Azure SSIS IR はそのクラスター ID とライセンス製品のプロダクト キーを ISV ライセンス認証サーバーに送信し、ライセンス認証キーを生成します。

  3. ライセンス認証キーを受け取ると、ISV セットアップでは、各ノードにキーをローカル保存できます (たとえば、レジストリに)。

  4. Azure SSIS IR のノードで ISV のライセンス コンポーネントを使用するパッケージを顧客が実行すると、そのパッケージはローカル保存されているライセンス認証キーを読み込み、ノードのクラスター ID に基づいて有効性を確認します。 そのパッケージはまた、クラスター ノード数を ISV ライセンス認証サーバーに任意で報告できます。

    次は、ライセンス認証キーの有効性を確認し、クラスター ノード数を報告するコード例です。

    public override DTSExecResult Validate(Connections, VariableDispenser, IDTSComponentEvents componentEvents, IDTSLogging log) 
    
    {                                                                                                                             
    
    Variables vars = null;                                                                                                        
    
    variableDispenser.LockForRead("System::ClusterID");                                                                           
    
    variableDispenser.LockForRead("System::ClusterNodeCount");                                                                    
    
    variableDispenser.GetVariables(ref vars);                                                                                     
    
    // Validate Activation Key with ClusterID                                                                                     
    
    // Report on ClusterNodeCount                                                                                                 
    
    vars.Unlock();                                                                                                                
    
    return base.Validate(connections, variableDispenser, componentEvents, log);                                                   
    
    }
    

セルフホステッド IR をプロキシとして使用してカスタムまたはサード パーティのデータ フロー コンポーネントを有効にする

Azure-SSIS IR のプロキシとしてセルフホステッド IR を使用してオンプレミスのデータにアクセスするために、カスタム/サードパーティ データ フロー コンポーネントを有効にするには、次の手順に従います。

  1. 標準/簡易カスタム セットアップを使用して、Azure-SSIS IR に SQL Server 2017 をターゲットとするカスタム/サードパーティ データ フロー コンポーネントをインストールします。

  2. セルフホステッド IR に次の DTSPath レジストリ キーを作成します (まだ存在しない場合)。

    1. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\140\SSIS\Setup\DTSPathC:\Program Files\Microsoft SQL Server\140\DTS\ に設定
    2. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Server\140\SSIS\Setup\DTSPathC:\Program Files (x86)\Microsoft SQL Server\140\DTS\ に設定
  3. 上記の DTSPath でセルフホステッド IR に SQL Server 2017 をターゲットとするカスタム/サードパーティ データ フロー コンポーネントをインストールし、次のインストール プロセスを確認します。

    1. <DTSPath><DTSPath>/Connections<DTSPath>/PipelineComponents<DTSPath>/UpgradeMappings フォルダーがまだ存在しない場合は作成します。

    2. <DTSPath>/UpgradeMappings フォルダーに拡張機能マッピング用に独自の XML ファイルを作成します。

    3. カスタム/サードパーティ データ フロー コンポーネント アセンブリで参照されるすべてのアセンブリをグローバル アセンブリ キャッシュ (GAC) にインストールします。

ここでは、パートナーである Aecorsoft の例を示します。こちらのデータ フロー コンポーネントは、高速カスタム セットアップと、セルフホステッド IR を Azure-SSIS IR のプロキシとしてを使用するように設定されています。

ISV パートナー

ADF での SSIS の Enterprise Edition、カスタム セットアップ、およびサード パーティ機能拡張に関するブログ記事の最後で、コンポーネントおよび拡張機能を Azure SSIS IR に適応させている ISV パートナーの一覧を検索できます。