Como configurar um pipeline CI/CD para o Azure Data Lake Analytics

Neste artigo, irá aprender a configurar um pipeline de integração e implementação contínua (CI/CD) para tarefas U-SQL e bases de dados U-SQL.

Importante

O Azure Data Lake Analytics descontinuado a 29 de fevereiro de 2024. Saiba mais com este anúncio.

Para análise de dados, a sua organização pode utilizar o Azure Synapse Analytics ou o Microsoft Fabric.

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Utilizar CI/CD para tarefas U-SQL

O Azure Data Lake Tools para Visual Studio fornece o tipo de projeto U-SQL que o ajuda a organizar scripts U-SQL. Utilizar o projeto U-SQL para gerir o código U-SQL facilita mais cenários de CI/CD.

Criar um projeto U-SQL

Um projeto U-SQL pode ser criado com o Motor de Compilação da Microsoft (MSBuild) ao transmitir os parâmetros correspondentes. Siga os passos neste artigo para configurar um processo de compilação para um projeto U-SQL.

Migração de projetos

Antes de configurar uma tarefa de compilação para um projeto U-SQL, certifique-se de que tem a versão mais recente do projeto U-SQL. Abra o ficheiro de projeto U-SQL no seu editor e verifique se tem estes itens de importação:

<!-- 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')" />

Caso contrário, tem duas opções para migrar o projeto:

  • Opção 1: altere o item de importação antigo para o anterior.
  • Opção 2: abra o projeto antigo no Azure Data Lake Tools para Visual Studio. Utilize uma versão mais recente do que 2.3.3000.0. O modelo de projeto antigo será atualizado automaticamente para a versão mais recente. Os novos projetos criados com versões mais recentes do que 2.3.3000.0 utilizam o novo modelo.

Obter NuGet

O MSBuild não fornece suporte incorporado para projetos U-SQL. Para obter este suporte, tem de adicionar uma referência para a sua solução ao pacote NuGet Microsoft.Azure.DataLake.USQL.SDK que adiciona o serviço de idioma necessário.

Para adicionar a referência do pacote NuGet, clique com o botão direito do rato na solução no Visual Studio Explorador de Soluções e selecione Gerir Pacotes NuGet. Em alternativa, pode adicionar um ficheiro chamado packages.config na pasta da solução e colocar os seguintes conteúdos no mesmo:

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

Gerir referências de bases de dados U-SQL

Os scripts U-SQL num projeto U-SQL podem ter instruções de consulta para objetos de base de dados U-SQL. Nesse caso, tem de referenciar o projeto de base de dados U-SQL correspondente que inclui a definição dos objetos antes de criar o projeto U-SQL. Um exemplo é quando consulta uma tabela U-SQL ou faz referência a uma assemblagem.

Saiba mais sobre o projeto de base de dados U-SQL.

Nota

A instrução DROP pode causar uma eliminação acidental. Para ativar a instrução DROP, tem de especificar explicitamente os argumentos MSBuild. AllowDropStatement ativará a operação DROP não relacionada com dados, como a função drop assembly e drop table valued. AllowDataDropStatement irá ativar a operação DROP relacionada com dados, como remover tabela e largar esquema. Tem de ativar AllowDropStatement antes de utilizar AllowDataDropStatement.

Criar um projeto U-SQL com a linha de comandos MSBuild

Primeiro, migre o projeto e obtenha o pacote NuGet. Em seguida, chame a linha de comandos MSBuild padrão com os seguintes argumentos para criar o projeto 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

A definição e os valores dos argumentos são os seguintes:

  • USQLSDKPath=<U-SQL Nuget package>\build\runtime. Este parâmetro refere-se ao caminho de instalação do pacote NuGet para o serviço de linguagem U-SQL.

  • USQLTargetType=Merge ou SyntaxCheck:

    • Intercalar. O modo de impressão em série compila ficheiros atrás de código. Os exemplos são ficheiros .cs, .py e .r . Inlineia a biblioteca de código definida pelo utilizador resultante no script U-SQL. Os exemplos são um código dll binário, Python ou R.

    • Verificação de Sintaxe. O modo SyntaxCheck intercala primeiro ficheiros com código atrás no script U-SQL. Em seguida, compila o script U-SQL para validar o seu código.

  • DataRoot=<Caminho dataRoot>. O DataRoot só é necessário para o modo Desinsistância. Quando cria o script com o modo de Verificação de Sintaxe, o MSBuild verifica as referências a objetos de base de dados no script. Antes de criar, configure um ambiente local correspondente que contenha os objetos referenciados da base de dados U-SQL na pasta DataRoot da máquina de compilação. Também pode gerir estas dependências de base de dados ao referenciar um projeto de base de dados U-SQL. O MSBuild verifica apenas as referências de objetos da base de dados e não os ficheiros.

  • EnableDeployment=true ou false. EnableDeployment indica se tem permissão para implementar bases de dados U-SQL referenciadas durante o processo de compilação. Se referenciar um projeto de base de dados U-SQL e consumir os objetos da base de dados no script U-SQL, defina este parâmetro como verdadeiro.

Integração contínua através dos Pipelines do Azure

Além da linha de comandos, também pode utilizar a Compilação do Visual Studio ou uma tarefa MSBuild para criar projetos U-SQL nos Pipelines do Azure. Para configurar um pipeline de compilação, certifique-se de que adiciona duas tarefas no pipeline de compilação: uma tarefa de restauro NuGet e uma tarefa MSBuild.

Tarefa MSBuild para um projeto U-SQL

  1. Adicione uma tarefa de restauro NuGet para obter o pacote NuGet referenciado pela solução que inclui Azure.DataLake.USQL.SDK, para que o MSBuild possa encontrar os destinos da linguagem U-SQL. Defina odiretório DestinoAvançado> como $(Build.SourcesDirectory)/packages se quiser utilizar o exemplo de argumentos MSBuild diretamente no passo 2.

    Tarefa de restauro nuGet para um projeto U-SQL

  2. Defina argumentos MSBuild nas ferramentas de compilação do Visual Studio ou numa tarefa MSBuild, conforme mostrado no exemplo seguinte. Em alternativa, pode definir variáveis para estes argumentos no pipeline de compilação dos Pipelines do Azure.

    Definir variáveis CI/CD MSBuild para um projeto 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
    

Saída da compilação do projeto U-SQL

Depois de executar uma compilação, todos os scripts no projeto U-SQL são criados e são exportados para um ficheiro zip chamado USQLProjectName.usqlpack. A estrutura da pasta no projeto é mantida na saída da compilação zipada.

Nota

Os ficheiros com código subjacente para cada script U-SQL serão intercalados como uma instrução inline para o resultado da compilação do script.

Testar scripts U-SQL

O Azure Data Lake fornece projetos de teste para scripts U-SQL e UDO/UDAG/UDF C#:

Implementar uma tarefa U-SQL

Depois de verificar o código através do processo de compilação e teste, pode submeter tarefas U-SQL diretamente a partir dos Pipelines do Azure através de uma tarefa de Azure PowerShell. Também pode implementar o script no Azure Data Lake Store ou no armazenamento de Blobs do Azure e executar as tarefas agendadas através de Azure Data Factory.

Submeter tarefas U-SQL através dos Pipelines do Azure

O resultado da compilação do projeto U-SQL é um ficheiro zip denominado USQLProjectName.usqlpack. O ficheiro zip inclui todos os scripts U-SQL no projeto. Pode utilizar a tarefa Azure PowerShell em Pipelines com o seguinte script do PowerShell de exemplo para submeter tarefas U-SQL diretamente a partir dos Pipelines do Azure.

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

Nota

Os comandos: Submit-AzDataLakeAnalyticsJob e Wait-AzDataLakeAnalyticsJob são ambos cmdlets Azure PowerShell para o Azure Data Lake Analytics na arquitetura de Resource Manager do Azure. Irá utilizar uma estação de trabalho com Azure PowerShell instalada. Pode consultar a lista de comandos para obter mais comandos e exemplos.

Implementar tarefas U-SQL através de Azure Data Factory

Pode submeter tarefas U-SQL diretamente a partir dos Pipelines do Azure. Em alternativa, pode carregar os scripts criados para o Azure Data Lake Store ou o armazenamento de Blobs do Azure e executar as tarefas agendadas através de Azure Data Factory.

Utilize a tarefa Azure PowerShell nos Pipelines do Azure com o seguinte script do PowerShell de exemplo para carregar os scripts U-SQL para uma conta do 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 para uma base de dados U-SQL

O Azure Data Lake Tools para Visual Studio fornece modelos de projeto de base de dados U-SQL que o ajudam a desenvolver, gerir e implementar bases de dados U-SQL. Saiba mais sobre um projeto de base de dados U-SQL.

Criar projeto de base de dados U-SQL

Obter o pacote NuGet

O MSBuild não fornece suporte incorporado para projetos de bases de dados U-SQL. Para obter esta capacidade, tem de adicionar uma referência para a sua solução ao pacote NuGet Microsoft.Azure.DataLake.USQL.SDK que adiciona o serviço de idioma necessário.

Para adicionar a referência do pacote NuGet, clique com o botão direito do rato na solução no Visual Studio Explorador de Soluções. Selecione Gerir Pacotes NuGet. Em seguida, procure e instale o pacote NuGet. Em alternativa, pode adicionar um ficheiro chamado packages.config na pasta da solução e colocar os seguintes conteúdos no mesmo:

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

Criar um projeto de base de dados U-SQL com a linha de comandos MSBuild

Para criar o seu projeto de base de dados U-SQL, chame a linha de comandos msBuild padrão e transmita a referência do pacote NuGet do SDK U-SQL como outro argumento. Veja o seguinte exemplo:

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

O argumento USQLSDKPath=<U-SQL Nuget package>\build\runtime refere-se ao caminho de instalação do pacote NuGet para o serviço de linguagem U-SQL.

Integração contínua com os Pipelines do Azure

Além da linha de comandos, pode utilizar o Visual Studio Build ou uma tarefa MSBuild para criar projetos de base de dados U-SQL nos Pipelines do Azure. Para configurar uma tarefa de compilação, certifique-se de que adiciona duas tarefas no pipeline de compilação: uma tarefa de restauro NuGet e uma tarefa MSBuild.

TAREFA CI/CD MSBuild para um projeto U-SQL

  1. Adicione uma tarefa de restauro NuGet para obter o pacote NuGet referenciado pela solução, que inclui Azure.DataLake.USQL.SDK, para que o MSBuild possa encontrar os destinos da linguagem U-SQL. Defina odiretório DestinoAvançado> como $(Build.SourcesDirectory)/packages se quiser utilizar o exemplo de argumentos MSBuild diretamente no passo 2.

    Ci/CD NuGet task for a U-SQL project (Tarefa NuGet ci/CD para um projeto U-SQL)

  2. Defina argumentos MSBuild nas ferramentas de compilação do Visual Studio ou numa tarefa MSBuild, conforme mostrado no exemplo seguinte. Em alternativa, pode definir variáveis para estes argumentos no pipeline de compilação dos Pipelines do Azure.

    Definir variáveis DE CI/CD MSBuild para um projeto de base de dados U-SQL

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

Saída da compilação do projeto de base de dados U-SQL

O resultado da compilação de um projeto de base de dados U-SQL é um pacote de implementação da base de dados U-SQL, denominado com o sufixo .usqldbpack. O .usqldbpack pacote é um ficheiro zip que inclui todas as instruções DDL num único script U-SQL numa pasta DDL. Inclui todos os .dlls e outros ficheiros para assemblagem numa pasta temporária.

Testar funções com valor de tabela e procedimentos armazenados

A adição de casos de teste para funções com valor de tabela e procedimentos armazenados diretamente não é atualmente suportada. Como solução, pode criar um projeto U-SQL com scripts U-SQL que chamam essas funções e escrevem casos de teste para as mesmas. Siga os seguintes passos para configurar casos de teste para funções com valor de tabela e procedimentos armazenados definidos no projeto de base de dados U-SQL:

  1. Crie um projeto U-SQL para fins de teste e escreva scripts U-SQL chamando as funções de valor de tabela e os procedimentos armazenados.

  2. Adicione uma referência de base de dados ao projeto U-SQL. Para obter a função com valor de tabela e a definição do procedimento armazenado, tem de referenciar o projeto de base de dados que contém a instrução DDL. Saiba mais sobre referências de bases de dados.

  3. Adicione casos de teste para scripts U-SQL que chamam funções com valor de tabela e procedimentos armazenados. Saiba como adicionar casos de teste para scripts U-SQL.

Implementar a base de dados U-SQL através dos Pipelines do Azure

PackageDeploymentTool.exe fornece a programação e as interfaces de linha de comandos que ajudam a implementar pacotes de implementação de bases de dados U-SQL, .usqldbpack. O SDK está incluído no pacote NuGet do SDK U-SQL, localizado em build/runtime/PackageDeploymentTool.exe. Ao utilizar PackageDeploymentTool.exeo , pode implementar bases de dados U-SQL em contas locais e Data Lake Analytics do Azure.

Nota

O suporte da linha de comandos do PowerShell e o suporte de tarefas de versão do Azure Pipelines para implementação da base de dados U-SQL estão atualmente pendentes.

Siga os seguintes passos para configurar uma tarefa de implementação de base de dados nos Pipelines do Azure:

  1. Adicione uma tarefa de Script do PowerShell num pipeline de compilação ou versão e execute o seguinte script do PowerShell. Esta tarefa ajuda a obter dependências do SDK do Azure para PackageDeploymentTool.exe e PackageDeploymentTool.exe. Pode definir os parâmetros -AzureSDK e -DBDeploymentTool para carregar as dependências e a ferramenta de implementação para pastas específicas. Passe o caminho -AzureSDK para PackageDeploymentTool.exe como o parâmetro -AzureSDKPath no passo 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. Adicione uma tarefa da Linha de Comandos num pipeline de compilação ou versão e preencha o script ao chamar PackageDeploymentTool.exe. PackageDeploymentTool.exe está localizado na pasta $DBDeploymentTool definida. O script de exemplo é o seguinte:

    • Implementar uma base de dados U-SQL localmente:

      PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
      
    • Utilize o modo de autenticação interativa para implementar uma base de dados U-SQL numa conta do 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
      
    • Utilize a autenticação secreta para implementar uma base de dados U-SQL numa conta do 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>
      
    • Utilize a autenticação certFile para implementar uma base de dados U-SQL numa conta de Data Lake Analytics do Azure:

      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 descrições de parâmetros

Parâmetros comuns

Parâmetro Description Valor Predefinido Necessário
Pacote O caminho do pacote de implementação da base de dados U-SQL a implementar. nulo true
Base de Dados O nome da base de dados a implementar ou criado. master false
LogFile O caminho do ficheiro para registo. Predefinição para desafinição (consola). nulo false
Nível de Registo Nível de registo: Verboso, Normal, Aviso ou Erro. LogLevel.Normal false

Parâmetro para implementação local

Parâmetro Description Valor Predefinido Necessário
DataRoot O caminho da pasta de raiz de dados local. nulo true

Parâmetros para a implementação do Azure Data Lake Analytics

Parâmetro Description Valor Predefinido Necessário
Conta Especifica a conta do Azure Data Lake Analytics a implementar por nome de conta. nulo true
ResourceGroup O nome do grupo de recursos do Azure para a conta do Azure Data Lake Analytics. nulo true
SubscriptionId O ID da subscrição do Azure para a conta do Azure Data Lake Analytics. nulo true
Inquilino O nome do inquilino é o nome de domínio Microsoft Entra. Localize-a na página de gestão de subscrições no portal do Azure. nulo true
AzureSDKPath O caminho para procurar assemblagens dependentes no SDK do Azure. nulo true
Interativo Se pretende ou não utilizar o modo interativo para autenticação. false false
ClientId O ID da aplicação Microsoft Entra necessário para a autenticação não interativa. nulo Necessário para autenticação não interativa.
Segredo O segredo ou palavra-passe da autenticação não interativa. Deve ser utilizado apenas num ambiente fidedigno e seguro. nulo Necessário para autenticação não interativa ou utilize SecreteFile.
SecretFile O ficheiro guarda o segredo ou a palavra-passe da autenticação não interativa. Certifique-se de que o mantém legível apenas pelo utilizador atual. nulo Necessário para autenticação não interativa ou utilize Segredo.
CertFile O ficheiro guarda a certificação X.509 para autenticação não interativa. A predefinição é utilizar a autenticação secreta do cliente. nulo false
Prefixo de Tarefa O prefixo para a implementação da base de dados de uma tarefa de DDL U-SQL. Deploy_ + DateTime.Now false

Passos seguintes