Een CI/CD-pijplijn instellen voor Azure Data Lake Analytics

In dit artikel leert u hoe u een CI/CD-pijplijn (continue integratie en implementatie) instelt voor U-SQL-taken en U-SQL-databases.

Belangrijk

Azure Data Lake Analytics op 29 februari 2024 buiten gebruik gesteld. Meer informatie over deze aankondiging.

Voor gegevensanalyse kan uw organisatie gebruikmaken van Azure Synapse Analytics of Microsoft Fabric.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

CI/CD gebruiken voor U-SQL-taken

Azure Data Lake Tools voor Visual Studio biedt het U-SQL-projecttype waarmee u U-SQL-scripts kunt organiseren. Als u het U-SQL-project gebruikt om uw U-SQL-code te beheren, zijn verdere CI/CD-scenario's eenvoudig.

Een U-SQL-project bouwen

Een U-SQL-project kan worden gebouwd met de Microsoft Build Engine (MSBuild) door bijbehorende parameters door te geven. Volg de stappen in dit artikel om een buildproces voor een U-SQL-project in te stellen.

Projectmigratie

Voordat u een build-taak instelt voor een U-SQL-project, moet u ervoor zorgen dat u de nieuwste versie van het U-SQL-project hebt. Open het U-SQL-projectbestand in de editor en controleer of u deze importitems hebt:

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

Zo niet, dan hebt u twee opties om het project te migreren:

  • Optie 1: Wijzig het oude importitem in het vorige item.
  • Optie 2: Open het oude project in de Azure Data Lake Tools voor Visual Studio. Gebruik een nieuwere versie dan 2.3.3000.0. De oude projectsjabloon wordt automatisch bijgewerkt naar de nieuwste versie. Nieuwe projecten die zijn gemaakt met versies nieuwer dan 2.3.3000.0 gebruiken de nieuwe sjabloon.

NuGet ophalen

MSBuild biedt geen ingebouwde ondersteuning voor U-SQL-projecten. Als u deze ondersteuning wilt krijgen, moet u een verwijzing voor uw oplossing toevoegen aan het Microsoft.Azure.DataLake.USQL.SDK NuGet-pakket waarmee de vereiste taalservice wordt toegevoegd.

Als u de NuGet-pakketverwijzing wilt toevoegen, klikt u met de rechtermuisknop op de oplossing in Visual Studio Solution Explorer en kiest u NuGet-pakketten beheren. U kunt ook een bestand met de naam packages.config toevoegen in de oplossingsmap en de volgende inhoud erin plaatsen:

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

U-SQL-databaseverwijzingen beheren

U-SQL-scripts in een U-SQL-project hebben mogelijk queryinstructies voor U-SQL-databaseobjecten. In dat geval moet u verwijzen naar het bijbehorende U-SQL-databaseproject dat de definitie van de objecten bevat voordat u het U-SQL-project bouwt. Een voorbeeld is wanneer u een query uitvoert op een U-SQL-tabel of verwijst naar een assembly.

Meer informatie over het U-SQL-databaseproject.

Notitie

De DROP-instructie kan een onbedoelde verwijdering veroorzaken. Als u drop-instructie wilt inschakelen, moet u expliciet de MSBuild-argumenten opgeven. AllowDropStatement schakelt niet-gegevensgerelateerde DROP-bewerkingen in, zoals drop assembly en drop table valued function. AllowDataDropStatement schakelt gegevensgerelateerde DROP-bewerkingen in, zoals drop table en drop schema. U moet AllowDropStatement inschakelen voordat u AllowDataDropStatement gebruikt.

Een U-SQL-project bouwen met de MSBuild-opdrachtregel

Migreer eerst het project en haal het NuGet-pakket op. Roep vervolgens de standaard MSBuild-opdrachtregel aan met de volgende argumenten om uw U-SQL-project te bouwen:

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

De argumentendefinitie en -waarden zijn als volgt:

  • USQLSDKPath=<U-SQL Nuget-pakket>\build\runtime. Deze parameter verwijst naar het installatiepad van het NuGet-pakket voor de U-SQL-taalservice.

  • USQLTargetType=Merge or SyntaxCheck:

    • Samenvoegen. In de samenvoegmodus worden achter code-bestanden gecompileerd. Voorbeelden zijn .cs-, .py- en .r-bestanden . Hiermee wordt de resulterende door de gebruiker gedefinieerde codebibliotheek in het U-SQL-script opgenomen. Voorbeelden zijn binaire DLL-, Python- of R-code.

    • SyntaxIsControle. De syntaxiscontrolemodus voegt eerst achter code-bestanden samen in het U-SQL-script. Vervolgens wordt het U-SQL-script gecompileerd om uw code te valideren.

  • DataRoot=<DataRoot-pad>. DataRoot is alleen nodig voor de syntaxiscontrolemodus. Wanneer het script wordt gebouwd met de syntaxiscontrolemodus, controleert MSBuild de verwijzingen naar databaseobjecten in het script. Voordat u gaat bouwen, moet u een overeenkomende lokale omgeving instellen met de objecten waarnaar wordt verwezen uit de U-SQL-database in de map DataRoot van de buildmachine. U kunt deze databaseafhankelijkheden ook beheren door te verwijzen naar een U-SQL-databaseproject. MSBuild controleert alleen databaseobjectverwijzingen, geen bestanden.

  • EnableDeployment=true of false. EnableDeployment geeft aan of het is toegestaan om U-SQL-databases te implementeren waarnaar wordt verwezen tijdens het buildproces. Als u verwijst naar een U-SQL-databaseproject en de databaseobjecten in uw U-SQL-script gebruikt, stelt u deze parameter in op true.

Continue integratie via Azure Pipelines

Naast de opdrachtregel kunt u ook de Visual Studio-build of een MSBuild-taak gebruiken om U-SQL-projecten te bouwen in Azure Pipelines. Als u een build-pijplijn wilt instellen, moet u twee taken toevoegen aan de build-pijplijn: een NuGet-hersteltaak en een MSBuild-taak.

MSBuild-taak voor een U-SQL-project

  1. Voeg een NuGet-hersteltaak toe om het NuGet-pakket met oplossingsverwijzing op te halen dat bevat Azure.DataLake.USQL.SDK, zodat MSBuild de U-SQL-taaldoelen kan vinden. Stel De map Geavanceerde>bestemming in op $(Build.SourcesDirectory)/packages als u het voorbeeld van MSBuild-argumenten rechtstreeks in stap 2 wilt gebruiken.

    NuGet-hersteltaak voor een U-SQL-project

  2. Stel MSBuild-argumenten in in Visual Studio-buildhulpprogramma's of in een MSBuild-taak, zoals wordt weergegeven in het volgende voorbeeld. U kunt ook variabelen voor deze argumenten definiëren in de build-pijplijn van Azure Pipelines.

    CI/CD MSBuild-variabelen definiëren voor een U-SQL-project

    /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
    

Uitvoer van U-SQL-projectbuild

Nadat u een build hebt uitgevoerd, worden alle scripts in het U-SQL-project gemaakt en uitgevoerd naar een zip-bestand met de naam USQLProjectName.usqlpack. De mapstructuur in uw project blijft behouden in de gezipte build-uitvoer.

Notitie

De onderliggende codebestanden voor elk U-SQL-script worden samengevoegd als een inline-instructie voor de uitvoer van de scriptbuild.

U-SQL-scripts testen

Azure Data Lake biedt testprojecten voor U-SQL-scripts en C# UDO/UDAG/UDF:

Een U-SQL-taak implementeren

Nadat u code hebt geverifieerd via het build- en testproces, kunt u U-SQL-taken rechtstreeks vanuit Azure Pipelines verzenden via een Azure PowerShell taak. U kunt het script ook implementeren in Azure Data Lake Store of Azure Blob Storage en de geplande taken uitvoeren via Azure Data Factory.

U-SQL-taken verzenden via Azure Pipelines

De build-uitvoer van het U-SQL-project is een zip-bestand met de naam USQLProjectName.usqlpack. Het zip-bestand bevat alle U-SQL-scripts in het project. U kunt de Azure PowerShell taak in Pijplijnen gebruiken met het volgende PowerShell-voorbeeldscript om U-SQL-taken rechtstreeks vanuit Azure Pipelines te verzenden.

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

Notitie

De opdrachten: Submit-AzDataLakeAnalyticsJob en Wait-AzDataLakeAnalyticsJob zijn beide Azure PowerShell cmdlets voor Azure Data Lake Analytics in het Azure Resource Manager-framework. U gebruikt een werkstation waarop Azure PowerShell is geïnstalleerd. Raadpleeg de opdrachtenlijst voor meer opdrachten en voorbeelden.

U-SQL-taken implementeren via Azure Data Factory

U kunt U-SQL-taken rechtstreeks vanuit Azure Pipelines verzenden. U kunt de ingebouwde scripts ook uploaden naar Azure Data Lake Store of Azure Blob Storage en de geplande taken uitvoeren via Azure Data Factory.

Gebruik de Azure PowerShell-taak in Azure Pipelines met het volgende PowerShell-voorbeeldscript om de U-SQL-scripts te uploaden naar een Azure Data Lake Store-account:

<#
   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 voor een U-SQL-database

Azure Data Lake Tools voor Visual Studio biedt U-SQL-databaseprojectsjablonen waarmee u U-SQL-databases kunt ontwikkelen, beheren en implementeren. Meer informatie over een U-SQL-databaseproject.

U-SQL-databaseproject bouwen

Het NuGet-pakket downloaden

MSBuild biedt geen ingebouwde ondersteuning voor U-SQL-databaseprojecten. Om deze mogelijkheid te krijgen, moet u een verwijzing voor uw oplossing toevoegen aan het Microsoft.Azure.DataLake.USQL.SDK NuGet-pakket waarmee de vereiste taalservice wordt toegevoegd.

Als u de Verwijzing naar het NuGet-pakket wilt toevoegen, klikt u met de rechtermuisknop op de oplossing in Visual Studio Solution Explorer. Kies NuGet-pakketten beheren. Zoek en installeer vervolgens het NuGet-pakket. U kunt ook een bestand met de naam packages.config toevoegen aan de oplossingsmap en de volgende inhoud erin plaatsen:

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

U-SQL een databaseproject bouwen met de MSBuild-opdrachtregel

Als u uw U-SQL-databaseproject wilt bouwen, roept u de standaard MSBuild-opdrachtregel aan en geeft u de U-SQL SDK NuGet-pakketverwijzing door als een ander argument. Zie het volgende voorbeeld:

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

Het argument USQLSDKPath=<U-SQL Nuget package>\build\runtime verwijst naar het installatiepad van het NuGet-pakket voor de U-SQL-taalservice.

Continue integratie met Azure-pijplijnen

Naast de opdrachtregel kunt u Visual Studio Build of een MSBuild-taak gebruiken om U-SQL-databaseprojecten te bouwen in Azure Pipelines. Als u een build-taak wilt instellen, moet u twee taken toevoegen aan de build-pijplijn: een NuGet-hersteltaak en een MSBuild-taak.

CI/CD MSBuild-taak voor een U-SQL-project

  1. Voeg een NuGet-hersteltaak toe om het NuGet-pakket op te halen waarnaar wordt verwezen naar de oplossing, waaronder Azure.DataLake.USQL.SDK, zodat MSBuild de U-SQL-taaldoelen kan vinden. Stel Geavanceerde>doelmap in op $(Build.SourcesDirectory)/packages als u het voorbeeld msBuild-argumenten rechtstreeks in stap 2 wilt gebruiken.

    CI/CD NuGet-taak voor een U-SQL-project

  2. Stel MSBuild-argumenten in in Visual Studio-buildhulpprogramma's of in een MSBuild-taak, zoals wordt weergegeven in het volgende voorbeeld. U kunt ook variabelen voor deze argumenten definiëren in de build-pijplijn van Azure Pipelines.

    CI/CD MSBuild-variabelen definiëren voor een U-SQL-databaseproject

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

Build-uitvoer van U-SQL-databaseproject

De build-uitvoer voor een U-SQL-databaseproject is een U-SQL-database-implementatiepakket, met de naam met het achtervoegsel .usqldbpack. Het .usqldbpack pakket is een zip-bestand met alle DDL-instructies in één U-SQL-script in een DDL-map. Het bevat alle DLL's en andere bestanden voor assembly in een tijdelijke map.

Functies met tabelwaarden en opgeslagen procedures testen

Het rechtstreeks toevoegen van testcases voor functies met tabelwaarde en opgeslagen procedures wordt momenteel niet ondersteund. Als tijdelijke oplossing kunt u een U-SQL-project maken met U-SQL-scripts die deze functies aanroepen en er testcases voor schrijven. Voer de volgende stappen uit om testcases in te stellen voor functies met tabelwaarde en opgeslagen procedures die zijn gedefinieerd in het U-SQL-databaseproject:

  1. Maak een U-SQL-project voor testdoeleinden en schrijf U-SQL-scripts die de tabelwaardefuncties en opgeslagen procedures aanroepen.

  2. Voeg een databaseverwijzing toe aan het U-SQL-project. Als u de tabelwaardefunctie en de definitie van de opgeslagen procedure wilt ophalen, moet u verwijzen naar het databaseproject dat de DDL-instructie bevat. Meer informatie over databaseverwijzingen.

  3. Voeg testcases toe voor U-SQL-scripts die tabelwaardefuncties en opgeslagen procedures aanroepen. Meer informatie over het toevoegen van testcases voor U-SQL-scripts.

U-SQL-database implementeren via Azure Pipelines

PackageDeploymentTool.exe biedt de programmeer- en opdrachtregelinterfaces die u helpen bij het implementeren van U-SQL-database-implementatiepakketten , .usqldbpack. De SDK is opgenomen in het U-SQL SDK NuGet-pakket, dat zich bevindt op build/runtime/PackageDeploymentTool.exe. Met behulp van PackageDeploymentTool.exekunt u U-SQL-databases implementeren in zowel Azure Data Lake Analytics- als lokale accounts.

Notitie

PowerShell-opdrachtregelondersteuning en ondersteuning voor releasetaken van Azure Pipelines voor implementatie van U-SQL-databases is momenteel in behandeling.

Voer de volgende stappen uit om een database-implementatietaak in Te stellen in Azure Pipelines:

  1. Voeg een PowerShell-scripttaak toe aan een build- of release-pijplijn en voer het volgende PowerShell-script uit. Deze taak helpt bij het ophalen van Azure SDK-afhankelijkheden voor PackageDeploymentTool.exe en PackageDeploymentTool.exe. U kunt de parameters -AzureSDK en -DBDeploymentTool instellen om het hulpprogramma voor afhankelijkheden en implementatie in specifieke mappen te laden. Geef het pad -AzureSDK door aan PackageDeploymentTool.exe als de parameter -AzureSDKPath in stap 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. Voeg een opdrachtregeltaak toe aan een build- of release-pijplijn en vul het script in door aan te roepen PackageDeploymentTool.exe. PackageDeploymentTool.exe bevindt zich onder de gedefinieerde map $DBDeploymentTool . Het voorbeeldscript is als volgt:

    • Een U-SQL-database lokaal implementeren:

      PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
      
    • Gebruik de interactieve verificatiemodus om een U-SQL-database te implementeren in een Azure Data Lake Analytics-account:

      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
      
    • Gebruik geheime verificatie om een U-SQL-database te implementeren in een Azure Data Lake Analytics-account:

      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>
      
    • Gebruik certFile-verificatie om een U-SQL-database te implementeren in een Azure Data Lake Analytics-account:

      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>
      

beschrijvingen van PackageDeploymentTool.exe parameters

Algemene parameters

Parameter Beschrijving Standaardwaarde Vereist
Pakket Het pad van het implementatiepakket voor de U-SQL-database. null true
Database De naam van de database die moet worden geïmplementeerd of gemaakt. model onjuist
Logfile Het pad van het bestand voor logboekregistratie. Standaard ingesteld op standard-out (console). null false
Logniveau Logboekniveau: Uitgebreid, Normaal, Waarschuwing of Fout. LogLevel.Normal onjuist

Parameter voor lokale implementatie

Parameter Beschrijving Standaardwaarde Vereist
DataRoot Het pad van de hoofdmap van de lokale gegevens. null true

Parameters voor Azure Data Lake Analytics-implementatie

Parameter Beschrijving Standaardwaarde Vereist
Account Hiermee geeft u op welke Azure Data Lake Analytics-account moet worden geïmplementeerd op accountnaam. null true
ResourceGroup De naam van de Azure-resourcegroep voor het Azure Data Lake Analytics-account. null true
SubscriptionId De Azure-abonnements-id voor het Azure Data Lake Analytics-account. null true
Tenant De tenantnaam is de Microsoft Entra domeinnaam. U vindt deze op de pagina abonnementsbeheer in de Azure Portal. null true
AzureSDKPath Het pad naar het zoeken naar afhankelijke assembly's in de Azure SDK. null true
Interactief Of u de interactieve modus al dan niet wilt gebruiken voor verificatie. onjuist onjuist
ClientId De Microsoft Entra toepassings-id die is vereist voor niet-interactieve verificatie. null Vereist voor niet-interactieve verificatie.
Geheim Het geheim of wachtwoord voor niet-interactieve verificatie. Het mag alleen worden gebruikt in een vertrouwde en veilige omgeving. null Vereist voor niet-interactieve verificatie, of gebruik SecreteFile.
SecretFile Het bestand slaat het geheim of wachtwoord op voor niet-interactieve verificatie. Zorg ervoor dat deze alleen leesbaar blijft voor de huidige gebruiker. null Vereist voor niet-interactieve verificatie of gebruik Geheim.
Certificaatbestand Het bestand slaat X.509-certificering op voor niet-interactieve verificatie. De standaardinstelling is om verificatie van clientgeheimen te gebruiken. null false
JobPrefix Het voorvoegsel voor database-implementatie van een U-SQL DDL-taak. Deploy_ + Datum/tijd.Nu onjuist

Volgende stappen