如何使用Azure SDK Azure.ResourcesManager.DatalakeAnalytics提交U-SQL作业并获取状态?
Azure Data Lake Analytics SDK 迁移:弃用包替代方案
核心变更概述
- 旧NuGet包
Microsoft.Azure.Management.DataLake.Analytics已被弃用,官方推荐替代包为Azure.ResourceManager.DataLakeAnalytics - 旧客户端类
DataLakeAnalyticsJobManagementClient在新包中已移除,需采用全新的资源导向API实现作业管理
新包基础用法示例
1. 安装与客户端初始化
先安装目标NuGet包,再通过Azure Identity完成认证初始化:
using Azure.Identity; using Azure.ResourceManager.DataLakeAnalytics; // 使用默认认证方式(支持Azure CLI、环境变量、Managed Identity等) var credential = new DefaultAzureCredential(); var subscriptionId = "你的订阅ID"; var dlAnalyticsClient = new DataLakeAnalyticsManagementClient(credential, subscriptionId);
2. 提交U-SQL作业
替代旧客户端的作业提交逻辑,新包通过账户资源对象操作作业:
using Azure.ResourceManager.DataLakeAnalytics.Models; var resourceGroupName = "资源组名称"; var accountName = "Data Lake Analytics账户名"; // 获取目标账户资源 var accountResource = dlAnalyticsClient.Accounts.Get(resourceGroupName, accountName); // 构造作业参数 var jobContent = new DataLakeAnalyticsJobCreateOrUpdateContent( DataLakeAnalyticsJobType.U_SQL, "示例作业", @"SELECT * FROM /input/sample.csv;") { Priority = 1, DegreeOfParallelism = 2 }; // 提交作业并等待完成 var jobId = Guid.NewGuid().ToString(); var jobOperation = await accountResource.GetDataLakeAnalyticsJobs() .CreateOrUpdateAsync(WaitUntil.Completed, jobId, jobContent); var submittedJob = jobOperation.Value;
关键提示
- 新包采用资源优先的设计,所有操作需先获取对应资源对象(如Data Lake Analytics账户),再操作其子资源(如作业)
- 认证统一依赖
Azure.Identity库,不再使用旧的ServiceClientCredentials体系 - 作业状态查询、取消等操作同样通过
DataLakeAnalyticsJobResource对象执行
内容的提问来源于stack exchange,提问作者Abhishek Bagchi
相关产品推荐
相关产品推荐

