Cara menyiapkan alur CI/CD untuk Azure Data Lake Analytics

Dalam artikel ini, Anda mempelajari cara menyiapkan alur integrasi dan penyebaran berkelanjutan (CI/CD) untuk pekerjaan U-SQL dan database U-SQL.

Penting

Azure Data Lake Analytics pensiun pada 29 Februari 2024. Pelajari lebih lanjut dengan pengumuman ini.

Untuk analitik data, organisasi Anda dapat menggunakan Azure Synapse Analytics atau Microsoft Fabric.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Gunakan CI/CD untuk pekerjaan U-SQL

Azure Data Lake Tools for Visual Studio menyediakan jenis proyek U-SQL yang membantu Anda mengatur skrip U-SQL. Menggunakan proyek U-SQL untuk mengelola kode U-SQL Anda membuat skenario CI/CD lebih mudah.

Membangun proyek U-SQL

Proyek U-SQL dapat dibangun dengan Microsoft Build Engine (MSBuild) melewati parameter yang sesuai. Ikuti langkah-langkah dalam artikel ini untuk menyiapkan proses build untuk proyek U-SQL.

Migrasi proyek

Sebelum Anda menyiapkan tugas build untuk proyek U-SQL, pastikan Anda memiliki proyek U-SQL versi terbaru. Buka file proyek U-SQL di editor Anda dan verifikasi bahwa Anda memiliki item impor ini:

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

Jika tidak, Anda memiliki dua opsi untuk memigrasikan proyek:

  • Opsi 1: Ubah item impor lama ke item sebelumnya.
  • Opsi 2: Buka proyek lama di Azure Data Lake Tools for Visual Studio. Gunakan versi yang lebih baru dari 2.3.3000.0. Templat proyek lama akan ditingkatkan secara otomatis ke versi terbaru. Proyek baru yang dibuat dengan versi yang lebih baru dari 2.3.3000.0 menggunakan templat baru.

Dapatkan NuGet

MSBuild tidak menyediakan dukungan bawaan untuk proyek U-SQL. Untuk mendapatkan dukungan ini, Anda perlu menambahkan referensi untuk solusi Anda ke paket Microsoft.Azure.DataLake.USQL.SDK NuGet yang menambahkan layanan bahasa yang diperlukan.

Untuk menambahkan referensi paket NuGet, klik kanan solusi di Visual Studio Solution Explorer dan pilih Manage NuGet Packages (Kelola Paket NuGet) . Atau Anda dapat menambahkan file bernama packages.config di folder solusi dan masukkan konten berikut ke dalamnya:

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

Mengelola referensi database U-SQL

Skrip U-SQL dalam proyek U-SQL memiliki pernyataan kueri untuk objek database U-SQL. Dalam hal ini, Anda perlu merujuk proyek database U-SQL terkait yang menyertakan definisi objek sebelum Anda membangun proyek U-SQL. Contohnya adalah ketika Anda membuat kueri tabel U-SQL atau mereferensikan assembly.

Pelajari selengkapnya tentang proyek database U-SQL.

Catatan

Pernyataan DROP dapat menyebabkan penghapusan yang tidak disengaja. Untuk mengaktifkan pernyataan DROP, secara eksplisit, Anda perlu menentukan argumen MSBuild. AllowDropStatement akan mengaktifkan operasi DROP yang tidak terkait dengan data, seperti menghilangkan assembly (rakitan) dan fungsi bernilai tabel. AllowDataDropStatement akan mengaktifkan operasi DROP terkait data, seperti menghilangkan tabel dan skema. Anda harus mengaktifkan AllowDropStatement sebelum menggunakan AllowDataDropStatement.

Membangun proyek U-SQL dengan baris perintah MSBuild

Pertama-tama, migrasikan proyek dan dapatkan paket NuGet. Kemudian panggil baris perintah MSBuild standar dengan argumen berikut untuk membangun proyek U-SQL Anda:

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

Definisi dan nilai argumen adalah sebagai berikut:

  • USQLSDKPath=<Paket U-SQL Nuget>\build\runtime. Parameter ini mengacu pada jalur penginstalan paket NuGet untuk layanan bahasa U-SQL.

  • USQLTargetType=Merge or SyntaxCheck:

    • Menggabung. Mode gabung mengompilasi file code-behind. Contohnya adalah file .cs, .py, dan .r. Fungsinya menyejajarkan pustaka kode yang ditentukan pengguna yang dihasilkan ke dalam skrip U-SQL. Contohnya adalah kode biner dll, Python, atau R.

    • SyntaxCheck. Mode SyntaxCheck pertama-tama menggabungkan file code-behind ke dalam skrip U-SQL. Kemudian mengompilasi skrip U-SQL untuk memvalidasi kode Anda.

  • DataRoot=<Jalur> DataRoot. DataRoot hanya diperlukan untuk mode SyntaxCheck. Saat menyusun skrip dengan mode SyntaxCheck, MSBuild memeriksa referensi ke objek database dalam skrip. Sebelum membangun, siapkan lingkungan lokal yang cocok yang berisi objek yang direferensikan dari database U-SQL di folder DataRoot mesin build. Anda juga dapat mengelola dependensi database ini dengan mereferensikan proyek database U-SQL. MSBuild hanya memeriksa referensi objek database, bukan file.

  • EnableDeployment=true or false. EnableDeployment menunjukkan apakah diizinkan untuk menggunakan database U-SQL yang direferensikan selama proses build. Jika Anda mereferensikan proyek database U-SQL dan menggunakan objek database di skrip U-SQL Anda, atur parameter ini ke true.

Integrasi berkelanjutan dengan Azure Pipelines

Selain baris perintah, Anda juga bisa menggunakan Visual Studio Build atau tugas MSBuild untuk membangun proyek U-SQL di Azure Pipelines. Untuk menyiapkan alur build, pastikan untuk menambahkan dua tugas di alur build: tugas pemulihan NuGet dan tugas MSBuild.

Tugas MSBuild untuk proyek U-SQL

  1. Tambahkan tugas pemulihan NuGet untuk mendapatkan paket NuGet yang direferensikan solusi dengan menyertakan Azure.DataLake.USQL.SDK, sehingga MSBuild dapat menemukan target bahasa U-SQL. Atur direktori Tujuan>Tingkat Lanjut ke $(Build.SourcesDirectory)/packages jika Anda ingin menggunakan sampel argumen MSBuild langsung di langkah 2.

    Tugas pemulihan NuGet untuk proyek U-SQL

  2. Atur argumen MSBuild di alat build Visual Studio atau dalam tugas MSBuild seperti yang diperlihatkan dalam contoh berikut. Atau Anda bisa menentukan variabel untuk argumen ini di alur build Azure Pipelines.

    Tentukan variabel CI/CD MSBuild untuk proyek U-SQL

    /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
    

Output build proyek U-SQL

Setelah Anda menjalankan build, semua skrip dalam proyek U-SQL dibuat dan dikeluarkan ke file zip bernama USQLProjectName.usqlpack. Struktur folder dalam proyek Anda disimpan dalam output build zip.

Catatan

File code-behind untuk setiap skrip U-SQL akan digabungkan sebagai pernyataan sebaris ke output build skrip.

Menguji skrip U-SQL

Azure Data Lake menyediakan proyek pengujian untuk skrip U-SQL dan C# UDO/UDAG/UDF:

Menyebarkan pekerjaan U-SQL

Setelah memverifikasi kode melalui proses build dan test, Anda dapat mengirimkan pekerjaan U-SQL langsung dari Azure Pipelines melalui tugas Azure PowerShell. Anda juga dapat menggunakan skrip ke Penyimpanan Azure Data Lake Store atau Azure Blob dan menjalankan pekerjaan terjadwal melalui Azure Data Factory.

Kirim pekerjaan U-SQL melalui Azure Pipelines

Output build dari proyek U-SQL adalah file zip yang bernama USQLProjectName.usqlpack. File zip mencakup semua skrip U-SQL dalam proyek. Anda bisa menggunakan tugas Azure PowerShell di Pipelines dengan sampel skrip PowerShell berikut ini untuk mengirimkan pekerjaan U-SQL langsung dari Azure Pipelines.

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

   Note: the code behind file for each U-SQL script will be merged into the built U-SQL script in build output.

   Example :
      USQLJobSubmission.ps1 -ADLAAccountName "myadlaaccount" -ArtifactsRoot "C:\USQLProject\bin\debug\" -DegreeOfParallelism 2
#>

param(
   [Parameter(Mandatory=$true)][string]$ADLAAccountName, # ADLA account name to submit U-SQL jobs
   [Parameter(Mandatory=$true)][string]$ArtifactsRoot, # Root folder of U-SQL project build output
   [Parameter(Mandatory=$false)][string]$DegreeOfParallelism = 1
)

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

## Get U-SQL scripts in U-SQL project build output(.usqlpack file)
Function GetUsqlFiles()
{

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

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

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

   $USQLFiles = Get-ChildItem -Path $UnzipOutput -Include *.usql -File -Recurse -ErrorAction SilentlyContinue

   return $USQLFiles
}

## Submit U-SQL scripts to ADLA account one-by-one
Function SubmitAnalyticsJob()
{
   $usqlFiles = GetUsqlFiles

   Write-Output "$($usqlFiles.Count) jobs to be submitted..."

   # Submit each usql script and wait for completion before moving ahead.
   foreach ($usqlFile in $usqlFiles)
   {
      $scriptName = "[Release].[$([System.IO.Path]::GetFileNameWithoutExtension($usqlFile.fullname))]"

      Write-Output "Submitting job for '{$usqlFile}'"

      $jobToSubmit = Submit-AzDataLakeAnalyticsJob -Account $ADLAAccountName -Name $scriptName -ScriptPath $usqlFile -DegreeOfParallelism $DegreeOfParallelism

      LogJobInformation $jobToSubmit

      Write-Output "Waiting for job to complete. Job ID:'{$($jobToSubmit.JobId)}', Name: '$($jobToSubmit.Name)' "
      $jobResult = Wait-AzDataLakeAnalyticsJob -Account $ADLAAccountName -JobId $jobToSubmit.JobId  
      LogJobInformation $jobResult
   }
}

Function LogJobInformation($jobInfo)
{
   Write-Output "************************************************************************"
   Write-Output ([string]::Format("Job Id: {0}", $(DefaultIfNull $jobInfo.JobId)))
   Write-Output ([string]::Format("Job Name: {0}", $(DefaultIfNull $jobInfo.Name)))
   Write-Output ([string]::Format("Job State: {0}", $(DefaultIfNull $jobInfo.State)))
   Write-Output ([string]::Format("Job Started at: {0}", $(DefaultIfNull  $jobInfo.StartTime)))
   Write-Output ([string]::Format("Job Ended at: {0}", $(DefaultIfNull  $jobInfo.EndTime)))
   Write-Output ([string]::Format("Job Result: {0}", $(DefaultIfNull $jobInfo.Result)))
   Write-Output "************************************************************************"
}

Function DefaultIfNull($item)
{
   if ($item -ne $null)
   {
      return $item
   }
   return ""
}

Function Main()
{
   Write-Output ([string]::Format("ADLA account: {0}", $ADLAAccountName))
   Write-Output ([string]::Format("Root folde for usqlpack: {0}", $ArtifactsRoot))
   Write-Output ([string]::Format("AU count: {0}", $DegreeOfParallelism))

   Write-Output "Starting USQL script deployment..."

   SubmitAnalyticsJob

   Write-Output "Finished deployment..."
}

Main

Catatan

Perintah: Submit-AzDataLakeAnalyticsJobdan Wait-AzDataLakeAnalyticsJob keduanya adalah Azure PowerShell cmdlets untuk Azure Data Lake Analytics dalam kerangka kerja Azure Resource Manager. Anda akan memerlukan workstation (tempat kerja) dengan Azure PowerShell terinstal. Anda dapat merujuk ke daftar perintah untuk lebih banyak perintah dan contoh.

Menyebarkan pekerjaan U-SQL melalui Azure Data Factory

Anda dapat mengirimkan pekerjaan U-SQL langsung dari Azure Pipelines. Anda juga dapat menggunakan skrip yang dibuat ke penyimpanan Azure Data Lake Store atau Azure Blob dan menjalankan pekerjaan terjadwal melalui Azure Data Factory.

Gunakan tugas Azure PowerShell di Azure Pipelines dengan sampel skrip PowerShell berikut ini untuk mengunggah skrip U-SQL ke akun Azure Data Lake Store:

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

Azure Data Lake Tools for Visual Studio menyediakan templat proyek database U-SQL yang membantu Anda mengembangkan, mengelola, dan menyebarkan database U-SQL. Pelajari selengkapnya tentang proyek database U-SQL.

Membangun proyek database U-SQL

Dapatkan paket NuGet

MSBuild tidak menyediakan dukungan bawaan untuk proyek database U-SQL. Untuk mendapatkan kemampuan ini, Anda perlu menambahkan referensi untuk solusi Anda ke paket Microsoft.Azure.DataLake.USQL.SDK NuGet yang menambahkan layanan bahasa yang diperlukan.

Untuk menambahkan referensi paket NuGet, klik kanan solusi di Visual Studio Solution Explorer. Pilih Manage NuGet Packages (Kelola Paket NuGet) . Kemudian cari dan instal paket NuGet. Atau Anda dapat menambahkan file bernama package.config di folder solusi dan memasukkan konten berikut ke dalamnya:

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

Membangun U-SQL proyek database dengan baris perintah MSBuild

Untuk membangun proyek database U-SQL Anda, panggil baris perintah MSBuild standar dan teruskan referensi paket U-SQL SDK NuGet sebagai argumen lain. Lihat contoh berikut:

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

Argumen USQLSDKPath=<U-SQL Nuget package>\build\runtime mengacu pada jalur penginstalan paket NuGet untuk layanan bahasa U-SQL.

Integrasi berkelanjutan dengan Alur Pipa Azure

Selain baris perintah, Anda bisa menggunakan Visual Studio Build atau tugas MSBuild untuk membangun proyek database U-SQL di Azure Pipelines. Untuk menyiapkan tugas build, pastikan untuk menambahkan dua tugas di alur build: tugas pemulihan NuGet dan tugas MSBuild.

Tugas MSBuild untuk proyek U-SQL

  1. Tambahkan tugas pemulihan NuGet untuk mendapatkan paket NuGet yang direferensikan solusi, yang mencakup Azure.DataLake.USQL.SDK, sehingga MSBuild dapat menemukan target bahasa U-SQL. Atur direktori Tujuan>Tingkat Lanjut ke $(Build.SourcesDirectory)/packages jika Anda ingin menggunakan sampel argumen MSBuild langsung di langkah 2.

    Tugas CI/CD NuGet untuk proyek U-SQL

  2. Atur argumen MSBuild di alat build Visual Studio atau dalam tugas MSBuild seperti yang diperlihatkan dalam contoh berikut. Atau Anda bisa menentukan variabel untuk argumen ini di alur build Azure Pipelines.

    Tentukan variabel CI/CD MSBuild untuk proyek database U-SQL

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

Output build proyek database U-SQL

Output build untuk proyek database U-SQL adalah paket penyebaran database U-SQL, dinamai dengan akhiran .usqldbpack. Paket .usqldbpack merupakan file zip yang mencakup semua pernyataan DDL dalam satu skrip U-SQL di folder DDL. Ini termasuk semua .dlls dan file lain untuk assembly dalam folder sementara.

Menguji fungsi bernilai tabel dan prosedur yang disimpan

Menambahkan kasus pengujian untuk fungsi bernilai tabel dan prosedur yang disimpan secara langsung saat ini tidak didukung. Sebagai solusinya, Anda dapat membuat proyek U-SQL yang memiliki skrip U-SQL yang menggunakan fungsi tersebut dan menulis kasus pengujian untuknya. Lakukan langkah-langkah berikut untuk menyiapkan kasus pengujian untuk fungsi bernilai tabel dan prosedur tersimpan yang ditentukan dalam proyek database U-SQL:

  1. Buat proyek U-SQL untuk tujuan pengujian dan tulis skrip U-SQL yang menyebut fungsi bernilai tabel dan prosedur yang disimpan.

  2. Tambahkan referensi database ke proyek U-SQL. Untuk mendapatkan fungsi bernilai tabel dan definisi prosedur yang disimpan, Anda perlu mereferensikan proyek database yang berisi pernyataan DDL. Pelajari selengkapnya tentang referensi database.

  3. Tambahkan kasus pengujian untuk skrip U-SQL yang menggunakan fungsi bernilai tabel dan prosedur yang disimpan. Pelajari cara menambahkan kasus pengujian untuk skrip U-SQL.

Menyebarkan database U-SQL melalui Azure Pipelines

PackageDeploymentTool.exe menyediakan antarmuka pemrograman dan baris perintah yang membantu menyebarkan paket penyebaran database U-SQL, .usqldbpack. SDK termasuk dalam paket U-SQL SDK NuGet, yang terletak di build /runtime / PackageDeploymentTool.exe. Dengan menggunakan PackageDeploymentTool.exe, Anda dapat menyebarkan database U-SQL ke Azure Data Lake Analytics dan akun lokal.

Catatan

Dukungan baris perintah PowerShell dan dukungan tugas rilis Azure Pipelines untuk penyebaran database U-SQL saat ini tertunda.

Ikuti langkah-langkah berikut untuk menyiapkan tugas penyebaran database di Azure Pipelines:

  1. Tambahkan tugas PowerShell Script dalam alur build atau rilis dan jalankan skrip PowerShell berikut. Tugas ini membantu mendapatkan dependensi Azure SDK PackageDeploymentTool.exe untuk dan PackageDeploymentTool.exe. Anda dapat mengatur parameter -AzureSDK dan -DBDeploymentTool untuk memuat dependensi dan alat penyebaran ke folder tertentu. Teruskan jalur -AzureSDKPackageDeploymentTool.exe sebagai parameter -AzureSDKPath di langkah 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. Tambahkan tugas Command-Line (Baris Perintah) dalam alur build atau rilis dan isi skrip dengan menggunakan PackageDeploymentTool.exe. PackageDeploymentTool.exe terletak di bawah folder $DBDeploymentTool yang ditentukan. Sampel skrip adalah sebagai berikut:

    • Menyebarkan database U-SQL secara lokal:

      PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
      
    • Gunakan mode autentikasi interaktif untuk menyebarkan database U-SQL ke akun Azure Data Lake Analytics:

      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
      
    • Gunakan autentikasi rahasia untuk menyebarkan database U-SQL ke akun Azure Data Lake Analytics:

      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>
      
    • Gunakan autentikasi certFile untuk menyebarkan database U-SQL ke akun Azure Data Lake Analytics:

      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>
      

Deskripsi parameter PackageDeploymentTool.exe

Parameter umum

Parameter Deskripsi Nilai Default Diperlukan
Paket Jalur paket penyebaran database U-SQL yang akan disebarkan. null true
Database Nama database yang akan disebarkan atau dibuat. master salah
LogFile Jalur file untuk pengelogan. Default ke standar keluar (konsol). null false
LogLevel Level log: Verbose, Normal, Warning, atau Error. LogLevel.Normal salah

Parameter untuk penyebaran lokal

Parameter Deskripsi Nilai Default Diperlukan
DataRoot Jalur folder akar data lokal. null true

Parameter untuk penyebaran Azure Data Lake Analytics

Parameter Deskripsi Nilai Default Diperlukan
Akun Menentukan akun Azure Data Lake Analytics mana yang akan disebarkan berdasarkan nama akun. null true
ResourceGroup Nama grup sumber daya Azure untuk akun Azure Data Lake Analytics. null true
SubscriptionId ID langganan Azure untuk akun Azure Data Lake Analytics. null true
Penyewa Nama penyewa adalah nama domain Microsoft Entra. Temukan di halaman manajemen langganan di portal Microsoft Azure. null true
AzureSDKPath Jalur untuk mencari assemblies (rakitan) dependen di Azure SDK. null true
Interaktif Apakah akan menggunakan mode interaktif untuk autentikasi atau tidak. false false
ClientId ID aplikasi Microsoft Entra diperlukan untuk autentikasi non-interaktif. null Diperlukan untuk autentikasi non-interaktif.
Rahasia Rahasia atau kata sandi untuk autentikasi non-interaktif. Digunakan hanya di lingkungan yang tepercaya dan aman. null Diperlukan untuk autentikasi non-interaktif, atau menggunakan SecreteFile.
SecretFile File menyimpan rahasia atau kata sandi untuk autentikasi non-interaktif. Pastikan agar tetap bisa dibaca hanya oleh pengguna saat ini. null Diperlukan untuk autentikasi non-interaktif, atau menggunakan Rahasia.
CertFile File menyimpan sertifikasi X.509 untuk autentikasi non-interaktif. Defaultnya adalah menggunakan autentikasi rahasia klien. null false
JobPrefix Awalan untuk penyebaran database tugas U-SQL DDL. Deploy_ + DateTime.Now false

Langkah berikutnya