次の方法で共有


Azure Data Lake Analytics の CI/CD パイプラインを設定する方法

この記事では、U-SQL ジョブと U-SQL データベースの継続的インテグレーションおよびデプロイ (CI/CD) パイプラインを設定する方法について説明します。

重要

Azure Data Lake Analytics は 2024 年 2 月 29 日に廃止されました。 このお知らせで詳細を学びましょう

データ分析の場合、組織は Azure Synapse Analytics または Microsoft Fabric を使用できます。

Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「Azure PowerShell を AzureRM から Azに移行する」を参照してください。

U-SQL ジョブに CI/CD を使用する

Azure Data Lake Tools for Visual Studio には、U-SQL スクリプトの整理に役立つ U-SQL プロジェクトの種類が用意されています。 U-SQL プロジェクトを使用して U-SQL コードを管理すると、CI/CD シナリオがさらに簡単になります。

U-SQL プロジェクトをビルドする

U-SQL プロジェクトは、対応するパラメーターを渡すことによって、Microsoft ビルド エンジン (MSBuild) を使用してビルドできます。 この記事の手順に従って、U-SQL プロジェクトのビルド プロセスを設定します。

プロジェクトの移行

U-SQL プロジェクトのビルド タスクを設定する前に、U-SQL プロジェクトの最新バージョンがあることを確認してください。 エディターで U-SQL プロジェクト ファイルを開き、次のインポート項目があることを確認します。

<!-- check for SDK Build target in current path then in USQLSDKPath-->
<Import Project="UsqlSDKBuild.targets" Condition="Exists('UsqlSDKBuild.targets')" />
<Import Project="$(USQLSDKPath)\UsqlSDKBuild.targets" Condition="!Exists('UsqlSDKBuild.targets') And '$(USQLSDKPath)' != '' And Exists('$(USQLSDKPath)\UsqlSDKBuild.targets')" />

そうでない場合は、プロジェクトを移行する 2 つのオプションがあります。

  • オプション 1: 古いインポート項目を前のインポート項目に変更します。
  • オプション 2: Azure Data Lake Tools for Visual Studio で古いプロジェクトを開きます。 2.3.3000.0 より新しいバージョンを使用します。 古いプロジェクト テンプレートは、自動的に最新バージョンにアップグレードされます。 2.3.3000.0 より新しいバージョンで作成された新しいプロジェクトでは、新しいテンプレートが使用されます。

NuGet を取得する

MSBuild では、U-SQL プロジェクトの組み込みサポートは提供されません。 このサポートを受けるためには、必要な言語サービスを追加する Microsoft.Azure.DataLake.USQL.SDK NuGet パッケージにソリューションの参照を追加する必要があります。

NuGet パッケージ参照を追加するには、Visual Studio ソリューション エクスプローラーでソリューションを右クリックし、[ NuGet パッケージの管理] を選択します。 または、ソリューション フォルダーに packages.config という名前のファイルを追加し、次の内容を配置できます。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.Azure.DataLake.USQL.SDK" version="1.3.180620" targetFramework="net452" />
</packages>

U-SQL データベース参照の管理

U-SQL プロジェクトの U-SQL スクリプトには、U-SQL データベース オブジェクトのクエリ ステートメントが含まれている場合があります。 その場合は、U-SQL プロジェクトをビルドする前に、オブジェクトの定義を含む対応する U-SQL データベース プロジェクトを参照する必要があります。 たとえば、U-SQL テーブルに対してクエリを実行したり、アセンブリを参照したりします。

U-SQL データベース プロジェクトの詳細を確認します。

DROP ステートメントを使用すると、誤って削除される可能性があります。 DROP ステートメントを有効にするには、MSBuild 引数を明示的に指定する必要があります。 AllowDropStatement では、ドロップ アセンブリやドロップ テーブル値関数など、データに関連しない DROP 操作が有効になります。 AllowDataDropStatement では、ドロップ テーブルやドロップ スキーマなど、データ関連の DROP 操作が有効になります。 AllowDataDropStatement を使用する前に、AllowDropStatement を有効にする必要があります。

MSBuild コマンド ラインを使用して U-SQL プロジェクトをビルドする

最初にプロジェクトを移行し、NuGet パッケージを取得します。 次に、次の引数を指定して標準の MSBuild コマンド ラインを呼び出して、U-SQL プロジェクトをビルドします。

msbuild USQLBuild.usqlproj /p:USQLSDKPath=packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.180615\build\runtime;USQLTargetType=SyntaxCheck;DataRoot=datarootfolder;/p:EnableDeployment=true

引数の定義と値は次のとおりです。

  • USQLSDKPath=<U-SQL Nuget パッケージ>\build\runtime。 このパラメーターは、U-SQL 言語サービスの NuGet パッケージのインストール パスを参照します。

  • USQLTargetType=Merge または SyntaxCheck:

    • 結合。 マージ モードでは、コードビハインド ファイルがコンパイルされます。 たとえば、 .cs.pyおよび .r ファイルがあります。 結果のユーザー定義コード ライブラリが U-SQL スクリプトにインライン化されます。 例として、dll バイナリ、Python、または R コードがあります。

    • SyntaxCheck。 SyntaxCheck モードでは、最初にコードビハインドファイルが U-SQL スクリプトにマージされます。 次に、U-SQL スクリプトをコンパイルしてコードを検証します。

  • DataRoot=<DataRootのパス>。 DataRoot は SyntaxCheck モードでのみ必要です。 SyntaxCheck モードでスクリプトをビルドすると、MSBuild はスクリプト内のデータベース オブジェクトへの参照をチェックします。 ビルドする前に、ビルド マシンの DataRoot フォルダー内の U-SQL データベースから参照されるオブジェクトを含む一致するローカル環境を設定します。 U-SQL データベース プロジェクトを参照して 、これらのデータベースの依存関係を管理することもできます。 MSBuild では、ファイルではなく、データベース オブジェクト参照のみがチェックされます。

  • EnableDeployment=true または false。 EnableDeployment は、ビルド プロセス中に参照される U-SQL データベースのデプロイが許可されているかどうかを示します。 U-SQL データベース プロジェクトを参照し、U-SQL スクリプトでデータベース オブジェクトを使用する場合は、このパラメーターを true に設定します。

Azure Pipelines を使用した継続的インテグレーション

コマンド ラインに加えて、Visual Studio ビルドまたは MSBuild タスクを使用して、Azure Pipelines で U-SQL プロジェクトをビルドすることもできます。 ビルド パイプラインを設定するには、NuGet 復元タスクと MSBuild タスクという 2 つのタスクをビルド パイプラインに追加してください。

U-SQL プロジェクトの MSBuild タスク

  1. NUGet 復元タスクを追加して、MSBuild が U-SQL 言語ターゲットを見つけられるように、 Azure.DataLake.USQL.SDKを含むソリューション参照 NuGet パッケージを取得します。 手順 2 で MSBuild 引数のサンプルを直接使用する場合は、 Advanced>Destination ディレクトリ$(Build.SourcesDirectory)/packages に設定します。

    U-SQL プロジェクトの NuGet 復元タスク

  2. 次の例に示すように、Visual Studio ビルド ツールまたは MSBuild タスクで MSBuild 引数を設定します。 または、Azure Pipelines ビルド パイプラインでこれらの引数の変数を定義することもできます。

    U-SQL プロジェクトの CI/CD MSBuild 変数を定義する

    /p:USQLSDKPath=$(Build.SourcesDirectory)/packages/Microsoft.Azure.DataLake.USQL.SDK.1.3.180615/build/runtime /p:USQLTargetType=SyntaxCheck /p:DataRoot=$(Build.SourcesDirectory) /p:EnableDeployment=true
    

U-SQL プロジェクトのビルド出力

ビルドを実行すると、U-SQL プロジェクト内のすべてのスクリプトがビルドされ、 USQLProjectName.usqlpackという名前の zip ファイルに出力されます。 プロジェクト内のフォルダー構造は、zip 形式のビルド出力に保持されます。

各 U-SQL スクリプトの分離コード ファイルは、インライン ステートメントとしてスクリプト ビルド出力にマージされます。

U-SQL スクリプトをテストする

Azure Data Lake には、U-SQL スクリプトと C# UDO/UDAG/UDF のテスト プロジェクトが用意されています。

U-SQL ジョブをデプロイする

ビルドおよびテスト プロセスでコードを検証した後、Azure PowerShell タスクを介して Azure Pipelines から直接 U-SQL ジョブを送信できます。 スクリプトを Azure Data Lake Store または Azure Blob Storage にデプロイし、 Azure Data Factory を介してスケジュールされたジョブを実行することもできます。

Azure Pipelines を使用して U-SQL ジョブを送信する

U-SQL プロジェクトのビルド出力は、 USQLProjectName.usqlpack という名前の zip ファイルです。 zip ファイルには、プロジェクト内のすべての U-SQL スクリプトが含まれています。 パイプラインの Azure PowerShell タスク を次のサンプル PowerShell スクリプトと共に使用して、Azure Pipelines から直接 U-SQL ジョブを送信できます。

<#
   This script can be used to submit U-SQL Jobs with given U-SQL project build output(.usqlpack file).
   This will unzip the U-SQL project build output, and submit all scripts one-by-one.

   Note: the code behind file for each U-SQL script will be merged into the built U-SQL script in build output.

   Example :
      USQLJobSubmission.ps1 -ADLAAccountName "myadlaaccount" -ArtifactsRoot "C:\USQLProject\bin\debug\" -DegreeOfParallelism 2
#>

param(
   [Parameter(Mandatory=$true)][string]$ADLAAccountName, # ADLA account name to submit U-SQL jobs
   [Parameter(Mandatory=$true)][string]$ArtifactsRoot, # Root folder of U-SQL project build output
   [Parameter(Mandatory=$false)][string]$DegreeOfParallelism = 1
)

function Unzip($USQLPackfile, $UnzipOutput)
{
   $USQLPackfileZip = Rename-Item -Path $USQLPackfile -NewName $([System.IO.Path]::ChangeExtension($USQLPackfile, ".zip")) -Force -PassThru
   Expand-Archive -Path $USQLPackfileZip -DestinationPath $UnzipOutput -Force
   Rename-Item -Path $USQLPackfileZip -NewName $([System.IO.Path]::ChangeExtension($USQLPackfileZip, ".usqlpack")) -Force
}

## Get U-SQL scripts in U-SQL project build output(.usqlpack file)
Function GetUsqlFiles()
{

   $USQLPackfiles = Get-ChildItem -Path $ArtifactsRoot -Include *.usqlpack -File -Recurse -ErrorAction SilentlyContinue

   $UnzipOutput = Join-Path $ArtifactsRoot -ChildPath "UnzipUSQLScripts"

   foreach ($USQLPackfile in $USQLPackfiles)
   {
      Unzip $USQLPackfile $UnzipOutput
   }

   $USQLFiles = Get-ChildItem -Path $UnzipOutput -Include *.usql -File -Recurse -ErrorAction SilentlyContinue

   return $USQLFiles
}

## Submit U-SQL scripts to ADLA account one-by-one
Function SubmitAnalyticsJob()
{
   $usqlFiles = GetUsqlFiles

   Write-Output "$($usqlFiles.Count) jobs to be submitted..."

   # Submit each usql script and wait for completion before moving ahead.
   foreach ($usqlFile in $usqlFiles)
   {
      $scriptName = "[Release].[$([System.IO.Path]::GetFileNameWithoutExtension($usqlFile.fullname))]"

      Write-Output "Submitting job for '{$usqlFile}'"

      $jobToSubmit = Submit-AzDataLakeAnalyticsJob -Account $ADLAAccountName -Name $scriptName -ScriptPath $usqlFile -DegreeOfParallelism $DegreeOfParallelism

      LogJobInformation $jobToSubmit

      Write-Output "Waiting for job to complete. Job ID:'{$($jobToSubmit.JobId)}', Name: '$($jobToSubmit.Name)' "
      $jobResult = Wait-AzDataLakeAnalyticsJob -Account $ADLAAccountName -JobId $jobToSubmit.JobId  
      LogJobInformation $jobResult
   }
}

Function LogJobInformation($jobInfo)
{
   Write-Output "************************************************************************"
   Write-Output ([string]::Format("Job Id: {0}", $(DefaultIfNull $jobInfo.JobId)))
   Write-Output ([string]::Format("Job Name: {0}", $(DefaultIfNull $jobInfo.Name)))
   Write-Output ([string]::Format("Job State: {0}", $(DefaultIfNull $jobInfo.State)))
   Write-Output ([string]::Format("Job Started at: {0}", $(DefaultIfNull  $jobInfo.StartTime)))
   Write-Output ([string]::Format("Job Ended at: {0}", $(DefaultIfNull  $jobInfo.EndTime)))
   Write-Output ([string]::Format("Job Result: {0}", $(DefaultIfNull $jobInfo.Result)))
   Write-Output "************************************************************************"
}

Function DefaultIfNull($item)
{
   if ($item -ne $null)
   {
      return $item
   }
   return ""
}

Function Main()
{
   Write-Output ([string]::Format("ADLA account: {0}", $ADLAAccountName))
   Write-Output ([string]::Format("Root folde for usqlpack: {0}", $ArtifactsRoot))
   Write-Output ([string]::Format("AU count: {0}", $DegreeOfParallelism))

   Write-Output "Starting USQL script deployment..."

   SubmitAnalyticsJob

   Write-Output "Finished deployment..."
}

Main

コマンド: Submit-AzDataLakeAnalyticsJobWait-AzDataLakeAnalyticsJob は、どちらも Azure Resource Manager フレームワークの Azure Data Lake Analytics 用の Azure PowerShell コマンドレットです。 Azure PowerShell がインストールされたワークステーションが必要です。 その他のコマンドと例については、 コマンドの一覧 を参照してください。

Azure Data Factory を使用して U-SQL ジョブをデプロイする

U-SQL ジョブは、Azure Pipelines から直接送信できます。 または、ビルドされたスクリプトを Azure Data Lake Store または Azure Blob Storage にアップロードし、 Azure Data Factory を介してスケジュールされたジョブを実行できます。

次のサンプル PowerShell スクリプトで Azure Pipelines の Azure PowerShell タスク を使用して、U-SQL スクリプトを Azure Data Lake Store アカウントにアップロードします。

<#
   This script can be used to upload U-SQL files to ADLS with given U-SQL project build output(.usqlpack file).
   This will unzip the U-SQL project build output, and upload all scripts to ADLS one-by-one.

   Example :
      FileUpload.ps1 -ADLSName "myadlsaccount" -ArtifactsRoot "C:\USQLProject\bin\debug\"
#>

param(
   [Parameter(Mandatory=$true)][string]$ADLSName, # ADLS account name to upload U-SQL scripts
   [Parameter(Mandatory=$true)][string]$ArtifactsRoot, # Root folder of U-SQL project build output
   [Parameter(Mandatory=$false)][string]$DestinationFolder = "USQLScriptSource" # Destination folder in ADLS
)

Function UploadResources()
{
   Write-Host "************************************************************************"
   Write-Host "Uploading files to $ADLSName"
   Write-Host "***********************************************************************"

   $usqlScripts = GetUsqlFiles

   $files = @(get-childitem $usqlScripts -recurse)
   foreach($file in $files)
   {
      Write-Host "Uploading file: $($file.Name)"
      Import-AzDataLakeStoreItem -AccountName $ADLSName -Path $file.FullName -Destination "/$(Join-Path $DestinationFolder $file)" -Force
   }
}

function Unzip($USQLPackfile, $UnzipOutput)
{
   $USQLPackfileZip = Rename-Item -Path $USQLPackfile -NewName $([System.IO.Path]::ChangeExtension($USQLPackfile, ".zip")) -Force -PassThru
   Expand-Archive -Path $USQLPackfileZip -DestinationPath $UnzipOutput -Force
   Rename-Item -Path $USQLPackfileZip -NewName $([System.IO.Path]::ChangeExtension($USQLPackfileZip, ".usqlpack")) -Force
}

Function GetUsqlFiles()
{

   $USQLPackfiles = Get-ChildItem -Path $ArtifactsRoot -Include *.usqlpack -File -Recurse -ErrorAction SilentlyContinue

   $UnzipOutput = Join-Path $ArtifactsRoot -ChildPath "UnzipUSQLScripts"

   foreach ($USQLPackfile in $USQLPackfiles)
   {
      Unzip $USQLPackfile $UnzipOutput
   }

   return Get-ChildItem -Path $UnzipOutput -Include *.usql -File -Recurse -ErrorAction SilentlyContinue
}

UploadResources

U-SQL データベースの CI/CD

Azure Data Lake Tools for Visual Studio には、U-SQL データベースの開発、管理、デプロイに役立つ U-SQL データベース プロジェクト テンプレートが用意されています。 U-SQL データベース プロジェクトの詳細を確認します。

U-SQL データベース プロジェクトのビルド

NuGet パッケージを取得する

MSBuild では、U-SQL データベース プロジェクトの組み込みサポートは提供されません。 この機能を取得するには、必要な言語サービスを追加する Microsoft.Azure.DataLake.USQL.SDK NuGet パッケージにソリューションの参照を追加する必要があります。

NuGet パッケージ参照を追加するには、Visual Studio ソリューション エクスプローラーでソリューションを右クリックします。 [NuGet パッケージ管理]を選択します。 次に、NuGet パッケージを検索してインストールします。 または、ソリューション フォルダーに packages.config という名前のファイルを追加し、その中に次の内容を配置できます。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.Azure.DataLake.USQL.SDK" version="1.3.180615" targetFramework="net452" />
</packages>

MSBuild コマンド ラインを使用して U-SQL データベース プロジェクトをビルドする

U-SQL データベース プロジェクトをビルドするには、標準の MSBuild コマンド ラインを呼び出し、U-SQL SDK NuGet パッケージ参照を別の引数として渡します。 次の例を参照してください。

msbuild DatabaseProject.usqldbproj /p:USQLSDKPath=packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.180615\build\runtime

引数 USQLSDKPath=<U-SQL Nuget package>\build\runtime は、U-SQL 言語サービスの NuGet パッケージのインストール パスを参照します。

Azure Pipelines との継続的インテグレーション

コマンド ラインに加えて、Visual Studio Build または MSBuild タスクを使用して、Azure Pipelines で U-SQL データベース プロジェクトをビルドできます。 ビルド タスクを設定するには、NuGet 復元タスクと MSBuild タスクという 2 つのタスクをビルド パイプラインに追加してください。

U-SQL プロジェクトの CI/CD MSBuild タスク

  1. NuGet 復元タスクを追加して、ソリューションで参照される NuGet パッケージ ( Azure.DataLake.USQL.SDKを含む) を取得し、MSBuild が U-SQL 言語ターゲットを見つけられるようにします。 手順 2 で MSBuild 引数のサンプルを直接使用する場合は、 Advanced>Destination ディレクトリ$(Build.SourcesDirectory)/packages に設定します。

    U-SQL プロジェクトの CI/CD NuGet タスク

  2. 次の例に示すように、Visual Studio ビルド ツールまたは MSBuild タスクで MSBuild 引数を設定します。 または、Azure Pipelines ビルド パイプラインでこれらの引数の変数を定義することもできます。

    U-SQL データベース プロジェクトの CI/CD MSBuild 変数を定義する

    /p:USQLSDKPath=$(Build.SourcesDirectory)/packages/Microsoft.Azure.DataLake.USQL.SDK.1.3.180615/build/runtime
    

U-SQL データベース プロジェクトのビルド出力

U-SQL データベース プロジェクトのビルド出力は、サフィックス .usqldbpackで名前が付けられた U-SQL データベース配置パッケージです。 .usqldbpack パッケージは、DDL フォルダー内の単一の U-SQL スクリプト内のすべての DDL ステートメントを含む zip ファイルです。 これには、一時フォルダー内のアセンブリのすべての .dll と他のファイルが含まれています。

テーブル値関数とストアド プロシージャをテストする

テーブル値関数とストアド プロシージャのテスト ケースを直接追加することは現在サポートされていません。 回避策として、これらの関数を呼び出してテスト ケースを記述する U-SQL スクリプトを含む U-SQL プロジェクトを作成できます。 U-SQL データベース プロジェクトで定義されているテーブル値関数とストアド プロシージャのテスト ケースを設定するには、次の手順を実行します。

  1. テスト目的で U-SQL プロジェクトを作成し、テーブル値関数とストアド プロシージャを呼び出す U-SQL スクリプトを記述します。

  2. U-SQL プロジェクトにデータベース参照を追加します。 テーブル値関数とストアド プロシージャの定義を取得するには、DDL ステートメントを含むデータベース プロジェクトを参照する必要があります。 データベース参照の詳細を確認します。

  3. テーブル値関数とストアド プロシージャを呼び出す U-SQL スクリプトのテスト ケースを追加します。 U-SQL スクリプトのテスト ケースを追加する方法について説明します。

Azure Pipelines を使用して U-SQL データベースをデプロイする

PackageDeploymentTool.exe には、U-SQL データベース配置パッケージ .usqldbpack のデプロイに役立つプログラミングインターフェイスとコマンド ライン インターフェイスが用意されています。 SDK は、ビルド/ランタイム/PackageDeploymentTool.exeにある U-SQL SDK NuGet パッケージに含まれています。 PackageDeploymentTool.exeを使用すると、Azure Data Lake Analytics とローカル アカウントの両方に U-SQL データベースをデプロイできます。

U-SQL データベースのデプロイに対する PowerShell コマンド ライン のサポートと Azure Pipelines リリース タスクのサポートは、現在保留中です。

Azure Pipelines でデータベースデプロイ タスクを設定するには、次の手順を実行します。

  1. ビルドまたはリリース パイプラインに PowerShell スクリプト タスクを追加し、次の PowerShell スクリプトを実行します。 このタスクは、 PackageDeploymentTool.exePackageDeploymentTool.exeの Azure SDK の依存関係を取得するのに役立ちます。 -AzureSDK パラメーターと -DBDeploymentTool パラメーターを設定して、依存関係とデプロイ ツールを特定のフォルダーに読み込むことができます。 手順 2 で -AzureSDKPath パラメーターとして -PackageDeploymentTool.exe パスをに渡します。

    <#
       This script is used for getting dependencies and SDKs for U-SQL database deployment.
       PowerShell command line support for deploying U-SQL database package(.usqldbpack file) will come soon.
    
       Example :
           GetUSQLDBDeploymentSDK.ps1 -AzureSDK "AzureSDKFolderPath" -DBDeploymentTool "DBDeploymentToolFolderPath"
    #>
    
    param (
       [string]$AzureSDK = "AzureSDK", # Folder to cache Azure SDK dependencies
       [string]$DBDeploymentTool = "DBDeploymentTool", # Folder to cache U-SQL database deployment tool
       [string]$workingfolder = "" # Folder to execute these command lines
    )
    
    if ([string]::IsNullOrEmpty($workingfolder))
    {
       $scriptpath = $MyInvocation.MyCommand.Path
       $workingfolder = Split-Path $scriptpath
    }
    cd $workingfolder
    
    echo "workingfolder=$workingfolder, outputfolder=$outputfolder"
    echo "Downloading required packages..."
    
    iwr https://www.nuget.org/api/v2/package/Microsoft.Azure.Management.DataLake.Analytics/3.5.1-preview -outf Microsoft.Azure.Management.DataLake.Analytics.3.5.1-preview.zip
    iwr https://www.nuget.org/api/v2/package/Microsoft.Azure.Management.DataLake.Store/2.4.1-preview -outf Microsoft.Azure.Management.DataLake.Store.2.4.1-preview.zip
    iwr https://www.nuget.org/api/v2/package/Microsoft.IdentityModel.Clients.ActiveDirectory/2.28.3 -outf Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3.zip
    iwr https://www.nuget.org/api/v2/package/Microsoft.Rest.ClientRuntime/2.3.11 -outf Microsoft.Rest.ClientRuntime.2.3.11.zip
    iwr https://www.nuget.org/api/v2/package/Microsoft.Rest.ClientRuntime.Azure/3.3.7 -outf Microsoft.Rest.ClientRuntime.Azure.3.3.7.zip
    iwr https://www.nuget.org/api/v2/package/Microsoft.Rest.ClientRuntime.Azure.Authentication/2.3.3 -outf Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.3.zip
    iwr https://www.nuget.org/api/v2/package/Newtonsoft.Json/6.0.8 -outf Newtonsoft.Json.6.0.8.zip
    iwr https://www.nuget.org/api/v2/package/Microsoft.Azure.DataLake.USQL.SDK/ -outf USQLSDK.zip
    
    echo "Extracting packages..."
    
    Expand-Archive Microsoft.Azure.Management.DataLake.Analytics.3.5.1-preview.zip -DestinationPath Microsoft.Azure.Management.DataLake.Analytics.3.5.1-preview -Force
    Expand-Archive Microsoft.Azure.Management.DataLake.Store.2.4.1-preview.zip -DestinationPath Microsoft.Azure.Management.DataLake.Store.2.4.1-preview -Force
    Expand-Archive Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3.zip -DestinationPath Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3 -Force
    Expand-Archive Microsoft.Rest.ClientRuntime.2.3.11.zip -DestinationPath Microsoft.Rest.ClientRuntime.2.3.11 -Force
    Expand-Archive Microsoft.Rest.ClientRuntime.Azure.3.3.7.zip -DestinationPath Microsoft.Rest.ClientRuntime.Azure.3.3.7 -Force
    Expand-Archive Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.3.zip -DestinationPath Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.3 -Force
    Expand-Archive Newtonsoft.Json.6.0.8.zip -DestinationPath Newtonsoft.Json.6.0.8 -Force
    Expand-Archive USQLSDK.zip -DestinationPath USQLSDK -Force
    
    echo "Copy required DLLs to output folder..."
    
    mkdir $AzureSDK -Force
    mkdir $DBDeploymentTool -Force
    copy Microsoft.Azure.Management.DataLake.Analytics.3.5.1-preview\lib\net452\*.dll $AzureSDK
    copy Microsoft.Azure.Management.DataLake.Store.2.4.1-preview\lib\net452\*.dll $AzureSDK
    copy Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\*.dll $AzureSDK
    copy Microsoft.Rest.ClientRuntime.2.3.11\lib\net452\*.dll $AzureSDK
    copy Microsoft.Rest.ClientRuntime.Azure.3.3.7\lib\net452\*.dll $AzureSDK
    copy Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.3\lib\net452\*.dll $AzureSDK
    copy Newtonsoft.Json.6.0.8\lib\net45\*.dll $AzureSDK
    copy USQLSDK\build\runtime\*.* $DBDeploymentTool
    
  2. ビルドまたはリリース パイプラインに Command-Line タスク を追加し、 PackageDeploymentTool.exeを呼び出してスクリプトに入力します。 PackageDeploymentTool.exe は、定義された $DBDeploymentTool フォルダーの下にあります。 サンプル スクリプトは次のとおりです。

    • U-SQL データベースをローカルにデプロイします。

      PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
      
    • 対話型認証モードを使用して、U-SQL データベースを Azure Data Lake Analytics アカウントにデプロイします。

      PackageDeploymentTool.exe deploycluster -Package <package path> -Database <database name> -Account <account name> -ResourceGroup <resource group name> -SubscriptionId <subscript id> -Tenant <tenant name> -AzureSDKPath <azure sdk path> -Interactive
      
    • シークレット認証を使用して、U-SQL データベースを Azure Data Lake Analytics アカウントにデプロイします。

      PackageDeploymentTool.exe deploycluster -Package <package path> -Database <database name> -Account <account name> -ResourceGroup <resource group name> -SubscriptionId <subscript id> -Tenant <tenant name> -ClientId <client id> -Secrete <secrete>
      
    • certFile 認証を使用して、U-SQL データベースを Azure Data Lake Analytics アカウントにデプロイします。

      PackageDeploymentTool.exe deploycluster -Package <package path> -Database <database name> -Account <account name> -ResourceGroup <resource group name> -SubscriptionId <subscript id> -Tenant <tenant name> -ClientId <client id> -Secrete <secrete> -CertFile <certFile>
      

パラメーターの説明 PackageDeploymentTool.exe

共通パラメーター

パラメーター 説明 既定値 必須
Package デプロイする U-SQL データベース デプロイ パッケージのパス。 無効 ほんとう
データベース デプロイまたは作成するデータベース名。 マスター 偽り
ログファイル ログ記録用のファイルのパス。 標準出力 (コンソール) にデフォルト設定されています。 無効 偽り
LogLevel ログレベル: 冗長, 通常, 警告, またはエラー。 LogLevel.Normal 偽り

ローカル デプロイのパラメーター

パラメーター 説明 既定値 必須
DataRoot ローカル データ ルート フォルダーのパス。 無効 ほんとう

Azure Data Lake Analytics デプロイのパラメーター

パラメーター 説明 既定値 必須
アカウント デプロイ先の Azure Data Lake Analytics アカウントをアカウント名で指定します。 無効 ほんとう
リソースグループ (ResourceGroup) Azure Data Lake Analytics アカウントの Azure リソース グループ名。 無効 ほんとう
購読ID Azure Data Lake Analytics アカウントの Azure サブスクリプション ID。 無効 ほんとう
テナント テナント名は Microsoft Entra ドメイン名です。 Azure portal のサブスクリプション管理ページで見つけます。 無効 ほんとう
AzureSDKPath Azure SDK で依存アセンブリを検索するパス。 無効 ほんとう
インタラクティブ 認証に対話型モードを使用するかどうか。 偽り 偽り
ClientId 非対話型認証に必要な Microsoft Entra アプリケーション ID。 無効 非対話型認証に必要です。
秘密 非対話型認証のシークレットまたはパスワード。 これは、信頼されたセキュリティで保護された環境でのみ使用する必要があります。 無効 非対話型認証に必要です。それ以外の場合は SecreteFile を使用します。
SecretFile このファイルは、非対話型認証のシークレットまたはパスワードを保存します。 現在のユーザーのみが読めるようにしてください。 無効 非対話型認証に必要です。それ以外の場合はシークレットを使用します。
証明書ファイル このファイルは、非対話型認証の X.509 認定を保存します。 既定では、クライアント シークレット認証を使用します。 無効 偽り
ジョブプレフィックス U-SQL DDL ジョブのデータベースデプロイのプレフィックス。 Deploy_ + DateTime.Now 偽り

次のステップ