You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用.NET以编程方式运行Azure Stream Analytics转换查询

解决方案

你的需求可以实现,不需要运行完整Stream Analytics作业,现有的管理SDK没有直接暴露测试查询方法,你可以通过以下两种方案实现:

方案1:直接调用Stream Analytics官方测试查询REST接口

这是最稳定的实现方式,只需要你具备Azure资源的查询调用权限即可,不需要作业运行权限:

  • 调用端点为POST请求:https://management.azure.com/subscriptions/你的订阅ID/resourceGroups/你的资源组名/providers/Microsoft.StreamAnalytics/streamingjobs/你的作业名/testQuery?api-version=2021-10-01-preview
  • 请求头需携带Azure AD认证的Bearer Token,可通过Azure.Identity包的DefaultAzureCredential类快速获取
  • 请求体结构示例:
{
  "query": "Select Id, Name from 你的输入名",
  "inputs": [
    {
      "name": "你的输入名",
      "data": {
        "snapshot": {
          "contentType": "application/json",
          "content": "你的JSON样本内容的字符串形式"
        }
      }
    }
  ],
  "output": {
    "alias": "output"
  }
}
  • 接口返回结果中会直接包含查询运行后的输出数据,你可以直接提取保存即可。

方案2:使用Azure.ResourceManager.StreamAnalytics预览版SDK

你可以直接使用官方封装好的.NET SDK方法,不需要自行拼接REST请求:

  • 首先安装NuGet包:Azure.ResourceManager.StreamAnalytics(需选择1.2.0-beta.1及以上预览版本)
  • 示例代码如下:
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.StreamAnalytics;
using Azure.ResourceManager.StreamAnalytics.Models;

// 初始化客户端
ArmClient armClient = new ArmClient(new DefaultAzureCredential());
// 构造你的Stream Analytics作业资源ID
StreamingJobResource streamingJob = armClient.GetStreamingJobResource(
    StreamingJobResource.CreateResourceIdentifier("你的订阅ID", "你的资源组名", "你的作业名")
);

// 构造测试查询请求参数
StreamAnalyticsTestQueryContent content = new StreamAnalyticsTestQueryContent("你的查询语句")
{
    Inputs =
    {
        new StreamAnalyticsQueryTestingInput("你的输入名")
        {
            Data = new StreamAnalyticsQueryTestingSnapshotContent
            {
                ContentType = "application/json",
                Content = "你的JSON样本内容字符串"
            }
        }
    }
};

// 执行测试查询
var operation = await streamingJob.TestQueryAsync(WaitUntil.Completed, content);
// 获取查询结果
var result = operation.Value;
// 提取输出结果数据即可

注意事项

  • 单次测试的样本输入内容大小不可超过100MB
  • 查询语句中的输入别名必须和请求参数中配置的输入name完全一致
  • 该操作不会产生作业运行费用,也不需要你拥有作业的启动/停止权限

内容的提问来源于stack exchange,提问作者vinx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 16:36:07