CI/CD-folyamat beállítása az Azure Data Lake Analytics

Ebből a cikkből megtudhatja, hogyan állíthat be folyamatos integrációs és üzembehelyezési (CI/CD) folyamatot U-SQL-feladatokhoz és U-SQL-adatbázisokhoz.

Fontos

Az Azure Data Lake Analytics 2024. február 29-én megszűnt. További információ ezzel a bejelentéssel.

Az adatelemzéshez a szervezet használhatja a Azure Synapse Analyticset vagy a Microsoft Fabricet.

Megjegyzés

Javasoljuk, hogy az Azure-ral való interakcióhoz az Azure Az PowerShell-modult használja. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

CI/CD használata U-SQL-feladatokhoz

Az Azure Data Lake Tools for Visual Studio biztosítja az U-SQL-projekttípust, amely segít az U-SQL-szkriptek rendszerezésében. Ha az U-SQL-projektet használja az U-SQL-kód kezelésére, az megkönnyíti a további CI/CD-forgatókönyveket.

U-SQL-projekt létrehozása

A U-SQL-projektek a Microsoft Build Engine (MSBuild) használatával hozhatók létre a megfelelő paraméterek megadásával. Az ebben a cikkben ismertetett lépéseket követve állítson be egy U-SQL-projekt buildelési folyamatát.

Projekt migrálása

Mielőtt beállít egy összeállítási feladatot egy U-SQL-projekthez, győződjön meg arról, hogy az U-SQL-projekt legújabb verziójával rendelkezik. Nyissa meg az U-SQL-projektfájlt a szerkesztőben, és ellenőrizze, hogy rendelkezik-e az alábbi importálási elemekkel:

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

Ha nem, két lehetőség közül választhat a projekt migrálásához:

  • 1. lehetőség: Módosítsa a régi importálási elemet az előzőre.
  • 2. lehetőség: Nyissa meg a régi projektet az Azure Data Lake Tools for Visual Studióban. A 2.3.3000.0-nál újabb verziót használjon. A régi projektsablon automatikusan frissül a legújabb verzióra. A 2.3.3000.0-nál újabb verzióval létrehozott új projektek az új sablont használják.

NuGet lekérése

Az MSBuild nem nyújt beépített támogatást U-SQL-projektekhez. A támogatás igénybevételéhez hozzá kell adnia egy referenciát a megoldáshoz a Microsoft.Azure.DataLake.USQL.SDK NuGet-csomaghoz, amely hozzáadja a szükséges nyelvi szolgáltatást.

A NuGet-csomag referenciájának hozzáadásához kattintson a jobb gombbal a megoldásra a Visual Studio Megoldáskezelő, és válassza a NuGet-csomagok kezelése lehetőséget. Vagy hozzáadhat egy nevű packages.config fájlt a megoldásmappába, és a következő tartalmat helyezheti bele:

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

U-SQL-adatbázishivatkozások kezelése

Egy U-SQL-projekt U-SQL-szkriptjei lekérdezési utasításokkal rendelkezhetnek az U-SQL-adatbázisobjektumokhoz. Ebben az esetben az U-SQL-projekt létrehozása előtt hivatkoznia kell a megfelelő U-SQL-adatbázisprojektre, amely tartalmazza az objektumok definícióját. Ilyen például egy U-SQL-tábla lekérdezése vagy egy szerelvényre való hivatkozás.

További információ az U-SQL-adatbázisprojektről.

Megjegyzés

A DROP utasítás véletlen törlést okozhat. A DROP utasítás engedélyezéséhez explicit módon meg kell adnia az MSBuild argumentumokat. Az AllowDropStatement engedélyezi a nem adatokkal kapcsolatos DROP műveletet, például a drop assembly és a drop table valued függvényt. Az AllowDataDropStatement lehetővé teszi az adatokhoz kapcsolódó DROP műveletet, például a drop table és a drop schema műveletet. Az AllowDataDropStatement használata előtt engedélyeznie kell az AllowDropStatement parancsot.

U-SQL-projekt létrehozása az MSBuild parancssorral

Először migrálja a projektet, és szerezze be a NuGet-csomagot. Ezután hívja meg a standard MSBuild parancssort a következő argumentumokkal az U-SQL-projekt létrehozásához:

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

Az argumentumok definíciója és értékei a következők:

  • USQLSDKPath=<U-SQL Nuget-csomag>\build\runtime. Ez a paraméter az U-SQL nyelvi szolgáltatás NuGet-csomagjának telepítési útvonalára vonatkozik.

  • USQLTargetType=Merge vagy SyntaxCheck:

    • Egyesítés. Az egyesítési mód lefordítja a kód mögötti fájlokat. Ilyenek például a .cs, a .py és az .r fájlok. Az eredményül kapott felhasználó által definiált kódtárat az U-SQL-szkriptbe alakítja. Ilyen például egy dll bináris, Python- vagy R-kód.

    • Szintaxisellenőrzés. A SyntaxCheck mód először egyesíti a kód mögötti fájlokat az U-SQL-szkripttel. Ezután lefordítja az U-SQL-szkriptet a kód érvényesítéséhez.

  • DataRoot=<DataRoot elérési útja>. A DataRoot csak a SyntaxCheck módhoz szükséges. Amikor szintaxisellenőrzési módban hozza létre a szkriptet, az MSBuild ellenőrzi a szkriptben lévő adatbázis-objektumokra mutató hivatkozásokat. A létrehozás előtt állítson be egy megfelelő helyi környezetet, amely a buildelési gép DataRoot mappájában található U-SQL-adatbázis hivatkozott objektumait tartalmazza. Ezeket az adatbázis-függőségeket U-SQL-adatbázisprojektre való hivatkozással is kezelheti. Az MSBuild csak az adatbázis-objektumhivatkozásokat ellenőrzi, a fájlokat nem.

  • EnableDeployment=true vagy false. Az EnableDeployment azt jelzi, hogy engedélyezve van-e hivatkozott U-SQL-adatbázisok üzembe helyezése a buildelési folyamat során. Ha egy U-SQL-adatbázisprojektre hivatkozik, és az U-SQL-szkriptben használja az adatbázis-objektumokat, állítsa ezt a paramétert true (igaz) értékre.

Folyamatos integráció az Azure Pipelineson keresztül

A parancssoron kívül a Visual Studio Build vagy egy MSBuild feladat használatával U-SQL-projekteket is létrehozhat az Azure Pipelinesban. Buildelési folyamat beállításához adjon hozzá két feladatot a buildelési folyamatban: egy NuGet-visszaállítási és egy MSBuild-feladatot.

MSBuild tevékenység U-SQL-projekthez

  1. Adjon hozzá egy NuGet-visszaállítási feladatot a megoldást tartalmazó Azure.DataLake.USQL.SDK, megoldásra hivatkozó NuGet-csomag lekéréséhez, hogy az MSBuild megtalálja az U-SQL nyelvi célokat. Ha közvetlenül a 2. lépésben szeretné használni az MSBuild argumentummintát, állítsa a Speciális>cél könyvtár értékét értékre $(Build.SourcesDirectory)/packages .

    NuGet-visszaállítási feladat U-SQL-projekthez

  2. Állítsa be az MSBuild argumentumokat a Visual Studio buildelési eszközeiben vagy egy MSBuild feladatban az alábbi példában látható módon. Vagy definiálhat változókat ezekhez az argumentumokhoz az Azure Pipelines buildelési folyamatában.

    CI/CD MSBuild változók definiálása U-SQL-projekthez

    /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-projekt buildkimenete

A build futtatása után az U-SQL-projekt összes szkriptje létrejön, és kimenetként egy nevű USQLProjectName.usqlpackzip-fájlba kerül. A projekt mappaszerkezete a tömörített build kimenetében marad.

Megjegyzés

Az egyes U-SQL-szkriptekhez tartozó kód mögötti fájlok beágyazott utasításként lesznek egyesítve a szkript buildkimenetével.

U-SQL-szkriptek tesztelése

Az Azure Data Lake tesztprojekteket biztosít az U-SQL-szkriptekhez és a C# UDO/UDAG/UDF-hez:

U-SQL-feladat üzembe helyezése

Miután a buildelési és tesztelési folyamat során ellenőrizte a kódot, U-SQL-feladatokat küldhet közvetlenül az Azure Pipelinesból egy Azure PowerShell feladaton keresztül. A szkriptet az Azure Data Lake Store-ban vagy az Azure Blob Storage-ban is üzembe helyezheti, és futtathatja az ütemezett feladatokat Azure Data Factory.

U-SQL-feladatok elküldése az Azure Pipelineson keresztül

Az U-SQL-projekt buildkimenete egy USQLProjectName.usqlpack nevű zip-fájl. A zip-fájl tartalmazza a projekt összes U-SQL-szkriptét. A folyamatok Azure PowerShell feladatát az alábbi PowerShell-példaszkripttel használhatja az U-SQL-feladatok közvetlenül az Azure Pipelinesból való elküldéséhez.

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

Megjegyzés

A parancsok: Submit-AzDataLakeAnalyticsJob és Wait-AzDataLakeAnalyticsJob mindkettő Azure PowerShell parancsmag az Azure Data Lake Analytics-hez az Azure Resource Manager-keretrendszerben. Olyan munkaállomást fog létrehozni, amelyen telepítve Azure PowerShell. További parancsokért és példákért tekintse meg a parancslistát .

U-SQL-feladatok üzembe helyezése Azure Data Factory

U-SQL-feladatokat közvetlenül az Azure Pipelinesból küldhet be. Vagy feltöltheti a beépített szkripteket az Azure Data Lake Store-ba vagy az Azure Blob Storage-ba, és futtathatja az ütemezett feladatokat Azure Data Factory keresztül.

A következő PowerShell-példaszkripttel töltse fel az U-SQL-szkripteket egy Azure Data Lake Store-fiókba az Azure Pipelines Azure PowerShell feladatával:

<#
   This script can be used to upload U-SQL files to ADLS with given U-SQL project build output(.usqlpack file).
   This will unzip the U-SQL project build output, and upload all scripts to ADLS one-by-one.

   Example :
      FileUpload.ps1 -ADLSName "myadlsaccount" -ArtifactsRoot "C:\USQLProject\bin\debug\"
#>

param(
   [Parameter(Mandatory=$true)][string]$ADLSName, # ADLS account name to upload U-SQL scripts
   [Parameter(Mandatory=$true)][string]$ArtifactsRoot, # Root folder of U-SQL project build output
   [Parameter(Mandatory=$false)][string]$DestinationFolder = "USQLScriptSource" # Destination folder in ADLS
)

Function UploadResources()
{
   Write-Host "************************************************************************"
   Write-Host "Uploading files to $ADLSName"
   Write-Host "***********************************************************************"

   $usqlScripts = GetUsqlFiles

   $files = @(get-childitem $usqlScripts -recurse)
   foreach($file in $files)
   {
      Write-Host "Uploading file: $($file.Name)"
      Import-AzDataLakeStoreItem -AccountName $ADLSName -Path $file.FullName -Destination "/$(Join-Path $DestinationFolder $file)" -Force
   }
}

function Unzip($USQLPackfile, $UnzipOutput)
{
   $USQLPackfileZip = Rename-Item -Path $USQLPackfile -NewName $([System.IO.Path]::ChangeExtension($USQLPackfile, ".zip")) -Force -PassThru
   Expand-Archive -Path $USQLPackfileZip -DestinationPath $UnzipOutput -Force
   Rename-Item -Path $USQLPackfileZip -NewName $([System.IO.Path]::ChangeExtension($USQLPackfileZip, ".usqlpack")) -Force
}

Function GetUsqlFiles()
{

   $USQLPackfiles = Get-ChildItem -Path $ArtifactsRoot -Include *.usqlpack -File -Recurse -ErrorAction SilentlyContinue

   $UnzipOutput = Join-Path $ArtifactsRoot -ChildPath "UnzipUSQLScripts"

   foreach ($USQLPackfile in $USQLPackfiles)
   {
      Unzip $USQLPackfile $UnzipOutput
   }

   return Get-ChildItem -Path $UnzipOutput -Include *.usql -File -Recurse -ErrorAction SilentlyContinue
}

UploadResources

CI/CD U-SQL-adatbázishoz

Az Azure Data Lake Tools for Visual Studio U-SQL-adatbázisprojektsablonokat biztosít, amelyek segítenek U-SQL-adatbázisok fejlesztésében, kezelésében és üzembe helyezésében. További információ az U-SQL-adatbázisprojektekről.

U-SQL-adatbázisprojekt létrehozása

A NuGet-csomag lekérése

Az MSBuild nem nyújt beépített támogatást az U-SQL-adatbázisprojektekhez. A képesség eléréséhez hozzá kell adnia egy hivatkozást a megoldáshoz a Microsoft.Azure.DataLake.USQL.SDK NuGet-csomaghoz, amely hozzáadja a szükséges nyelvi szolgáltatást.

A NuGet-csomag referenciájának hozzáadásához kattintson a jobb gombbal a megoldásra a Visual Studio Megoldáskezelő. Válassza a NuGet-csomagok kezelése lehetőséget. Ezután keresse meg és telepítse a NuGet-csomagot. Vagy hozzáadhat egy packages.config nevű fájlt a megoldásmappába, és a következő tartalmat helyezheti bele:

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

U-SQL-adatbázisprojekt létrehozása az MSBuild parancssorral

Az U-SQL-adatbázisprojekt létrehozásához hívja meg a standard MSBuild parancssort, és adja át az U-SQL SDK NuGet-csomaghivatkozást egy másik argumentumként. Lásd a következő példát:

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

Az argumentum USQLSDKPath=<U-SQL Nuget package>\build\runtime az U-SQL nyelvi szolgáltatás NuGet-csomagjának telepítési útvonalára hivatkozik.

Folyamatos integráció az Azure Pipelinesszal

A parancssoron kívül a Visual Studio Build vagy egy MSBuild feladat használatával U-SQL-adatbázisprojekteket hozhat létre az Azure Pipelinesban. Buildelési feladat beállításához adjon hozzá két feladatot a buildelési folyamatban: egy NuGet-visszaállítási feladatot és egy MSBuild feladatot.

CI/CD MSBuild feladat U-SQL-projekthez

  1. Adjon hozzá egy NuGet-visszaállítási feladatot a megoldásra hivatkozó NuGet-csomag lekéréséhez, amely tartalmazza Azure.DataLake.USQL.SDKa fájlt, hogy az MSBuild megtalálja az U-SQL nyelvi célokat. Ha közvetlenül a 2. lépésben szeretné használni az MSBuild argumentummintát, állítsa a Speciális>cél könyvtár értékét értékre $(Build.SourcesDirectory)/packages .

    CI/CD NuGet-feladat U-SQL-projekthez

  2. Állítsa be az MSBuild argumentumokat a Visual Studio buildelési eszközeiben vagy egy MSBuild feladatban az alábbi példában látható módon. Vagy definiálhat változókat ezekhez az argumentumokhoz az Azure Pipelines buildelési folyamatában.

    CI/CD MSBuild változók definiálása U-SQL-adatbázisprojekthez

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

U-SQL Database-projekt buildkimenete

Egy U-SQL-adatbázisprojekt buildkimenete egy U-SQL-adatbázis üzembehelyezési csomagja, amelynek utótagja .usqldbpack. A .usqldbpack csomag egy zip-fájl, amely tartalmazza az összes DDL-utasítást egyetlen U-SQL-szkriptben egy DDL-mappában. Az ideiglenes mappában található összes .dll-fájlt és egyéb szerelvényfájlt tartalmazza.

Táblaértékű függvények és tárolt eljárások tesztelése

A táblaértékű függvényekhez és a tárolt eljárásokhoz jelenleg nem lehet teszteseteket hozzáadni. Áthidaló megoldásként létrehozhat egy U-SQL-projektet, amely U-SQL-szkriptekkel hívja meg ezeket a függvényeket, és teszteseteket ír hozzájuk. Az U-SQL-adatbázisprojektben definiált táblaértékű függvények és tárolt eljárások tesztelési eseteinek beállításához kövesse az alábbi lépéseket:

  1. Hozzon létre egy U-SQL-projektet tesztelési célokra, és írjon U-SQL-szkripteket, amely meghívja a táblaértékű függvényeket és a tárolt eljárásokat.

  2. Adjon hozzá egy adatbázis-hivatkozást az U-SQL-projekthez. A táblaértékű függvény és a tárolt eljárásdefiníció lekéréséhez hivatkoznia kell a DDL-utasítást tartalmazó adatbázisprojektre. További információ az adatbázis-hivatkozásokról.

  3. Adjon hozzá teszteseteket a táblaértékű függvényeket és tárolt eljárásokat hívó U-SQL-szkriptekhez. Megtudhatja, hogyan adhat hozzá teszteseteket U-SQL-szkriptekhez.

U-SQL-adatbázis üzembe helyezése az Azure Pipelineson keresztül

PackageDeploymentTool.exe az U-SQL-adatbázis üzembehelyezési csomagjainak ( .usqldbpack) üzembe helyezését segítő programozási és parancssori felületeket biztosít. Az SDK a build/runtime/PackageDeploymentTool.exehelyen található U-SQL SDK NuGet-csomag része. A használatával PackageDeploymentTool.exeU-SQL-adatbázisokat helyezhet üzembe az Azure Data Lake Analytics és a helyi fiókokban is.

Megjegyzés

A PowerShell parancssori támogatása és az Azure Pipelines kiadási feladatainak támogatása az U-SQL-adatbázis üzembe helyezéséhez jelenleg függőben van.

Az adatbázis-üzembehelyezési feladat Azure Pipelinesban való beállításához kövesse az alábbi lépéseket:

  1. Adjon hozzá egy PowerShell-szkriptfeladatot egy buildelési vagy kiadási folyamatban, és hajtsa végre a következő PowerShell-szkriptet. Ez a feladat segít lekérni a és PackageDeploymentTool.exeaz PackageDeploymentTool.exe Azure SDK-függőségeit. Beállíthatja az -AzureSDK és - DBDeploymentTool paramétereket a függőségek és az üzembe helyezési eszköz adott mappákba való betöltéséhez. Adja át az -AzureSDK elérési útját PackageDeploymentTool.exe - AzureSDKPath paraméterként a 2. lépésben.

    <#
       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. Adjon hozzá egy parancssori feladatot egy buildelési vagy kiadási folyamatban, és töltse ki a szkriptet a meghívásával PackageDeploymentTool.exe. PackageDeploymentTool.exe a megadott $DBDeploymentTool mappában található. A példaszkript a következő:

    • U-SQL-adatbázis helyi üzembe helyezése:

      PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
      
    • Az interaktív hitelesítési mód használatával U-SQL-adatbázist helyezhet üzembe egy Azure-Data Lake Analytics-fiókban:

      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
      
    • Titkos kódos hitelesítéssel helyezzen üzembe egy U-SQL-adatbázist egy Azure-Data Lake Analytics-fiókban:

      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>
      
    • A certFile-hitelesítés használatával helyezzen üzembe egy U-SQL-adatbázist egy Azure-Data Lake Analytics-fiókban:

      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>
      

paraméterleírások PackageDeploymentTool.exe

Gyakori paraméterek

Paraméter Leírás Alapértelmezett érték Kötelező
Csomag Az üzembe helyezendő U-SQL-adatbázis üzembehelyezési csomagjának elérési útja. null true
Adatbázis Az üzembe helyezni vagy létrehozni kívánt adatbázis neve. master hamis
Logfile A naplózáshoz használt fájl elérési útja. Alapértelmezés szerint standard out (konzol). null hamis
Naplózási szint Naplószint: Részletes, Normál, Figyelmeztetés vagy Hiba. LogLevel.Normal hamis

Helyi üzembe helyezés paramétere

Paraméter Leírás Alapértelmezett érték Kötelező
DataRoot A helyi adatgyökér mappa elérési útja. null true

Az Azure Data Lake Analytics üzembe helyezésének paraméterei

Paraméter Leírás Alapértelmezett érték Kötelező
Fiók Megadja, hogy melyik Azure-Data Lake Analytics fióknév alapján helyezze üzembe azokat. null true
ResourceGroup Az Azure-Data Lake Analytics-fiók Azure-erőforráscsoportjának neve. null true
SubscriptionId Az Azure-Data Lake Analytics-fiókHoz tartozó Azure-előfizetés azonosítója. null true
Bérlő A bérlő neve a Microsoft Entra tartománynév. Keresse meg a Azure Portal előfizetés-kezelési oldalán. null true
AzureSDKPath A függő szerelvények keresésének útvonala az Azure SDK-ban. null true
Interaktív Azt jelzi, hogy interaktív módot használ-e a hitelesítéshez. hamis hamis
ClientID A nem interaktív hitelesítéshez szükséges Microsoft Entra alkalmazásazonosító. null Nem interaktív hitelesítéshez szükséges.
Titkos A nem interaktív hitelesítés titkos kódja vagy jelszava. Csak megbízható és biztonságos környezetben használható. null Nem interaktív hitelesítéshez szükséges, vagy használja a SecreteFile-t.
SecretFile A fájl menti a titkos kulcsot vagy jelszót a nem interaktív hitelesítéshez. Győződjön meg arról, hogy csak az aktuális felhasználó olvassa el. null Nem interaktív hitelesítéshez szükséges, vagy egyéb esetben a Titkos kód használata.
Bizonyítványfájl A fájl menti az X.509-tanúsítványt a nem interaktív hitelesítéshez. Az alapértelmezett az ügyfél titkos hitelesítésének használata. null hamis
JobPrefix Egy U-SQL DDL-feladat adatbázis-üzembe helyezésének előtagja. Deploy_ + DateTime.Now hamis

Következő lépések