Azure Data Lake Analytics için CI/CD işlem hattı ayarlama

Bu makalede U-SQL işleri ve U-SQL veritabanları için sürekli tümleştirme ve dağıtım (CI/CD) işlem hattı ayarlamayı öğreneceksiniz.

Önemli

Azure Data Lake Analytics 29 Şubat 2024'te kullanımdan kaldırıldı. Bu duyuru ile daha fazla bilgi edinin.

Veri analizi için kuruluşunuz Azure Synapse Analytics veya Microsoft Fabric kullanabilir.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

U-SQL işleri için CI/CD kullanma

Visual Studio için Azure Data Lake Araçları, U-SQL betiklerini düzenlemenize yardımcı olan U-SQL proje türünü sağlar. U-SQL kodunuzu yönetmek için U-SQL projesini kullanmak, diğer CI/CD senaryolarını kolaylaştırır.

U-SQL projesi oluşturma

U-SQL projesi, karşılık gelen parametreler geçirilerek Microsoft Build Engine (MSBuild) ile oluşturulabilir. U-SQL projesi için derleme işlemi ayarlamak için bu makaledeki adımları izleyin.

Proje geçişi

U-SQL projesi için derleme görevi ayarlamadan önce U-SQL projesinin en son sürümüne sahip olduğunuzdan emin olun. U-SQL proje dosyasını düzenleyicinizde açın ve şu içeri aktarma öğelerine sahip olduğunuzu doğrulayın:

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

Aksi takdirde, projeyi geçirmek için iki seçeneğiniz vardır:

  • 1. Seçenek: Eski içeri aktarma öğesini öncekiyle değiştirin.
  • 2. Seçenek: Visual Studio için Azure Data Lake Araçları eski projeyi açın. 2.3.3000.0'dan daha yeni bir sürüm kullanın. Eski proje şablonu otomatik olarak en yeni sürüme yükseltilir. 2.3.3000.0'dan yeni sürümlerle oluşturulan yeni projeler yeni şablonu kullanır.

NuGet'i edinin

MSBuild, U-SQL projeleri için yerleşik destek sağlamaz. Bu desteği almak için, gerekli dil hizmetini ekleyen Microsoft.Azure.DataLake.USQL.SDK NuGet paketine çözümünüz için bir başvuru eklemeniz gerekir.

NuGet paketi başvurusunu eklemek için Visual Studio Çözüm Gezgini'da çözüme sağ tıklayın ve NuGet Paketlerini Yönet'i seçin. Alternatif olarak çözüm klasörüne adlı packages.config bir dosya ekleyebilir ve içine aşağıdaki içerikleri koyabilirsiniz:

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

U-SQL veritabanı başvurularını yönetme

U-SQL projesindeki U-SQL betikleri, U-SQL veritabanı nesneleri için sorgu deyimlerine sahip olabilir. Bu durumda, U-SQL projesini derlemeden önce nesnelerin tanımını içeren ilgili U-SQL veritabanı projesine başvurmanız gerekir. Bir U-SQL tablosunu sorguladığınız veya bir derlemeye başvurabileceğiniz bir örnektir.

U-SQL veritabanı projesi hakkında daha fazla bilgi edinin.

Not

DROP deyimi yanlışlıkla silme işlemine neden olabilir. DROP deyimini etkinleştirmek için MSBuild bağımsız değişkenlerini açıkça belirtmeniz gerekir. AllowDropStatement , bırakma derlemesi ve bırakma tablosu değerli işlevi gibi veriyle ilgili olmayan DROP işlemini etkinleştirir. AllowDataDropStatement , bırakma tablosu ve bırakma şeması gibi veriyle ilgili DROP işlemini etkinleştirir. AllowDataDropStatement'ı kullanmadan önce AllowDropStatement'ı etkinleştirmeniz gerekir.

MSBuild komut satırıyla U-SQL projesi oluşturma

Önce projeyi geçirin ve NuGet paketini alın. Ardından, U-SQL projenizi oluşturmak için aşağıdaki bağımsız değişkenlerle standart MSBuild komut satırını çağırın:

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

Bağımsız değişkenlerin tanımı ve değerleri aşağıdaki gibidir:

  • USQLSDKPath=<U-SQL Nuget package>\build\runtime. Bu parametre, U-SQL dil hizmeti için NuGet paketinin yükleme yolunu ifade eder.

  • USQLTargetType=Merge veya SyntaxCheck:

    • Birleştir'i seçin. Birleştirme modu arka planda kod dosyalarını derler. Örnek olarak .cs, .py ve .r dosyaları verilebilir. Sonuçta elde edilen kullanıcı tanımlı kod kitaplığını U-SQL betiğine satır içine alır. Örnek olarak dll ikili dosyası, Python veya R kodu verilebilir.

    • Söz Dizimi Denetimi. SyntaxCheck modu ilk olarak arka planda kod dosyalarını U-SQL betiğiyle birleştirir. Ardından kodunuzu doğrulamak için U-SQL betiğini derler.

  • DataRoot=<DataRoot yolu>. DataRoot yalnızca SyntaxCheck modu için gereklidir. Betiği SyntaxCheck moduyla derlediğinde, MSBuild betikteki veritabanı nesnelerine yapılan başvuruları denetler. Derlemeden önce, derleme makinesinin DataRoot klasöründeki U-SQL veritabanından başvuruda bulunılan nesneleri içeren eşleşen bir yerel ortam ayarlayın. Bu veritabanı bağımlılıklarını bir U-SQL veritabanı projesine başvurarak da yönetebilirsiniz. MSBuild yalnızca veritabanı nesnesi başvurularını denetler, dosyaları denetlemez.

  • EnableDeployment=true veya false. EnableDeployment, derleme işlemi sırasında başvurulan U-SQL veritabanlarını dağıtmasına izin verilip verilmediğini gösterir. U-SQL veritabanı projesine başvurur ve U-SQL betiğinizdeki veritabanı nesnelerini kullanırsanız, bu parametreyi true olarak ayarlayın.

Azure Pipelines aracılığıyla sürekli tümleştirme

Komut satırına ek olarak, Azure Pipelines'da U-SQL projeleri oluşturmak için Visual Studio Derlemesi veya MSBuild görevini de kullanabilirsiniz. Derleme işlem hattı ayarlamak için derleme işlem hattına iki görev eklediğinizden emin olun: NuGet geri yükleme görevi ve MSBuild görevi.

U-SQL projesi için MSBuild görevi

  1. MSBuild'in U-SQL dil hedeflerini bulabilmesi için içeren Azure.DataLake.USQL.SDKçözüme başvurulan NuGet paketini almak için bir NuGet geri yükleme görevi ekleyin. Doğrudan 2. adımda MSBuild bağımsız değişkenleri örneğini kullanmak istiyorsanız Gelişmiş>Hedef dizinini$(Build.SourcesDirectory)/packages olarak ayarlayın.

    U-SQL projesi için NuGet geri yükleme görevi

  2. Aşağıdaki örnekte gösterildiği gibi, Visual Studio derleme araçlarında veya MSBuild görevinde MSBuild bağımsız değişkenlerini ayarlayın. Ya da Azure Pipelines derleme işlem hattında bu bağımsız değişkenler için değişkenler tanımlayabilirsiniz.

    U-SQL projesi için CI/CD MSBuild değişkenlerini tanımlama

    /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 projesi derleme çıkışı

Bir derlemeyi çalıştırdıktan sonra U-SQL projesindeki tüm betikler oluşturulur ve adlı USQLProjectName.usqlpackbir zip dosyasına çıkış yapılır. Projenizdeki klasör yapısı sıkıştırılmış derleme çıkışında tutulur.

Not

Her U-SQL betiğinin arka planındaki kod dosyaları, betik derleme çıkışına satır içi bir deyim olarak birleştirilir.

U-SQL betiklerini test etme

Azure Data Lake, U-SQL betikleri ve C# UDO/UDAG/UDF için test projeleri sağlar:

U-SQL işi dağıtma

Derleme ve test işlemi aracılığıyla kodu doğruladıktan sonra, U-SQL işlerini bir Azure PowerShell görevi aracılığıyla doğrudan Azure Pipelines'dan gönderebilirsiniz. Ayrıca betiği Azure Data Lake Store'a veya Azure Blob depolamaya dağıtabilir ve zamanlanmış işleri Azure Data Factory aracılığıyla çalıştırabilirsiniz.

Azure Pipelines aracılığıyla U-SQL işleri gönderme

U-SQL projesinin derleme çıkışı USQLProjectName.usqlpack adlı bir zip dosyasıdır. Zip dosyası projedeki tüm U-SQL betiklerini içerir. U-SQL işlerini doğrudan Azure Pipelines'dan göndermek için İşlem Hatları'ndaki Azure PowerShell görevini aşağıdaki örnek PowerShell betiğiyle kullanabilirsiniz.

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

Not

ve komutları Submit-AzDataLakeAnalyticsJobWait-AzDataLakeAnalyticsJob, Azure Resource Manager çerçevesinde Azure Data Lake Analytics için Azure PowerShell cmdlet'lerdir. Azure PowerShell yüklü bir iş istasyonu oluşturacaksınız. Daha fazla komut ve örnek için komut listesine başvurabilirsiniz.

U-SQL işlerini Azure Data Factory aracılığıyla dağıtma

U-SQL işlerini doğrudan Azure Pipelines'dan gönderebilirsiniz. İsterseniz, yerleşik betikleri Azure Data Lake Store'a veya Azure Blob depolamaya yükleyebilir ve zamanlanmış işleri Azure Data Factory aracılığıyla çalıştırabilirsiniz.

U-SQL betiklerini bir Azure Data Lake Store hesabına yüklemek için Azure Pipelines'daki Azure PowerShell görevini aşağıdaki örnek PowerShell betiğiyle birlikte kullanın:

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

U-SQL veritabanı için CI/CD

Visual Studio için Azure Data Lake Araçları, U-SQL veritabanlarını geliştirmenize, yönetmenize ve dağıtmanıza yardımcı olan U-SQL veritabanı proje şablonları sağlar. U-SQL veritabanı projesi hakkında daha fazla bilgi edinin.

U-SQL veritabanı projesi oluşturma

NuGet paketini alma

MSBuild, U-SQL veritabanı projeleri için yerleşik destek sağlamaz. Bu özelliği elde etmek için, gerekli dil hizmetini ekleyen Microsoft.Azure.DataLake.USQL.SDK NuGet paketine çözümünüz için bir başvuru eklemeniz gerekir.

NuGet paket başvurusunu eklemek için Visual Studio Çözüm Gezgini'da çözüme sağ tıklayın. NuGet Paketlerini Yönet'i seçin. Ardından NuGet paketini arayın ve yükleyin. Alternatif olarak çözüm klasörüne packages.config adlı bir dosya ekleyebilir ve içine aşağıdaki içerikleri ekleyebilirsiniz:

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

MSBuild komut satırıyla U-SQL veritabanı projesi oluşturma

U-SQL veritabanı projenizi oluşturmak için standart MSBuild komut satırını çağırın ve U-SQL SDK NuGet paket başvurusunu başka bir bağımsız değişken olarak geçirin. Aşağıdaki örneğe bakın:

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

bağımsız değişkeni USQLSDKPath=<U-SQL Nuget package>\build\runtime , U-SQL dil hizmeti için NuGet paketinin yükleme yoluna başvurur.

Azure Pipelines ile sürekli tümleştirme

Komut satırına ek olarak, Azure Pipelines'da U-SQL veritabanı projeleri oluşturmak için Visual Studio Derleme veya MSBuild görevi kullanabilirsiniz. Derleme görevi ayarlamak için derleme işlem hattına iki görev eklediğinizden emin olun: NuGet geri yükleme görevi ve MSBuild görevi.

U-SQL projesi için CI/CD MSBuild görevi

  1. MSBuild'in U-SQL dil hedeflerini bulabilmesi için içeren çözüme başvurulan NuGet paketini Azure.DataLake.USQL.SDKalmak için bir NuGet geri yükleme görevi ekleyin. Doğrudan 2. adımda MSBuild bağımsız değişkenleri örneğini kullanmak istiyorsanız Gelişmiş>Hedef dizinini$(Build.SourcesDirectory)/packages olarak ayarlayın.

    U-SQL projesi için CI/CD NuGet görevi

  2. Aşağıdaki örnekte gösterildiği gibi, Visual Studio derleme araçlarında veya MSBuild görevinde MSBuild bağımsız değişkenlerini ayarlayın. Ya da Azure Pipelines derleme işlem hattında bu bağımsız değişkenler için değişkenler tanımlayabilirsiniz.

    U-SQL veritabanı projesi için CI/CD MSBuild değişkenlerini tanımlama

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

U-SQL veritabanı projesi derleme çıkışı

U-SQL veritabanı projesi için derleme çıkışı, adlı bir U-SQL veritabanı dağıtım paketidir..usqldbpack .usqldbpack Paket, DDL klasöründeki tek bir U-SQL betiğindeki tüm DDL deyimlerini içeren bir zip dosyasıdır. Geçici bir klasördeki derleme için tüm .dll dosyalarını ve diğer dosyaları içerir.

Tablo değerli işlevleri ve saklı yordamları test edin

Tablo değerli işlevler ve saklı yordamlar için test çalışmalarının doğrudan eklenmesi şu anda desteklenmemektedir. Geçici bir çözüm olarak, bu işlevleri çağıran ve bunlar için test çalışmaları yazan U-SQL betiklerine sahip bir U-SQL projesi oluşturabilirsiniz. U-SQL veritabanı projesinde tanımlanan tablo değerli işlevler ve saklı yordamlar için test çalışmalarını ayarlamak için aşağıdaki adımları izleyin:

  1. Test amacıyla bir U-SQL projesi oluşturun ve tablo değerli işlevleri ve saklı yordamları çağıran U-SQL betikleri yazın.

  2. U-SQL projesine veritabanı başvurusu ekleyin. Tablo değerli işlevi ve saklı yordam tanımını almak için DDL deyimini içeren veritabanı projesine başvurmanız gerekir. Veritabanı başvuruları hakkında daha fazla bilgi edinin.

  3. Tablo değerli işlevleri ve saklı yordamları çağıran U-SQL betikleri için test çalışmaları ekleyin. U-SQL betikleri için test çalışmaları eklemeyi öğrenin.

Azure Pipelines aracılığıyla U-SQL veritabanı dağıtma

PackageDeploymentTool.exe, .usqldbpack adlı U-SQL veritabanı dağıtım paketlerini dağıtmaya yardımcı olan programlama ve komut satırı arabirimlerini sağlar. SDK, derleme/çalışma zamanı/PackageDeploymentTool.exekonumunda bulunan U-SQL SDK NuGet paketine dahildir. kullanarak PackageDeploymentTool.exeU-SQL veritabanlarını hem Azure Data Lake Analytics hem de yerel hesaplara dağıtabilirsiniz.

Not

U-SQL veritabanı dağıtımı için PowerShell komut satırı desteği ve Azure Pipelines yayın görevi desteği şu anda beklemede.

Azure Pipelines'da veritabanı dağıtım görevi ayarlamak için aşağıdaki adımları uygulayın:

  1. Derleme veya yayın işlem hattına bir PowerShell Betiği görevi ekleyin ve aşağıdaki PowerShell betiğini yürütür. Bu görev ve PackageDeploymentTool.exeiçin PackageDeploymentTool.exe Azure SDK bağımlılıklarını almaya yardımcı olur. Bağımlılıkları ve dağıtım aracını belirli klasörlere yüklemek için -AzureSDK ve -DBDeploymentTool parametrelerini ayarlayabilirsiniz. 2. adımda -AzureSDK yolunu PackageDeploymentTool.exe-AzureSDKPath parametresi olarak geçirin.

    <#
       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. Derleme veya yayın işlem hattına komut satırı görevi ekleyin ve komutunu çağırarak PackageDeploymentTool.exebetiği doldurun. PackageDeploymentTool.exe tanımlı $DBDeploymentTool klasörünün altında bulunur. Örnek betik aşağıdaki gibidir:

    • U-SQL veritabanını yerel olarak dağıtma:

      PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
      
    • Azure Data Lake Analytics hesabına U-SQL veritabanı dağıtmak için etkileşimli kimlik doğrulama modunu kullanın:

      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
      
    • Azure Data Lake Analytics hesabına U-SQL veritabanı dağıtmak için gizli dizi kimlik doğrulamasını kullanın:

      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>
      
    • Azure Data Lake Analytics hesabına U-SQL veritabanı dağıtmak için certFile kimlik doğrulamasını kullanın:

      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>
      

parametre açıklamalarını PackageDeploymentTool.exe

Ortak parametreler

Parametre Açıklama Varsayılan değer Gerekli
Paket Dağıtılacak U-SQL veritabanı dağıtım paketinin yolu. null true
Veritabanı Dağıtılacak veya oluşturulacak veritabanı adı. ana yanlış
Logfile Günlüğe kaydetme dosyasının yolu. Varsayılan olarak standart çıkış (konsol) kullanılır. null yanlış
LogLevel Günlük düzeyi: Ayrıntılı, Normal, Uyarı veya Hata. LogLevel.Normal yanlış

Yerel dağıtım parametresi

Parametre Açıklama Varsayılan değer Gerekli
DataRoot Yerel veri kök klasörünün yolu. null true

Azure Data Lake Analytics dağıtımı için parametreler

Parametre Açıklama Varsayılan değer Gerekli
Hesap Hesap adına göre dağıtılacak Azure Data Lake Analytics hesabını belirtir. null true
adlı yönetilen örnek, Azure Data Lake Analytics hesabının Azure kaynak grubu adı. null true
kaynak grubundaki Azure Data Lake Analytics hesabının Azure abonelik kimliği. null true
Kiracı Kiracı adı, Microsoft Entra etki alanı adıdır. Azure portal abonelik yönetimi sayfasında bulabilirsiniz. null true
AzureSDKPath Azure SDK'da bağımlı derlemeleri arama yolu. null true
Etkileşimli Kimlik doğrulaması için etkileşimli modun kullanılıp kullanılmaymayacağı. yanlış yanlış
ClientId Etkileşimli olmayan kimlik doğrulaması için gereken Microsoft Entra uygulama kimliği. null Etkileşimli olmayan kimlik doğrulaması için gereklidir.
Gizli dizi Etkileşimli olmayan kimlik doğrulaması için gizli dizi veya parola. Yalnızca güvenilir ve güvenli bir ortamda kullanılmalıdır. null Etkileşimli olmayan kimlik doğrulaması için gereklidir veya SecreteFile kullanın.
SecretFile Dosya, etkileşimli olmayan kimlik doğrulaması için gizli diziyi veya parolayı kaydeder. Yalnızca geçerli kullanıcı tarafından okunabilir durumda olduğundan emin olun. null Etkileşimli olmayan kimlik doğrulaması için gereklidir veya gizli diziyi kullanır.
Certfile Dosya, etkileşimli olmayan kimlik doğrulaması için X.509 sertifikasını kaydeder. Varsayılan, istemci gizli anahtarı kimlik doğrulamasını kullanmaktır. null yanlış
jobprefix U-SQL DDL işinin veritabanı dağıtımı için ön ek. Deploy_ + DateTime.Now yanlış

Sonraki adımlar