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.
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.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.
/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:
Meer informatie over het toevoegen van testcases voor U-SQL-scripts en uitgebreide C#-code
Meer informatie over het uitvoeren van testcases in Azure Pipelines.
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.
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.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.
/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:
Maak een U-SQL-project voor testdoeleinden en schrijf U-SQL-scripts die de tabelwaardefuncties en opgeslagen procedures aanroepen.
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.
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.exe
kunt 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:
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
enPackageDeploymentTool.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 aanPackageDeploymentTool.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
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 |