如何为 Azure Data Lake Analytics 设置 CI/CD 管道
本文介绍如何为 U-SQL 作业和 U-SQL 数据库设置持续集成和部署 (CI/CD) 管道。
重要
Azure Data Lake Analytics于 2024 年 2 月 29 日停用。 通过此公告了解更多信息。
对于数据分析,组织可以使用 Azure Synapse Analytics 或 Microsoft Fabric。
注意
建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
对 U-SQL 作业使用 CI/CD
针对 Visual Studio 的 Azure Data Lake 工具提供帮你组织 U-SQL 脚本的 U-SQL 项目类型。 使用 U-SQL 项目管理 U-SQL 代码可以轻松实现更多的 CI/CD 方案。
生成 U-SQL 项目
通过传递相应的参数,可以使用 Microsoft 生成引擎 (MSBuild) 生成 U-SQL 项目。 请遵循本文中的步骤来设置 U-SQL 项目的生成过程。
项目迁移
在设置 U-SQL 项目的生成任务之前,请确保已安装最新版本的 U-SQL 项目。 在编辑器中打开 U-SQL 项目文件并检查是否具有以下导入项:
<!-- 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')" />
如果没有,可以使用下面的两个选项来迁移项目:
- 选项 1:将旧的导入项更改为上面的一个。
- 选项 2:在针对 Visual Studio 的 Azure Data Lake 工具中打开旧项目。 请使用高于 2.3.3000.0 的版本。 旧的项目模板将自动升级到最新版本。 使用高于 2.3.3000.0 的版本创建的新项目将使用新模板。
获取 NuGet
MSBuild 不提供对 U-SQL 项目的内置支持。 若要获取此支持,需要将对解决方案的引用添加到添加所需语言服务的 Microsoft.Azure.DataLake.USQL.SDK NuGet 包。
若要添加 NuGet 包引用,请在 Visual Studio 解决方案资源管理器中右键单击该解决方案,然后选择“管理 NuGet 包”。 也可以在解决方案文件夹中添加一个名为 packages.config
的文件并将以下内容添加到其中:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.DataLake.USQL.SDK" version="1.3.180620" targetFramework="net452" />
</packages>
管理 U-SQL 数据库引用
U-SQL 项目中的 U-SQL 脚本可能包含针对 U-SQL 数据库对象的查询语句。 在这种情况下,需要在生成 U-SQL 项目之前,引用包含这些对象的定义的相应 U-SQL 数据库项目。 例如,在查询 U-SQL 表或引用程序集时。
详细了解 U-SQL 数据库项目。
注意
DROP 语句可能会导致意外删除。 若要启用 DROP 语句,需要显式指定 MSBuild 参数。 AllowDropStatement 将启用与数据无关的 DROP 操作,如删除程序集和删除表值函数。 AllowDataDropStatement 将启用与数据相关的 DROP 操作,如删除表和删除架构。 必须先启用 AllowDropStatement,然后才能使用 AllowDataDropStatement。
使用 MSBuild 命令行生成 U-SQL 项目
首先迁移项目并获取 NuGet 包。 然后使用以下参数调用标准 MSBuild 命令行以生成 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
参数的定义和值如下:
USQLSDKPath=<U-SQL Nuget 包>\build\runtime。 此参数引用 U-SQL 语言服务的 NuGet 包的安装路径。
USQLTargetType=Merge 或 SyntaxCheck:
Merge。 Merge 模式编译代码隐藏文件。 示例包括 .cs、.py 和 .r 文件。 它将生成的用户定义代码库内联到 U-SQL 脚本中。 示例包括 dll 库、Python 或 R 代码。
SyntaxCheck。 SyntaxCheck 模式首先将代码隐藏文件合并到 U-SQL 脚本中。 然后编译 U-SQL 脚本以验证代码。
DataRoot=<DataRoot 路径>。 只有 SyntaxCheck 模式需要 DataRoot。 使用 SyntaxCheck 模式生成脚本时,MSBuild 会检查脚本中对数据库对象的引用。 在生成之前,请设置匹配的本地环境,其中包含生成计算机的 DataRoot 文件夹中 U-SQL 数据库中的引用对象。 你还可以通过引用 U-SQL 数据库项目管理这些数据库依赖项。 MSBuild 只会检查数据库对象引用,而不检查文件。
EnableDeployment=true 或 false。 EnableDeployment 指示是否允许在生成过程中部署引用的 U-SQL 数据库。 如果引用了 U-SQL 数据库项目,并在 U-SQL 脚本中使用了数据库对象,请将此参数设置为 true。
通过 Azure Pipelines 进行持续集成
除了命令行以外,还可以使用 Visual Studio Build 或 MSBuild 任务在 Azure Pipelines 中生成 U-SQL 项目。 若要设置生成管道,请确保在生成管道中添加两个任务:一个 NuGet 还原任务,一个 MSBuild 任务。
添加 NuGet 还原任务以获取解决方案引用的包括
Azure.DataLake.USQL.SDK
的 NuGet 包,以便 MSBuild 可以找到 U-SQL 语言目标。 若要在步骤 2 中直接使用 MSBuild 参数示例,请将“高级”>“目标目录” 设置为$(Build.SourcesDirectory)/packages
。按以下示例中所示,在 Visual Studio 生成工具或 MSBuild 任务中设置 MSBuild 参数。 或者,可以在 Azure Pipelines 生成管道中为这些参数定义变量。
/p:USQLSDKPath=$(Build.SourcesDirectory)/packages/Microsoft.Azure.DataLake.USQL.SDK.1.3.180615/build/runtime /p:USQLTargetType=SyntaxCheck /p:DataRoot=$(Build.SourcesDirectory) /p:EnableDeployment=true
U-SQL 项目生成输出
运行生成后,生成 U-SQL 项目中的所有脚本并输出到名为 USQLProjectName.usqlpack
的 zip 文件。 项目中的文件夹结构将保留在压缩的生成输出中。
注意
每个 U-SQL 脚本的代码隐藏文件将作为内联语句合并到脚本生成输出。
测试 U-SQL 脚本
Azure Data Lake 为 U-SQL 脚本和 C# UDO/UDAG/UDF 提供测试项目:
部署 U-SQL 作业
通过生成和测试过程验证代码后,可以通过 Azure PowerShell 任务直接从 Azure Pipelines 提交 U-SQL 作业。 还可以将脚本部署到 Azure Data Lake Store 或 Azure Blob 存储并通过 Azure 数据工厂运行计划的作业。
通过 Azure Pipelines 提交 U-SQL 作业
U-SQL 项目的生成输出是一个名为 USQLProjectName.usqlpack 的 zip 文件。 该 zip 文件包含项目中的所有 U-SQL 脚本。 可以将 Pipelines 中的 Azure PowerShell 任务与以下示例 PowerShell 脚本配合使用,直接从 Azure Pipelines 提交 U-SQL 作业。
<#
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
注意
命令 Submit-AzDataLakeAnalyticsJob
和 Wait-AzDataLakeAnalyticsJob
都是 Azure资源管理器框架中用于 Azure Data Lake Analytics 的 Azure PowerShell cmdlet。 你需要一个已安装 Azure PowerShell 的工作站。 有关更多命令和示例,可以参阅命令列表。
通过 Azure 数据工厂部署 U-SQL 作业
可以直接从 Azure Pipelines 提交 U-SQL 作业。 或者,可将生成脚本上传到 Azure Data Lake Store 或 Azure Blob 存储并通过 Azure 数据工厂运行计划的作业。
将 Azure Pipelines 中的 Azure PowerShell 任务与以下示例 PowerShell 脚本配合使用,将 U-SQL 脚本上传到 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
适用于 U-SQL 数据库的 CI/CD
针对 Visual Studio 的 Azure Data Lake 工具提供 U-SQL 数据库项目模板,可帮助你开发、管理和部署 U-SQL 数据库。 详细了解 U-SQL 数据库项目。
生成 U-SQL 数据库项目
获取 NuGet 包
MSBuild 不提供对 U-SQL 数据库项目的内置支持。 若要获取此功能,需将对解决方案的引用添加到添加所需语言服务的 Microsoft.Azure.DataLake.USQL.SDK NuGet 包。
若要添加 NuGet 包引用,请在 Visual Studio 解决方案资源管理器中右键单击该解决方案。 选择“管理 NuGet 包”。 然后搜索并安装该 NuGet 包。 也可以在解决方案文件夹中添加一个名为 packages.config 的文件并将以下内容添加到其中:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.DataLake.USQL.SDK" version="1.3.180615" targetFramework="net452" />
</packages>
使用 MSBuild 命令行生成 U-SQL 数据库项目
若要生成 U-SQL 数据库项目,请调用标准 MSBuild 命令行,并将 U-SQL SDK NuGet 包引用作为另一个参数传递。 请参阅以下示例:
msbuild DatabaseProject.usqldbproj /p:USQLSDKPath=packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.180615\build\runtime
参数 USQLSDKPath=<U-SQL Nuget package>\build\runtime
引用 U-SQL 语言服务的 NuGet 包的安装路径。
使用 Azure Pipelines 进行持续集成
除了命令行以外,还可以使用 Visual Studio Build 或 MSBuild 任务在 Azure Pipelines 中生成 U-SQL 数据库项目。 若要设置生成任务,请确保在生成管道中添加两个任务:一个 NuGet 还原任务,一个 MSBuild 任务。
添加 NuGet 还原任务以获取解决方案引用的包括
Azure.DataLake.USQL.SDK
的 NuGet 包,以便 MSBuild 可以找到 U-SQL 语言目标。 若要在步骤 2 中直接使用 MSBuild 参数示例,请将“高级”>“目标目录” 设置为$(Build.SourcesDirectory)/packages
。按以下示例中所示,在 Visual Studio 生成工具或 MSBuild 任务中设置 MSBuild 参数。 或者,可以在 Azure Pipelines 生成管道中为这些参数定义变量。
/p:USQLSDKPath=$(Build.SourcesDirectory)/packages/Microsoft.Azure.DataLake.USQL.SDK.1.3.180615/build/runtime
U-SQL 数据库项目生成输出
U-SQL 数据库项目的生成输出是一个 U-SQL 数据库部署包,名称的后缀为 .usqldbpack
。
.usqldbpack
包是一个 zip 文件,其中包含 DDL 文件夹中单个 U-SQL 脚本中的所有 DDL 语句。 它包括临时文件夹中程序集的所有 .dll 和其他文件。
测试表值函数和存储过程
目前,不支持为表值函数和存储过程直接添加测试用例。 若要解决此问题,可以创建具有可调用这些函数的 U-SQL 脚本的 U-SQL 项目,并为它们编写测试用例。 执行以下步骤为在 U-SQL 数据库项目中定义的表值函数和存储过程设置测试用例:
创建用于测试目的的 U-SQL 项目,并编写调用表值函数和存储过程的 U-SQL 脚本。
添加对此 U-SQL 项目的数据库引用。 若要获取表值函数和存储过程定义,需要引用包含 DDL 语句的数据库项目。 详细了解数据库引用。
为调用表值函数和存储过程的 U-SQL 脚本添加测试用例。 了解如何为 U-SQL 脚本添加测试用例。
通过 Azure Pipelines 部署 U-SQL 数据库
PackageDeploymentTool.exe
提供帮助部署 U-SQL 数据库部署包 .usqldbpack 的编程和命令行接口。 SDK 包含在 U-SQL SDK NuGet 包中,位于 build/runtime/PackageDeploymentTool.exe。 通过使用 PackageDeploymentTool.exe
,可将 U-SQL 数据库部署到 Azure Data Lake Analytics 和本地帐户。
注意
针对 U-SQL 数据库部署的 PowerShell 命令行支持和 Azure Pipelines 发布任务支持正在开发中。
执行以下步骤,在 Azure Pipelines 中设置数据库部署任务:
在生成或发布管道中添加 PowerShell 脚本任务,并执行以下 PowerShell 脚本。 此任务可帮助获取
PackageDeploymentTool.exe
和PackageDeploymentTool.exe
的 Azure SDK 依赖项。 可以设置 -AzureSDK 和 -DBDeploymentTool 参数以将依赖项和部署工具加载到特定的文件夹。 在步骤 2 中将 -AzureSDK 路径作为 -AzureSDKPath 参数传递给PackageDeploymentTool.exe
。<# 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
在生成或发布管道中添加“命令行任务”并填写调用
PackageDeploymentTool.exe
的脚本。PackageDeploymentTool.exe
位于定义的 $DBDeploymentTool 文件夹下。 示例脚本如下所示:在本地部署 U-SQL 数据库:
PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
使用交互式身份验证模式将 U-SQL 数据库部署到 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-SQL 数据库部署到 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 身份验证将 U-SQL 数据库部署到 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>
PackageDeploymentTool.exe 参数说明
通用参数
参数 | 说明 | 默认值 | 必需 |
---|---|---|---|
程序包 | 要部署的 U-SQL 数据库部署包的路径。 | null | true |
数据库 | 要部署到或创建的数据库名称。 | 主 | false |
LogFile | 日志记录文件的路径。 默认为标准输出(控制台)。 | null | false |
LogLevel | 日志级别:Verbose、Normal、Warning 或 Error | LogLevel.Normal | false |
本地部署的参数
参数 | 说明 | 默认值 | 必需 |
---|---|---|---|
DataRoot | 本地数据根文件夹的路径。 | null | true |
Azure Data Lake Analytics 部署的参数
参数 | 说明 | 默认值 | 必需 |
---|---|---|---|
帐户 | 按帐户名称指定部署到哪个 Azure Data Lake Analytics 帐户。 | null | true |
ResourceGroup | Azure Data Lake Analytics 帐户的 Azure 资源组名称。 | null | true |
SubscriptionId | Azure Data Lake Analytics 帐户的 Azure 订阅 ID。 | null | true |
租户 | 租户名称是Microsoft Entra域名。 可在 Azure 门户的订阅管理页面中找到它。 | null | true |
AzureSDKPath | 要在 Azure SDK 中搜索依赖程序集的路径。 | null | true |
交互 | 是否使用交互模式进行身份验证。 | false | false |
ClientId | 非交互式身份验证所需的Microsoft Entra应用程序 ID。 | null | 非交互式身份验证需要此参数。 |
机密 | 用于非交互式身份验证的机密或密码。 仅应在受信任和安全的环境中使用。 | null | 非交互式身份验证需要此参数,或使用 SecreteFile。 |
SecretFile | 该文件保存用于非交互式身份验证的机密或密码。 请确保只有当前用户可以读取它。 | null | 非交互式身份验证需要此参数,或使用 Secret。 |
CertFile | 该文件保存用于非交互式身份验证的 X.509 证书。 默认使用客户端机密身份验证。 | null | false |
JobPrefix | U-SQL DDL 作业的数据库部署前缀。 | Deploy_ + DateTime.Now | false |