Azure へのデプロイ
Azure Data Factory V2 統合ランタイム(ADFv2 IR)のリリースにより、CData コンポーネントを使用するSSIS プロジェクトでAzure クラウドへのデプロイが可能になりました。下記の手順に従って、コンポーネントをAzure にデプロイします。 そうすると、設定されたAzure Data Factory でSSIS プロジェクトを実行できます。
次のタスクを完了してください。
- AzureDeploy.ps1 スクリプトを実行して、統合ランタイムをプロビジョニングします。
- SSIS プロジェクトをVisual Studio からAzure にデプロイします。
- SSMS を使用して、デプロイされたプロジェクトを管理および実行します。
前提条件
コンポーネントをデプロイするには、Azure サブスクリプションに加えて以下が必要です。
- SSMS 2014 以上
- Azure リソースグループ
-
Azure SQL データベース
SQL Server のファイアウォール設定がクライアントマシンからのアクセスを許可することを確認します。SQL Server の概要ページで、設定 ファイアウォールをクリックし、クライアントマシンのIP アドレス、またはそれを含むIP アドレスの範囲を追加します。さらに、ファイアウォール設定で、Azure サービスおよびリソースにこのサーバーへのアクセスを許可するオプションが有効になっていることを確かめます。
-
CData SSIS コンポーネントのサーバーライセンス
CData SSIS コンポーネントをクラウドにデプロイするには、サーバーライセンスとランタイムキー(RTK)が必要です。
-
Azure Az PowerShell module 6.0.0 以上
PowerShell 7.0.6 LTS、PowerShell 7.1.3 以上が推奨されます。それより前のバージョンを使用している場合:
- 新しいPowerShell をインストールします。
- 新しいPowerShell で、Uninstall-AzureRM を実行します。
- 新しいPowerShell で、AZ モジュールをインストールします。
Set-ExecutionPolicy Unrestricted
Connect-AzAccount
CData SSIS コンポーネントをAzure にデプロイ
以下の手順に従って、1つ以上のCData データソースを使用してSSIS プロジェクトをデプロイします。
統合ランタイムのプロビジョニング
付属のAzureDeploy.ps1 スクリプトを使用して、Azure SSIS 統合ランタイムをプロビジョニングして起動します。
Note: デプロイする前に、ストレージアカウントで設定 -> 構成 -> BLOB パブリックアクセスを有効にする必要があります。
- 複数のCData SSIS コンポーネントをデプロイするには、他のすべてのCData SSIS2017.dll と .Design.dll ファイルをこのコンポーネントの/lib フォルダにコピーします。デフォルトはC:\Program Files\CData\CData SSIS Components for Redis\lib です。
-
この/lib ディレクトリからAzureDeploy.ps1 スクリプトを実行します。必要なすべてのパラメータを一度に指定できます。次に例を示します。
.\AzureDeploy.ps1 -ResourceGroupName "my-resource-group" -SubscriptionId "2d91834e-1hga-4c31-86yf-dba7b40b90u2" -SqlServerName "my-sql-db.database.windows.net" -SqlDatabaseUser "MySQLUser" -SqlDatabasePwd "MySQLPwd" -DataFactoryName "MyDataFactory" -StorageAccountName "MyStorageAccount"
SQL Server データベースに統合ランタイム(およびSSISDB)がすでに存在する場合は、まずそれを停止し、-InterationRuntimeName パラメータを指定して名前を上書きすることができます。各SQL Server は、1つの統合ランタイムのみを持つことができます。
使用可能なパラメータの詳細については、以下の"AzureDeploy.ps1 スクリプトの設定" セクションを参照してください。
- ダイアログが表示されたらAzure にログインします。
Azure にログインすると、スクリプトはデプロイに必要なリソースを作成し、統合ランタイムを開始します。
SSIS パッケージのデプロイ
これで、SSIS パッケージをデプロイする準備が整いました。
- Visual Studio で、プロジェクトを右クリックし、配置を選択します。[Integration Services 配置]ウィザードが表示されます。
- [ソースの選択]ページでSSIS プロジェクトを選択します。プロジェクトのデプロイメントファイル、またはSSIS カタログに存在するプロジェクトを選択できます。
-
[配置先の選択]ページで、論理SQL データベースの完全修飾ドメイン名を入力し、認証情報を入力します。参照を選択して、SSISDB 内のターゲットフォルダを選択します。
この手順を実行すると、Azure Data Factory web UI (https://adf.azure.com) でパッケージがデプロイされ、アクセス可能になります。
SSMS でのプロジェクトの管理と実行
デフォルトで、機密情報(パスワード、セキュリティトークンなど)を使用した接続設定は、Azure にデプロイするときに編集されます。設定されたAzure Data Factory でプロジェクトを実行できるようにするには、この情報をSSMS 経由で入力します。
- Azure SQL データベースに接続します。オプション -> 接続プロパティで、データベースへの接続フィールドを"SSISDB" に設定します。
-
プロジェクトを右クリックし、Configureをクリックして、[Integration Services カタログ]内のSSIS プロジェクトを設定します。
Note:Integration Services カタログがない場合は、SSMS のバージョンをアップグレードするか、ステップ1で"SSISDB" を設定します。
- 必要に応じて、接続マネージャータブに接続情報を追加します。RTK 接続プロパティを指定します。
これで、プロジェクトが実行できます。プロジェクトを右クリックし、レポート -> すべての実行をクリックして、実行結果を表示します。
AzureDeploy.ps1 スクリプトの設定
次のセクションでは、デプロイスクリプトで使用可能なオプションの参照を提供します。
必要なパラメータ
- ResourceGroupName:リソースを使用または作成するリソースグループの名前。リソースグループは存在する必要があります。
- SqlServerName:論理SQL データベースの名前もしくはエンドポイント。例:ssishost.database.windows.net
- SqlDatabaseUser:SQL Server ユーザーのユーザー名。
- SqlDatabasePwd:SQL Server ユーザーのパスワード。
- DataFactoryName:使用する(または作成する)Data Factory の名前。データファクトリは、1つの統合ランタイムのみを持つことができます。既存のIR を上書きするには、-IntegrationRuntimeName パラメータを使用して名前を指定します。
- StorageAccountName:使用する(または作成する)ストレージアカウントの名前。
その他のパラメータ
- SubscriptionId: 追加リソースを作製するために使用するサブスクリプションのId。これはResourceGroupName からのサブスクリプションと一致する必要があります。例:2r29814e-1dba-4b11-81cf-dba7b90b74c3
- Location: 追加のリソースを作成する場所。デフォルトは、"EastUS" です。
- SetupContainerName: 作成する(または再利用する)BLOB コンテナーの名前。これらが存在する場合、CData アセンブリファイル、main.cmd、およびSSISDeployUtil.bat は上書きされます。 デフォルトは、"ssissetup" です。
- StorageAccountResourceGroup: 使用するストレージアカウントが異なるリソースグループ上にある場合は、このパラメータは-StorageAccountName が使用するリソースグループの名前を指定します。 それ以外の場合は、デフォルトは-ResourceGroup です。
- RuntimeNodeSize: 統合ランタイムのノードサイズ。 デフォルトは、"Standard_D1_v2" です。
- RuntimeNodeCount: 統合ランタイムのターゲットノードの数。 デフォルトは、1です。
- AzureSSISMaxParallelExecutionsPerNode: ノードごとの最大パラレル実行。 デフォルトは、1です。
- CatalogPricingTier: 統合ランタイムのカタログデータベースプライシングティア。 デフォルトは、"Basic" です。
- AzureSSISEdition: SSIS 統合ランタイムのエディション。Standard またはEnterprise。デフォルトは、Standard です。
- AzureSSISDescription: Azure SSIS ランタイムに提供する説明。 デフォルトは、"Azure SSIS Runtime" です。
- IntegrationRuntimeName:
作成する(または上書きする)統合ランタイムの名前。
デフォルトは、"AzureSSISIR" です。
各SQL Server には、統合ランタイムは1つしか存在できません。既存のSQL Server に統合ランタイムおよびSSISDB(SSIS カタログデータベース)がすでに存在する場合は、-InterationRuntimeName パラメータを指定して上書きすることができます。
AzureLogfile.ps1 スクリプトの使用
AzureLogfile スクリプトは、ローカルシステムおよびプロビジョニングされたSSIS IR の両方にAzure Files ファイル共有をマウントするのに役立ちます。この名前からわかるように、これはCData Logfile のトラブルシューティングに役立ちます。また、スキーマファイルをLocation プロパティで指定する場合や、デプロイされたパッケージからフラットファイルへ読み書きする場合にも便利です。
必要なパラメータ
- ResourceGroupName:リソースを使用または作成するリソースグループの名前。リソースグループは存在する必要があります。
- StorageAccountName:使用するストレージアカウントの名前。
- FileShareName:マウントするために使用する(または作成する)ファイル共有の名前。
- DriveLetter:ローカルシステム上にファイル共有をマウントするための1文字のドライブ文字。
- SqlServerName:論理SQL データベースの名前もしくはエンドポイント。例:ssishost.database.windows.net
- SqlDatabaseUser:SQL Server ユーザーのユーザー名。
- SqlDatabasePwd:SQL Server ユーザーのパスワード。