Så här konfigurerar du en CI/CD-pipeline för Azure Data Lake Analytics

I den här artikeln får du lära dig hur du konfigurerar en pipeline för kontinuerlig integrering och distribution (CI/CD) för U-SQL-jobb och U-SQL-databaser.

Viktigt

Azure Data Lake Analytics tillbaka den 29 februari 2024. Läs mer med det här meddelandet.

För dataanalys kan din organisation använda Azure Synapse Analytics eller Microsoft Fabric.

Anteckning

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Använda CI/CD för U-SQL-jobb

Azure Data Lake Tools för Visual Studio tillhandahåller U-SQL-projekttypen som hjälper dig att organisera U-SQL-skript. Om du använder U-SQL-projektet för att hantera din U-SQL-kod blir det enkelt att utföra ytterligare CI/CD-scenarier.

Skapa ett U-SQL-projekt

Du kan skapa ett U-SQL-projekt med Microsoft Build Engine (MSBuild) genom att skicka motsvarande parametrar. Följ stegen i den här artikeln för att konfigurera en byggprocess för ett U-SQL-projekt.

Projektmigrering

Innan du konfigurerar en bygguppgift för ett U-SQL-projekt kontrollerar du att du har den senaste versionen av U-SQL-projektet. Öppna U-SQL-projektfilen i redigeringsprogrammet och kontrollera att du har följande importobjekt:

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

Annars har du två alternativ för att migrera projektet:

  • Alternativ 1: Ändra det gamla importobjektet till föregående.
  • Alternativ 2: Öppna det gamla projektet i Azure Data Lake Tools för Visual Studio. Använd en version som är nyare än 2.3.3000.0. Den gamla projektmallen uppgraderas automatiskt till den senaste versionen. Nya projekt som skapats med versioner som är nyare än 2.3.3000.0 använder den nya mallen.

Hämta NuGet

MSBuild tillhandahåller inte inbyggt stöd för U-SQL-projekt. För att få det här stödet måste du lägga till en referens för din lösning i NuGet-paketet Microsoft.Azure.DataLake.USQL.SDK som lägger till den språktjänst som krävs.

Om du vill lägga till NuGet-paketreferensen högerklickar du på lösningen i Visual Studio Solution Explorer och väljer Hantera NuGet-paket. Eller så kan du lägga till en fil med namnet packages.config i lösningsmappen och placera följande innehåll i den:

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

Hantera U-SQL-databasreferenser

U-SQL-skript i ett U-SQL-projekt kan ha frågeuttryck för U-SQL-databasobjekt. I så fall måste du referera till motsvarande U-SQL-databasprojekt som innehåller objektdefinitionen innan du skapar U-SQL-projektet. Ett exempel är när du frågar en U-SQL-tabell eller refererar till en sammansättning.

Läs mer om U-SQL-databasprojekt.

Anteckning

DROP-instruktionen kan orsaka en oavsiktlig borttagning. Om du vill aktivera DROP-instruktionen måste du uttryckligen ange MSBuild-argumenten. AllowDropStatement aktiverar icke-datarelaterad DROP-åtgärd, till exempel funktionen drop assembly och drop table valued. AllowDataDropStatement aktiverar datarelaterad DROP-åtgärd, till exempel drop table och drop-schema. Du måste aktivera AllowDropStatement innan du använder AllowDataDropStatement.

Skapa ett U-SQL-projekt med kommandoraden MSBuild

Migrera först projektet och hämta NuGet-paketet. Anropa sedan standardkommandoraden MSBuild med följande argument för att skapa U-SQL-projektet:

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

Argumentdefinitionen och värdena är följande:

  • USQLSDKPath=<U-SQL Nuget package>\build\runtime. Den här parametern refererar till installationssökvägen för NuGet-paketet för U-SQL-språktjänsten.

  • USQLTargetType=Merge eller SyntaxCheck:

    • Sammanfoga. Sammanslagningsläget kompilerar bakomliggande filer. Exempel är .cs-, .py- och .r-filer . Den anger det resulterande användardefinierade kodbiblioteket i U-SQL-skriptet. Exempel är en dll-binär, Python- eller R-kod.

    • SyntaxCheck. SyntaxCheck-läget sammanfogar först bakomliggande filer i U-SQL-skriptet. Sedan kompileras U-SQL-skriptet för att verifiera koden.

  • DataRoot=<DataRoot-sökväg>. DataRoot behövs bara för SyntaxCheck-läge. När skriptet skapas med SyntaxCheck-läge kontrollerar MSBuild referenserna till databasobjekt i skriptet. Innan du skapar konfigurerar du en matchande lokal miljö som innehåller de refererade objekten från U-SQL-databasen i build-datorns DataRoot-mapp. Du kan också hantera dessa databasberoenden genom att referera till ett U-SQL-databasprojekt. MSBuild kontrollerar endast databasobjektreferenser, inte filer.

  • EnableDeployment=true eller false. EnableDeployment anger om det är tillåtet att distribuera refererade U-SQL-databaser under byggprocessen. Om du refererar till ett U-SQL-databasprojekt och använder databasobjekten i ditt U-SQL-skript anger du den här parametern till true.

Kontinuerlig integrering via Azure Pipelines

Förutom kommandoraden kan du även använda Visual Studio Build eller en MSBuild-uppgift för att skapa U-SQL-projekt i Azure Pipelines. Om du vill konfigurera en bygg-pipeline måste du lägga till två uppgifter i bygg-pipelinen: en NuGet-återställningsaktivitet och en MSBuild-uppgift.

MSBuild-aktivitet för ett U-SQL-projekt

  1. Lägg till en NuGet-återställningsuppgift för att hämta det lösningsreferensade NuGet-paketet som innehåller Azure.DataLake.USQL.SDK, så att MSBuild kan hitta U-SQL-språkmålen. Ange Avancerad>målkatalog till $(Build.SourcesDirectory)/packages om du vill använda MSBuild-argumentexemplet direkt i steg 2.

    NuGet-återställningsaktivitet för ett U-SQL-projekt

  2. Ange MSBuild-argument i Visual Studio-byggverktyg eller i en MSBuild-uppgift som du ser i följande exempel. Eller så kan du definiera variabler för dessa argument i bygg-pipelinen för Azure Pipelines.

    Definiera CI/CD MSBuild-variabler för ett U-SQL-projekt

    /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-projektgenereringsutdata

När du har kört en version skapas alla skript i U-SQL-projektet och matas ut till en zip-fil med namnet USQLProjectName.usqlpack. Mappstrukturen i projektet behålls i zippade kompileringsutdata.

Anteckning

Bakomliggande filer för varje U-SQL-skript sammanfogas som en infogad instruktion till skriptbyggets utdata.

Testa U-SQL-skript

Azure Data Lake tillhandahåller testprojekt för U-SQL-skript och C# UDO/UDAG/UDF:

Distribuera ett U-SQL-jobb

När du har verifierat koden genom bygg- och testprocessen kan du skicka U-SQL-jobb direkt från Azure Pipelines via en Azure PowerShell uppgift. Du kan också distribuera skriptet till Azure Data Lake Store eller Azure Blob Storage och köra schemalagda jobb via Azure Data Factory.

Skicka U-SQL-jobb via Azure Pipelines

Byggutdata för U-SQL-projektet är en zip-fil med namnet USQLProjectName.usqlpack. Zip-filen innehåller alla U-SQL-skript i projektet. Du kan använda uppgiften Azure PowerShell i Pipelines med följande PowerShell-exempelskript för att skicka U-SQL-jobb direkt från 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

Anteckning

Kommandona: Submit-AzDataLakeAnalyticsJob och Wait-AzDataLakeAnalyticsJob är båda Azure PowerShell cmdletar för Azure Data Lake Analytics i Azure Resource Manager-ramverket. Du kommer att få en arbetsstation med Azure PowerShell installerad. Du kan referera till kommandolistan för fler kommandon och exempel.

Distribuera U-SQL-jobb via Azure Data Factory

Du kan skicka U-SQL-jobb direkt från Azure Pipelines. Eller så kan du ladda upp de skapade skripten till Azure Data Lake Store eller Azure Blob Storage och köra schemalagda jobb via Azure Data Factory.

Använd Azure PowerShell uppgift i Azure Pipelines med följande PowerShell-exempelskript för att ladda upp U-SQL-skripten till ett Azure Data Lake Store-konto:

<#
   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 för en U-SQL-databas

Azure Data Lake Tools för Visual Studio innehåller U-SQL-databasprojektmallar som hjälper dig att utveckla, hantera och distribuera U-SQL-databaser. Läs mer om ett U-SQL-databasprojekt.

Skapa U-SQL-databasprojekt

Hämta NuGet-paketet

MSBuild tillhandahåller inte inbyggt stöd för U-SQL-databasprojekt. För att få den här möjligheten måste du lägga till en referens för din lösning i NuGet-paketet Microsoft.Azure.DataLake.USQL.SDK som lägger till den språktjänst som krävs.

Om du vill lägga till NuGet-paketreferensen högerklickar du på lösningen i Visual Studio Solution Explorer. Välj Hantera NuGet-paket. Sök sedan efter och installera NuGet-paketet. Eller så kan du lägga till en fil med namnet packages.config i lösningsmappen och placera följande innehåll i den:

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

Skapa ett U-SQL-databasprojekt med kommandoraden MSBuild

Om du vill skapa ditt U-SQL-databasprojekt anropar du standardkommandoraden MSBuild och skickar nuGet-paketreferensen för U-SQL SDK som ett annat argument. Se följande exempel:

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

Argumentet USQLSDKPath=<U-SQL Nuget package>\build\runtime refererar till installationssökvägen för NuGet-paketet för U-SQL-språktjänsten.

Kontinuerlig integrering med Azure Pipelines

Förutom kommandoraden kan du använda Visual Studio Build eller en MSBuild-uppgift för att skapa U-SQL-databasprojekt i Azure Pipelines. Om du vill konfigurera en bygguppgift måste du lägga till två uppgifter i bygg-pipelinen: en NuGet-återställningsaktivitet och en MSBuild-uppgift.

CI/CD MSBuild-uppgift för ett U-SQL-projekt

  1. Lägg till en NuGet-återställningsuppgift för att hämta det lösningsreferensade NuGet-paketet, som innehåller Azure.DataLake.USQL.SDK, så att MSBuild kan hitta U-SQL-språkmålen. Ange Avancerad>målkatalog till $(Build.SourcesDirectory)/packages om du vill använda MSBuild-argumentexemplet direkt i steg 2.

    CI/CD NuGet-uppgift för ett U-SQL-projekt

  2. Ange MSBuild-argument i Visual Studio-byggverktyg eller i en MSBuild-uppgift som du ser i följande exempel. Eller så kan du definiera variabler för dessa argument i bygg-pipelinen för Azure Pipelines.

    Definiera CI/CD MSBuild-variabler för ett U-SQL-databasprojekt

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

U-SQL-databasprojekt, kompileringsutdata

Byggutdata för ett U-SQL-databasprojekt är ett U-SQL-databasdistributionspaket med namnet med suffixet .usqldbpack. Paketet .usqldbpack är en zip-fil som innehåller alla DDL-instruktioner i ett enda U-SQL-skript i en DDL-mapp. Den innehåller alla .dll-filer och andra filer för sammansättning i en temporär mapp.

Testa tabellvärdesfunktioner och lagrade procedurer

Det finns för närvarande inte stöd för att lägga till testfall för tabellvärdesfunktioner och lagrade procedurer direkt. Som en lösning kan du skapa ett U-SQL-projekt som har U-SQL-skript som anropar dessa funktioner och skriver testfall åt dem. Utför följande steg för att konfigurera testfall för tabellvärdesfunktioner och lagrade procedurer som definierats i U-SQL-databasprojektet:

  1. Skapa ett U-SQL-projekt i testsyfte och skriv U-SQL-skript som anropar tabellvärdesfunktionerna och lagrade procedurer.

  2. Lägg till en databasreferens i U-SQL-projektet. För att hämta tabellvärdesfunktionen och definitionen av lagrad procedur måste du referera till databasprojektet som innehåller DDL-instruktionen. Läs mer om databasreferenser.

  3. Lägg till testfall för U-SQL-skript som anropar tabellvärdesfunktioner och lagrade procedurer. Lär dig hur du lägger till testfall för U-SQL-skript.

Distribuera U-SQL-databas via Azure Pipelines

PackageDeploymentTool.exe innehåller de programmerings- och kommandoradsgränssnitt som hjälper dig att distribuera U-SQL-databasdistributionspaket, .usqldbpack. SDK ingår i U-SQL SDK NuGet-paketet som finns på build/runtime/PackageDeploymentTool.exe. Med hjälp av PackageDeploymentTool.exekan du distribuera U-SQL-databaser till både Azure Data Lake Analytics och lokala konton.

Anteckning

PowerShell-kommandoradsstöd och Azure Pipelines-versionsaktivitetsstöd för U-SQL-databasdistribution väntar för närvarande.

Utför följande steg för att konfigurera en databasdistributionsuppgift i Azure Pipelines:

  1. Lägg till en PowerShell-skriptuppgift i en bygg- eller versionspipeline och kör följande PowerShell-skript. Den här uppgiften hjälper till att hämta Azure SDK-beroenden för PackageDeploymentTool.exe och PackageDeploymentTool.exe. Du kan ange parametrarna -AzureSDK och -DBDeploymentTool för att läsa in beroenden och distributionsverktyget till specifika mappar. Skicka sökvägen -AzureSDK till PackageDeploymentTool.exe som parametern -AzureSDKPath i steg 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. Lägg till en kommandoradsuppgift i en bygg- eller versionspipeline och fyll i skriptet genom att anropa PackageDeploymentTool.exe. PackageDeploymentTool.exe finns under den definierade mappen $DBDeploymentTool . Exempelskriptet är följande:

    • Distribuera en U-SQL-databas lokalt:

      PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
      
    • Använd interaktivt autentiseringsläge för att distribuera en U-SQL-databas till ett Azure Data Lake Analytics-konto:

      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
      
    • Använd utsöndrad autentisering för att distribuera en U-SQL-databas till ett Azure Data Lake Analytics-konto:

      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>
      
    • Använd certFile-autentisering för att distribuera en U-SQL-databas till ett Azure Data Lake Analytics-konto:

      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 parameterbeskrivningar

Vanliga parametrar

Parameter Beskrivning Standardvärde Obligatorisk
Paket Sökvägen till det U-SQL-databasdistributionspaket som ska distribueras. null true
Databas Databasnamnet som ska distribueras till eller skapas. master falskt
Loggfil Sökvägen till filen för loggning. Standardvärdet är out (konsol). null falskt
Loggnivå Loggnivå: Utförlig, Normal, Varning eller Fel. LogLevel.Normal falskt

Parameter för lokal distribution

Parameter Beskrivning Standardvärde Obligatorisk
DataRoot Sökvägen till rotmappen för lokala data. null true

Parametrar för distribution av Azure Data Lake Analytics

Parameter Beskrivning Standardvärde Obligatorisk
Konto Anger vilket Azure Data Lake Analytics-konto som ska distribueras till efter kontonamn. null true
ResourceGroup Namnet på Azure-resursgruppen för Azure Data Lake Analytics-kontot. null true
SubscriptionId Azure-prenumerations-ID för Azure Data Lake Analytics-kontot. null true
Klientorganisation Klientorganisationens namn är det Microsoft Entra domännamnet. Du hittar den på sidan för prenumerationshantering i Azure Portal. null true
AzureSDKPath Sökvägen till beroende sammansättningar i Azure SDK. null true
Interaktiv Om du vill använda interaktivt läge för autentisering eller inte. falskt falskt
ClientId Det Microsoft Entra program-ID som krävs för icke-interaktiv autentisering. null Krävs för icke-interaktiv autentisering.
Hemlighet Hemligheten eller lösenordet för icke-interaktiv autentisering. Den bör endast användas i en betrodd och säker miljö. null Krävs för icke-interaktiv autentisering, annars använder du SecreteFile.
SecretFile Filen sparar hemligheten eller lösenordet för icke-interaktiv autentisering. Se till att hålla den skrivbar endast av den aktuella användaren. null Krävs för icke-interaktiv autentisering, eller annars använder du Hemlighet.
CertFile Filen sparar X.509-certifiering för icke-interaktiv autentisering. Standardvärdet är att använda klienthemlighetsautentisering. null falskt
JobPrefix Prefixet för databasdistribution av ett U-SQL DDL-jobb. Deploy_ + DateTime.Now falskt

Nästa steg