Udostępnij za pośrednictwem


Jak skonfigurować potok ciągłej integracji/ciągłego wdrażania dla usługi Azure Data Lake Analytics

Z tego artykułu dowiesz się, jak skonfigurować potok ciągłej integracji i ciągłego wdrażania (CI/CD) dla zadań U-SQL i baz danych U-SQL.

Ważne

Usługa Azure Data Lake Analytics wycofana 29 lutego 2024 r. Dowiedz się więcej z tego ogłoszenia.

Na potrzeby analizy danych organizacja może używać usługi Azure Synapse Analytics lub Microsoft Fabric.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Używanie ciągłej integracji/ciągłego wdrażania dla zadań U-SQL

Azure Data Lake Tools for Visual Studio udostępnia typ projektu U-SQL, który ułatwia organizowanie skryptów U-SQL. Zarządzanie kodem U-SQL przy użyciu projektu U-SQL ułatwia dalsze scenariusze ciągłej integracji/ciągłego wdrażania.

Tworzenie projektu U-SQL

Projekt U-SQL można skompilować przy użyciu Microsoft Build Engine (MSBuild), przekazując odpowiednie parametry. Wykonaj kroki opisane w tym artykule, aby skonfigurować proces kompilacji dla projektu U-SQL.

Migracja projektu

Przed skonfigurowaniem zadania kompilacji dla projektu U-SQL upewnij się, że masz najnowszą wersję projektu U-SQL. Otwórz plik projektu U-SQL w edytorze i sprawdź, czy masz następujące elementy importu:

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

Jeśli nie, masz dwie opcje migracji projektu:

  • Opcja 1. Zmień stary element importu na poprzedni.
  • Opcja 2. Otwórz stary projekt w Azure Data Lake Tools for Visual Studio. Użyj nowszej wersji niż 2.3.3000.0. Stary szablon projektu zostanie automatycznie uaktualniony do najnowszej wersji. Nowe projekty utworzone z nowszymi wersjami niż 2.3.3000.0 używają nowego szablonu.

Pobieranie pakietu NuGet

Program MSBuild nie zapewnia wbudowanej obsługi projektów U-SQL. Aby uzyskać tę pomoc techniczną, musisz dodać odwołanie do rozwiązania do pakietu NuGet Microsoft.Azure.DataLake.USQL.SDK , który dodaje wymaganą usługę językową.

Aby dodać odwołanie do pakietu NuGet, kliknij prawym przyciskiem myszy rozwiązanie w programie Visual Studio Eksplorator rozwiązań i wybierz polecenie Zarządzaj pakietami NuGet. Możesz też dodać plik o nazwie packages.config w folderze rozwiązania i umieścić do niego następującą zawartość:

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

Zarządzanie odwołaniami bazy danych U-SQL

Skrypty U-SQL w projekcie U-SQL mogą mieć instrukcje zapytań dla obiektów bazy danych U-SQL. W takim przypadku należy odwołać się do odpowiedniego projektu bazy danych U-SQL, który zawiera definicję obiektów przed utworzeniem projektu U-SQL. Przykładem jest zapytanie dotyczące tabeli U-SQL lub odwoływanie się do zestawu.

Dowiedz się więcej o projekcie bazy danych U-SQL.

Uwaga

Instrukcja DROP może spowodować przypadkowe usunięcie. Aby włączyć instrukcję DROP, należy jawnie określić argumenty MSBuild. AllowDropStatement włączy niezwiązaną z danymi operację DROP, na przykład funkcję drop assembly i drop table valued. AllowDataDropStatement włączy operację DROP powiązaną z danymi, na przykład drop table i drop schema. Przed użyciem parametru AllowDataDropStatement należy włączyć parametr AllowDataDropStatement.

Kompilowanie projektu U-SQL przy użyciu wiersza polecenia MSBuild

Najpierw przeprowadź migrację projektu i pobierz pakiet NuGet. Następnie wywołaj standardowy wiersz polecenia MSBuild z następującymi argumentami, aby skompilować projekt U-SQL:

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

Definicja argumentów i wartości są następujące:

  • USQLSDKPath=<U-SQL Nuget package>\build\runtime. Ten parametr odwołuje się do ścieżki instalacji pakietu NuGet dla usługi językowej U-SQL.

  • USQLTargetType=Merge lub SyntaxCheck:

    • Scal. Tryb scalania kompiluje pliki za pomocą kodu. Przykłady to pliki .cs, .py i r . Jest on wbudowany w wynikową bibliotekę kodu zdefiniowaną przez użytkownika do skryptu U-SQL. Przykładami są pliki binarne dll, Python lub R.

    • SkładniaZnacz. Tryb SyntaxCheck najpierw scala pliki kodu za pomocą skryptu U-SQL. Następnie kompiluje skrypt U-SQL w celu zweryfikowania kodu.

  • DataRoot =<Ścieżka> elementu DataRoot. Folder DataRoot jest wymagany tylko w trybie SyntaxCheck. Podczas kompilowania skryptu za pomocą trybu SyntaxCheck program MSBuild sprawdza odwołania do obiektów bazy danych w skry skrycie. Przed utworzeniem skonfiguruj zgodne środowisko lokalne zawierające przywoływane obiekty z bazy danych U-SQL w folderze DataRoot maszyny kompilacji. Te zależności bazy danych można również zarządzać, odwołując się do projektu bazy danych U-SQL. Program MSBuild sprawdza tylko odwołania do obiektów bazy danych, a nie pliki.

  • EnableDeployment=true lub false. EnableDeployment wskazuje, czy podczas procesu kompilacji można wdrożyć przywoływne bazy danych U-SQL. Jeśli odwołujesz się do projektu bazy danych U-SQL i korzystasz z obiektów bazy danych w skry skryptie U-SQL, ustaw ten parametr na wartość true.

Ciągła integracja za pośrednictwem usługi Azure Pipelines

Oprócz wiersza polecenia można również użyć programu Visual Studio Build lub zadania MSBuild do kompilowania projektów U-SQL w usłudze Azure Pipelines. Aby skonfigurować potok kompilacji, pamiętaj, aby dodać dwa zadania w potoku kompilacji: zadanie przywracania NuGet i zadanie programu MSBuild.

Zadanie MSBuild dla projektu U-SQL

  1. Dodaj zadanie przywracania NuGet, aby uzyskać pakiet NuGet, do którego odwołuje się rozwiązanie, zawierający Azure.DataLake.USQL.SDKelement , aby program MSBuild mógł znaleźć obiekty docelowe języka U-SQL. Ustaw wartość Advanced>Destination directory na $(Build.SourcesDirectory)/packages , jeśli chcesz użyć przykładowych argumentów MSBuild bezpośrednio w kroku 2.

    Zadanie przywracania NuGet dla projektu U-SQL

  2. Ustaw argumenty MSBuild w narzędziach kompilacji programu Visual Studio lub w zadaniu MSBuild, jak pokazano w poniższym przykładzie. Możesz też zdefiniować zmienne dla tych argumentów w potoku kompilacji usługi Azure Pipelines.

    Definiowanie zmiennych CI/CD MSBuild dla projektu 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
    

Dane wyjściowe kompilacji projektu U-SQL

Po uruchomieniu kompilacji wszystkie skrypty w projekcie U-SQL są kompilowane i wyjściowe do pliku zip o nazwie USQLProjectName.usqlpack. Struktura folderów w projekcie jest przechowywana w spakowanych danych wyjściowych kompilacji.

Uwaga

Pliki związane z kodem dla każdego skryptu U-SQL zostaną scalone jako instrukcja śródliniowa do danych wyjściowych kompilacji skryptu.

Testowanie skryptów U-SQL

Usługa Azure Data Lake udostępnia projekty testowe skryptów U-SQL i UDO#UDO/UDAG/UDF:

Wdrażanie zadania U-SQL

Po zweryfikowaniu kodu za pomocą procesu kompilacji i testowania można przesłać zadania U-SQL bezpośrednio z usługi Azure Pipelines za pośrednictwem zadania Azure PowerShell. Skrypt można również wdrożyć w usłudze Azure Data Lake Store lub Azure Blob Storage i uruchomić zaplanowane zadania za pośrednictwem Azure Data Factory.

Przesyłanie zadań U-SQL za pomocą usługi Azure Pipelines

Dane wyjściowe kompilacji projektu U-SQL to plik zip o nazwie USQLProjectName.usqlpack. Plik zip zawiera wszystkie skrypty U-SQL w projekcie. Za pomocą zadania Azure PowerShell w usłudze Pipelines można użyć następującego przykładowego skryptu programu PowerShell do przesyłania zadań U-SQL bezpośrednio z usługi 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

Uwaga

Polecenia : Submit-AzDataLakeAnalyticsJob i Wait-AzDataLakeAnalyticsJob są Azure PowerShell polecenia cmdlet dla usługi Azure Data Lake Analytics w strukturze azure Resource Manager. Będziesz neeed stacji roboczej z zainstalowanym Azure PowerShell. Więcej poleceń i przykładów można znaleźć na liście poleceń .

Wdrażanie zadań U-SQL za pomocą Azure Data Factory

Zadania U-SQL można przesyłać bezpośrednio z usługi Azure Pipelines. Możesz też przekazać utworzone skrypty do usługi Azure Data Lake Store lub Azure Blob Storage i uruchomić zaplanowane zadania za pośrednictwem Azure Data Factory.

Użyj zadania Azure PowerShell w usłudze Azure Pipelines z następującym przykładowym skryptem programu PowerShell, aby przekazać skrypty U-SQL do konta usługi 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ągła integracja/ciągłe wdrażanie dla bazy danych U-SQL Database

Azure Data Lake Tools for Visual Studio udostępnia szablony projektów bazy danych U-SQL, które ułatwiają opracowywanie i wdrażanie baz danych U-SQL oraz zarządzanie nimi. Dowiedz się więcej o projekcie bazy danych U-SQL Database.

Kompilowanie projektu bazy danych U-SQL Database

Pobieranie pakietu NuGet

Program MSBuild nie zapewnia wbudowanej obsługi projektów bazy danych U-SQL. Aby uzyskać tę możliwość, musisz dodać odwołanie do rozwiązania do pakietu NuGet Microsoft.Azure.DataLake.USQL.SDK , który dodaje wymaganą usługę językową.

Aby dodać odwołanie do pakietu NuGet, kliknij prawym przyciskiem myszy rozwiązanie w programie Visual Studio Eksplorator rozwiązań. Wybierz pozycję Zarządzaj pakietami NuGet. Następnie wyszukaj i zainstaluj pakiet NuGet. Możesz też dodać plik o nazwie packages.config w folderze rozwiązania i umieścić do niego następującą zawartość:

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

Kompilowanie projektu bazy danych U-SQL przy użyciu wiersza polecenia MSBuild

Aby skompilować projekt bazy danych U-SQL, wywołaj standardowy wiersz polecenia MSBuild i przekaż odwołanie do pakietu NuGet zestawu SDK U-SQL jako inny argument. Zobacz poniższy przykład:

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

Argument USQLSDKPath=<U-SQL Nuget package>\build\runtime odnosi się do ścieżki instalacji pakietu NuGet dla usługi językowej U-SQL.

Ciągła integracja z użyciem usługi Azure Pipelines

Oprócz wiersza polecenia można użyć programu Visual Studio Build lub zadania MSBuild do kompilowania projektów bazy danych U-SQL w usłudze Azure Pipelines. Aby skonfigurować zadanie kompilacji, dodaj dwa zadania w potoku kompilacji: zadanie przywracania NuGet i zadanie MSBuild.

Zadanie ciągłej integracji/ciągłego wdrażania msbuild dla projektu U-SQL

  1. Dodaj zadanie przywracania NuGet, aby uzyskać pakiet NuGet, do którego odwołuje się rozwiązanie, który zawiera Azure.DataLake.USQL.SDKelement , aby program MSBuild mógł znaleźć obiekty docelowe języka U-SQL. Ustaw katalog advanced>destination na $(Build.SourcesDirectory)/packages , jeśli chcesz użyć przykładowych argumentów MSBuild bezpośrednio w kroku 2.

    Zadanie NuGet ciągłej integracji/ciągłego wdrażania dla projektu U-SQL

  2. Ustaw argumenty MSBuild w narzędziach kompilacji programu Visual Studio lub w zadaniu MSBuild, jak pokazano w poniższym przykładzie. Możesz też zdefiniować zmienne dla tych argumentów w potoku kompilacji usługi Azure Pipelines.

    Definiowanie zmiennych CI/CD MSBuild dla projektu bazy danych U-SQL

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

Dane wyjściowe kompilacji projektu bazy danych U-SQL Database

Dane wyjściowe kompilacji dla projektu bazy danych U-SQL to pakiet wdrożeniowy bazy danych U-SQL o nazwie z sufiksem .usqldbpack. Pakiet .usqldbpack jest plikiem zip, który zawiera wszystkie instrukcje DDL w jednym skrypcie U-SQL w folderze DDL. Zawiera wszystkie pliki dll i inne pliki do zestawu w folderze tymczasowym.

Testowanie funkcji wartości tabeli i procedur składowanych

Dodawanie przypadków testowych dla funkcji wartości tabeli i procedur składowanych bezpośrednio nie jest obecnie obsługiwane. Aby obejść ten problem, możesz utworzyć projekt U-SQL, który zawiera skrypty U-SQL wywołujące te funkcje i pisać dla nich przypadki testowe. Wykonaj następujące kroki, aby skonfigurować przypadki testowe dla funkcji wartości tabeli i procedur składowanych zdefiniowanych w projekcie bazy danych U-SQL Database:

  1. Utwórz projekt U-SQL do celów testowych i napisz skrypty U-SQL wywołujące funkcje wartości tabeli i procedury składowane.

  2. Dodaj odwołanie do bazy danych do projektu U-SQL. Aby uzyskać funkcję wartości tabeli i definicję procedury składowanej, należy odwołać się do projektu bazy danych zawierającego instrukcję DDL. Dowiedz się więcej o odwołaniach do bazy danych.

  3. Dodaj przypadki testowe dla skryptów U-SQL wywołujących funkcje wartości tabeli i procedury składowane. Dowiedz się, jak dodawać przypadki testowe dla skryptów U-SQL.

Wdrażanie bazy danych U-SQL za pomocą usługi Azure Pipelines

PackageDeploymentTool.exe udostępnia interfejsy programowania i wiersza polecenia, które ułatwiają wdrażanie pakietów wdrażania bazy danych U-SQL, .usqldbpack. Zestaw SDK znajduje się w pakiecie NuGet zestawu SDK U-SQL znajdującym się w lokalizacji build/runtime/PackageDeploymentTool.exe. Za pomocą programu PackageDeploymentTool.exemożna wdrożyć bazy danych U-SQL zarówno na kontach platformy Azure Data Lake Analytics, jak i na kontach lokalnych.

Uwaga

Obsługa wiersza polecenia programu PowerShell i obsługa zadań wydania usługi Azure Pipelines dla wdrożenia bazy danych U-SQL jest obecnie oczekująca.

Wykonaj następujące kroki, aby skonfigurować zadanie wdrażania bazy danych w usłudze Azure Pipelines:

  1. Dodaj zadanie skryptu programu PowerShell w potoku kompilacji lub wydania i wykonaj następujący skrypt programu PowerShell. To zadanie pomaga uzyskać zależności zestawu Azure SDK dla PackageDeploymentTool.exe i PackageDeploymentTool.exe. Możesz ustawić parametry -AzureSDK i -DBDeploymentTool , aby załadować zależności i narzędzie wdrażania do określonych folderów. Przekaż ścieżkę -AzureSDK do PackageDeploymentTool.exe jako parametru -AzureSDKPath w kroku 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. Dodaj zadanie wiersza polecenia w potoku kompilacji lub wydania i wypełnij skrypt, wywołując polecenie PackageDeploymentTool.exe. PackageDeploymentTool.exe znajduje się w zdefiniowanym folderze $DBDeploymentTool . Przykładowy skrypt jest następujący:

    • Wdróż lokalnie bazę danych U-SQL:

      PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
      
    • Użyj trybu uwierzytelniania interaktywnego, aby wdrożyć bazę danych U-SQL na koncie usługi 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
      
    • Użyj uwierzytelniania wpisów tajnych, aby wdrożyć bazę danych U-SQL na koncie usługi 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>
      
    • Użyj uwierzytelniania certFile, aby wdrożyć bazę danych U-SQL na koncie usługi 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>
      

opisy parametrów PackageDeploymentTool.exe

Typowe parametry

Parametr Description Wartość domyślna Wymagane
Pakiet Ścieżka pakietu wdrożeniowego bazy danych U-SQL, który ma zostać wdrożony. null true
baza danych Nazwa bazy danych, która ma zostać wdrożona w programie lub została utworzona. master fałsz
Logfile Ścieżka pliku do rejestrowania. Wartość domyślna to standard out (konsola). null fałsz
LogLevel Poziom dziennika: pełne, normalne, ostrzeżenie lub błąd. LogLevel.Normal fałsz

Parametr wdrożenia lokalnego

Parametr Description Wartość domyślna Wymagane
DataRoot Ścieżka lokalnego folderu głównego danych. null true

Parametry wdrożenia usługi Azure Data Lake Analytics

Parametr Description Wartość domyślna Wymagane
Konto Określa konto usługi Azure Data Lake Analytics do wdrożenia według nazwy konta. null true
ResourceGroup Nazwa grupy zasobów platformy Azure dla konta usługi Azure Data Lake Analytics. null true
SubscriptionId Identyfikator subskrypcji platformy Azure dla konta usługi Azure Data Lake Analytics. null true
Dzierżawa Nazwa dzierżawy to nazwa domeny Microsoft Entra. Znajdź go na stronie zarządzania subskrypcjami w Azure Portal. null true
AzureSDKPath Ścieżka do wyszukiwania zestawów zależnych w zestawie Azure SDK. null true
Interaktywne Niezależnie od tego, czy używać trybu interaktywnego do uwierzytelniania. fałsz fałsz
ClientId Identyfikator aplikacji Microsoft Entra wymagany do uwierzytelniania nieinterakcyjnego. null Wymagane do uwierzytelniania nieinterakcyjnego.
Wpis tajny Wpis tajny lub hasło do uwierzytelniania nieinterakcyjnego. Należy go używać tylko w zaufanym i bezpiecznym środowisku. null Wymagane do uwierzytelniania nieinterakcyjnego lub używania pliku SecreteFile.
SecretFile Plik zapisuje wpis tajny lub hasło do uwierzytelniania nieinterakcyjnego. Pamiętaj, aby zachować czytelność tylko przez bieżącego użytkownika. null Wymagane do uwierzytelniania nieinterakcyjnego lub używania wpisu tajnego.
Certfile Plik zapisuje certyfikat X.509 na potrzeby uwierzytelniania nieinterakcyjnego. Ustawieniem domyślnym jest użycie uwierzytelniania wpisów tajnych klienta. null fałsz
JobPrefix Prefiks wdrożenia bazy danych zadania DDL U-SQL. Deploy_ + DateTime.Now fałsz

Następne kroki