Поделиться через


Настройка конвейера CI/CD для Azure Data Lake Analytics

В этой статье вы узнаете, как настроить конвейер непрерывной интеграции и развертывания (CI/CD) для заданий U-SQL и баз данных U-SQL.

Это важно

Azure Data Lake Analytics вышел из эксплуатации 29 февраля 2024 года. Дополнительные сведения см. в этом объявлении.

Для аналитики данных ваша организация может использовать Azure Synapse Analytics или Microsoft Fabric.

Замечание

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.

Использование CI/CD для заданий U-SQL

Средства Azure Data Lake для Visual Studio предоставляют тип проекта U-SQL, который помогает упорядочивать сценарии U-SQL. Использование проекта U-SQL для управления кодом U-SQL упрощает дальнейшие сценарии CI/CD.

Создание проекта U-SQL

Проект U-SQL можно создать с помощью ядра сборки Майкрософт (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')" />

Если нет, у вас есть два варианта переноса проекта:

  • Вариант 1. Измените старый элемент импорта на предыдущий.
  • Вариант 2. Откройте старый проект в Azure Data Lake Tools для Visual Studio. Используйте версию новее чем 2.3.3000.0. Старый шаблон проекта будет автоматически обновлен до последней версии. Новые проекты, созданные с версиями более 2.3.3000.0, используют новый шаблон.

Загрузите NuGet

MSBuild не предоставляет встроенную поддержку проектов U-SQL. Чтобы получить эту поддержку, необходимо добавить ссылку на решение в пакет NuGet Microsoft.Azure.DataLake.USQL.SDK , который добавляет требуемую языковую службу.

Чтобы добавить ссылку на пакет 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 включает операцию удаления данных, такую как удаление таблицы и схемы. Перед использованием AllowDataDropStatement необходимо сначала включить AllowDropStatement.

Создание проекта U-SQL с помощью командной строки MSBuild

Сначала перенесите проект и получите пакет 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=<Пакет Nuget U-SQL>\build\rнезавременным временем. Этот параметр ссылается на путь установки пакета NuGet для языковой службы U-SQL.

  • USQLTargetType=Merge или SyntaxCheck:

    • Слияние. Режим слияния компилирует файлы программной части. Примерами являются .cs, .py и R-файлы . Встраивается пользовательская библиотека кода непосредственно в скрипт U-SQL. Примерами являются двоичный файл dll, код Python или R.

    • СинтаксисCheck. Режим синтаксиса сначала объединяет файлы кода программной части в скрипт U-SQL. Затем он компилирует скрипт U-SQL для проверки кода.

  • DataRoot=<Путь> DataRoot. DataRoot требуется только для режима проверки синтаксиса. При сборке скрипта в режиме SyntaxCheck MSBuild проверяет ссылки на объекты базы данных в скрипте. Перед сборкой настройте соответствующую локальную среду, содержащую ссылающиеся объекты из базы данных U-SQL в папке DataRoot компьютера сборки. Вы также можете управлять этими зависимостями базы данных, ссылаясь на проект базы данных U-SQL. MSBuild проверяет только ссылки на объекты базы данных, а не файлы.

  • EnableDeployment=true или false. EnableDeployment указывает, разрешено ли развертывать ссылочные базы данных U-SQL во время процесса сборки. Если вы ссылаетесь на проект базы данных U-SQL и используете объекты базы данных в скрипте U-SQL, задайте для этого параметра значение true.

Непрерывная интеграция с помощью Azure Pipelines

Помимо командной строки, вы также можете использовать задачу Visual Studio Build или MSBuild для создания проектов U-SQL в Azure Pipelines. Чтобы настроить конвейер сборки, обязательно добавьте две задачи в конвейер сборки: задачу восстановления NuGet и задачу MSBuild.

Задача MSBuild для проекта U-SQL

  1. Добавьте задачу восстановления NuGet, чтобы получить пакет NuGet, на который ссылается решение Azure.DataLake.USQL.SDK, чтобы MSBuild мог найти цели языка U-SQL. Задайте Advanced>каталог назначения в $(Build.SourcesDirectory)/packages, если вы хотите использовать образец аргументов MSBuild непосредственно в шаге 2.

    Задача восстановления NuGet для проекта U-SQL

  2. Задайте аргументы MSBuild в средствах сборки Visual Studio или в задаче MSBuild, как показано в следующем примере. Можно также определить переменные для этих аргументов в конвейере сборки Azure Pipelines.

    Определение переменных CI/CD MSBuild для проекта U-SQL

    /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 создаются и выводятся в ZIP-файл с именем USQLProjectName.usqlpack. Структура папок в вашем проекте сохраняется в архивированном выходном файле сборки.

Замечание

Файлы программной части для каждого скрипта U-SQL будут объединены в виде встроенной инструкции с выходными данными сборки скрипта.

Тестирование скриптов U-SQL

Azure Data Lake предоставляет тестовые проекты для сценариев U-SQL и UDO/UDAG/UDF C#:

Развертывание задания U-SQL

После проверки кода с помощью процесса сборки и тестирования можно отправлять задания U-SQL непосредственно из Azure Pipelines через задачу Azure PowerShell. Вы также можете развернуть скрипт в Azure Data Lake Store или хранилище BLOB-объектов Azure и запустить запланированные задания с помощью Фабрики данных Azure.

Отправка заданий U-SQL с помощью Azure Pipelines

Выходные данные сборки проекта U-SQL — это ZIP-файл с именем USQLProjectName.usqlpack. Zip-файл содержит все скрипты U-SQL в проекте. Задачу Azure PowerShell можно использовать в конвейерах со следующим примером скрипта PowerShell для отправки заданий U-SQL непосредственно из Azure Pipelines.

<#
   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-AzDataLakeAnalyticsJob и Wait-AzDataLakeAnalyticsJob являются командлетами Azure PowerShell для Azure Data Lake Analytics в рамках платформы Azure Resource Manager. Вам понадобится рабочая станция с установленным Azure PowerShell. Дополнительные команды и примеры см. в списке команд .

Развертывание заданий U-SQL с помощью фабрики данных Azure

Задания U-SQL можно отправлять непосредственно из Azure Pipelines. Вы также можете отправить встроенные скрипты в Azure Data Lake Store или хранилище BLOB-объектов Azure и запустить запланированные задания с помощью фабрики данных Azure.

Используйте задачу Azure PowerShell в Azure Pipelines со следующим примером скрипта 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

CI/CD для базы данных U-SQL

Средства Azure Data Lake для Visual Studio предоставляют шаблоны проектов базы данных U-SQL, которые помогают разрабатывать, управлять и развертывать базы данных U-SQL. Дополнительные сведения о проекте базы данных U-SQL.

Создание проекта базы данных U-SQL

Получение пакета NuGet

MSBuild не поддерживает встроенные проекты базы данных U-SQL. Чтобы получить эту возможность, необходимо добавить ссылку на решение в пакет NuGet Microsoft.Azure.DataLake.USQL.SDK , который добавляет необходимую языковую службу.

Чтобы добавить ссылку на пакет 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>

Создание проекта базы данных U-SQL с помощью командной строки MSBuild

Чтобы создать проект базы данных U-SQL, вызовите стандартную командную строку MSBuild и передайте ссылку на пакет NuGet для U-SQL в качестве другого аргумента. См. следующий пример.

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

Аргумент USQLSDKPath=<U-SQL Nuget package>\build\runtime ссылается на путь установки пакета NuGet для языковой службы U-SQL.

Непрерывная интеграция с Azure Pipelines

Помимо командной строки можно использовать Visual Studio Build или задачу MSBuild для создания проектов базы данных U-SQL в Azure Pipelines. Чтобы настроить задачу сборки, обязательно добавьте две задачи в конвейер сборки: задачу восстановления NuGet и задачу MSBuild.

Задача CI/CD MSBuild для проекта U-SQL

  1. Добавьте задачу восстановления NuGet, чтобы получить пакет NuGet, ссылку на который даёт решение и который включает в себя Azure.DataLake.USQL.SDK, чтобы MSBuild мог найти цели языка U-SQL. Установите для Advanced>Destination directory значение $(Build.SourcesDirectory)/packages, если вы хотите использовать пример аргументов MSBuild непосредственно на шаге 2.

    Задача CI/CD NuGet для проекта U-SQL

  2. Задайте аргументы MSBuild в средствах сборки Visual Studio или в задаче MSBuild, как показано в следующем примере. Можно также определить переменные для этих аргументов в конвейере сборки Azure Pipelines.

    Определение переменных CI/CD MSBuild для проекта базы данных U-SQL

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

Выходные данные сборки проекта базы данных U-SQL

Выходные данные сборки для проекта базы данных U-SQL — это пакет развертывания базы данных U-SQL с суффиксом в имени .usqldbpack. Пакет .usqldbpack представляет собой ZIP-файл, содержащий все инструкции DDL в одном скрипте U-SQL в папке DDL. Он включает все библиотеки DLL и другие файлы для сборки в папке temp.

Тестирование табличных функций и хранимых процедур

Добавление тестовых вариантов для функций с табличным значением и хранимых процедур напрямую не поддерживается. В качестве обходного решения можно создать проект U-SQL с скриптами U-SQL, которые вызывают эти функции и записывают тестовые варианты для них. Выполните следующие действия, чтобы настроить тестовые случаи для табличных функций и хранимых процедур, определенных в проекте базы данных U-SQL:

  1. Создайте проект U-SQL для тестовых целей и напишите скрипты U-SQL, вызывающие табличные функции и хранимые процедуры.

  2. Добавьте ссылку на базу данных в проект U-SQL. Чтобы получить табличное значение функции и определение хранимой процедуры, необходимо ссылаться на проект базы данных, содержащий инструкцию DDL. Дополнительные сведения о ссылках на базу данных.

  3. Добавьте тестовые случаи для скриптов U-SQL, которые вызывают табличные функции и хранимые процедуры. Узнайте, как добавлять тестовые случаи для сценариев U-SQL.

Развертывание базы данных U-SQL с помощью Azure Pipelines

PackageDeploymentTool.exe предоставляет интерфейсы программирования и командной строки, которые помогают развертывать пакеты развертывания базы данных U-SQL, usqldbpack. Пакет SDK входит в пакет NuGet для U-SQL, расположенный в build/runtime/PackageDeploymentTool.exe. С помощью PackageDeploymentTool.exeможно развернуть базы данных U-SQL как в Azure Data Lake Analytics, так и в локальных учетных записях.

Замечание

Поддержка командной строки PowerShell и поддержка задач выпуска Azure Pipelines для развертывания базы данных U-SQL в настоящее время не доступна.

Выполните следующие действия, чтобы настроить задачу развертывания базы данных в Azure Pipelines:

  1. Добавьте задачу скрипта PowerShell в конвейер сборки или выпуска и выполните следующий скрипт PowerShell. Эта задача помогает получить зависимости SDK для PackageDeploymentTool.exe и PackageDeploymentTool.exe в Azure. Параметры -AzureSDK и -DBDeploymentTool можно задать для загрузки зависимостей и средства развертывания в определенные папки. Передайте путь к -AzureSDK в PackageDeploymentTool.exe в виде параметра -AzureSDKPath на этапе 2.

    <#
       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

Общие параметры

Параметр Описание Значение по умолчанию Обязательно
Пакет Путь к пакету для развертывания базы данных U-SQL. нулевой правда
База данных Имя базы данных для развертывания или создания. мастер неправда
LogFile Путь к файлу для ведения журнала. По умолчанию используется стандартная версия (консоль). нулевой неправда
LogLevel Уровень журнала: подробный, обычный, предупреждение или ошибка. LogLevel.Normal неправда

Параметр для локального развертывания

Параметр Описание Значение по умолчанию Обязательно
DataRoot Путь к корневой папке локальных данных. null правда

Параметры развертывания Azure Data Lake Analytics

Параметр Описание Значение по умолчанию Обязательно
Счет Указывает, на какой учетной записи Azure Data Lake Analytics провести развертывание, используя имя учетной записи. недействительный правда
ResourceGroup Имя группы ресурсов Azure для учетной записи Azure Data Lake Analytics. нулевой правда
Идентификатор подписки (SubscriptionId) Идентификатор подписки Azure для учетной записи Azure Data Lake Analytics. недействительный правда
Арендатор Имя клиента — это доменное имя Microsoft Entra. Найдите его на странице управления подписками на портале Azure. нулевой правда
AzureSDKPath (путь к SDK Azure) Путь к поиску зависимых сборок в пакете SDK Azure. пусто правда
Интерактивный Использовать или не использовать интерактивный режим для проверки подлинности. неправда неправда
ClientId Идентификатор приложения Microsoft Entra, необходимый для неинтерактивной проверки подлинности. нулевой Требуется для неинтерактивной проверки подлинности.
Секрет Секрет или пароль для неинтерактивной проверки подлинности. Его следует использовать только в надежной и безопасной среде. нулевой Требуется для неинтерактивной проверки подлинности, или используйте SecreteFile.
SecretFile Файл сохраняет секрет или пароль для неинтерактивной проверки подлинности. Убедитесь, что он доступен только для чтения текущим пользователем. нулевой Требуется для неинтерактивной проверки подлинности или использования секрета.
Файл сертификата Файл сохраняет сертификацию X.509 для неинтерактивной проверки подлинности. По умолчанию используется проверка подлинности секрета клиента. недействительный неправда
ПрефиксРабота Префикс для развертывания базы данных в задании U-SQL DDL. Deploy_ + DateTime.Now неправда

Дальнейшие действия