你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:在Visual Studio中创建一个流分析职位

在这个快速入门中,你将使用Visual Studio的Azure 流分析工具创建一个流分析职位。 示例作业读取物联网集线器设备的流数据。 你定义一个作业,当温度超过27°时计算平均温度,并将结果输出事件写入blob存储的新文件。

Prerequisites

在开始之前,确保你具备以下先决条件。

注释

为了获得最佳本地开发体验,请使用 适用于 Visual Studio Code 的流分析工具。 Visual Studio 2019(版本2.6.3000.0)的Stream Analytics工具存在已知的功能漏洞,且未获得进一步改进。 Visual Studio 和 Visual Studio Code 工具不支持中国东部、中国北部、德国中部和德国东北部区域的作业。

对输入数据进行准备

在定义流分析作业之前,先准备好以后配置为作业输入的数据。 准备输入数据时,请完成以下步骤:

  1. 登录到 Azure 门户

  2. 选择“ 创建资源>物联网>IoT 中心”。

  3. IoT 中心 窗格中,输入以下信息:

    设置 建议的值 说明
    Subscription <订阅> 选择要使用的 Azure 订阅。
    资源组 asaquickstart-resourcegroup 选择“ 新建 ”,然后输入帐户的新资源组名称。
    IoT 中心名称 MyASAIoTHub 为你的物联网集线器选择一个名称。
    区域 <选择离用户最近的地区> 选择一个可以托管物联网中心的地理位置。 使用离用户最近的位置。
    免费 对于本快速启动,请选择免费(如果它在您的订阅中仍然可用)。 如果免费层不可用,请选择可用的最低层。 有关详细信息,请参阅 IoT 中心定价

    显示 Azure 门户中的“创建 IoT 中心”向导的屏幕截图。

  4. 选择“查看 + 创建”。 查看您的物联网中枢信息并选择 创建。 你的物联网中枢可能需要几分钟时间来创建。 在 “通知 ”窗格中监视进度。

  5. 部署完成后,选择 “前往资源 ”,导航到您的物联网中心页面。

  6. IoT 中心页上,在左侧导航菜单上选择“设备管理”下的“设备”。

  7. 在“ 设备 ”页上,选择工具栏上的 “+ 添加设备 ”。

    显示“设备”页的屏幕截图,其中选择了“添加设备”。

  8. 在“ 创建设备 ”页上,输入设备的名称,然后选择“ 保存”。

    显示“创建设备”页的屏幕截图。

  9. 创建设备后,从 物联网设备 列表打开它。 如果尚未看到设备,请刷新页面。

    显示设备列表的屏幕截图,其中显示了你创建的设备。

  10. 复制 主连接字符串 并将其保存到记事本,以供以后使用。

创建 Blob 存储

在本节中,你需要创建一个 Azure 存储 账户和一个 blob 容器来存储作业的输出事件。

  1. 从 Azure 门户的左上角选择“创建资源”“存储”>“存储帐户”>

  2. “创建存储帐户 ”窗格中,输入存储帐户名称、位置和资源组。 选择与创建的 IoT 中心相同的位置和资源组。 然后选择 “查看 + 创建 ”以创建帐户。

    显示 Azure 门户中的“创建存储帐户”页的屏幕截图。

  3. 创建存储帐户后,在概览窗格中选择 Blob 服务磁贴。

    显示“存储帐户概述”页的屏幕截图,其中选择了“Blob 服务”。

  4. Blob 服务 页上,选择工具栏上的 + 容器

  5. “新建容器 ”页上,输入容器的名称,例如 container1。 将 公共访问级别 保留为 “专用”(无匿名访问), 然后选择“ 创建”。

    显示“新建容器”页的屏幕截图。

创建流分析项目

在Visual Studio中创建一个流分析项目,定义作业的输入、输出和查询。

  1. 启动 Visual Studio。

  2. 选择文件>新建项目

  3. 在模板列表中,选择 Stream Analytics,然后选择 Azure 流分析 Application

  4. 输入项目 名称地点解决方案名称,选择 创建

    显示“创建流分析项目”对话框的截图。

  5. 注意 Azure 流分析 项目中的元素。

    显示 Visual Studio 中示例流分析应用程序项目的“解决方案资源管理器”窗口的屏幕截图。

选择所需的订阅

将 Visual Studio 连接到包含你创建资源的 Azure 订阅。

  1. 在 Visual Studio 的 “视图 ”菜单上,选择 “服务器资源管理器”。
  2. 选择并长按(或右键点击)Azure,选择连接 Microsoft Azure 订阅,然后用你的 Azure 账户登录。

定义输入

配置作业输入,使其从你创建的 IoT 中心读取流式数据。

  1. 解决方案资源管理器 中,展开 Inputs 节点并打开 Input.json

  2. 使用以下值填写 流分析输入配置

    设置 建议的值 说明
    输入别名 Input 输入一个名称以识别该职位的输入。
    源类型 数据流 选择适当的输入源:数据流或引用数据。
    来源 IoT 中心 选择适当的输入源。
    Resource 从当前帐户中选择数据源 选择手动输入数据或选择现有帐户。
    Subscription <订阅> 选择包含你创建的物联网中枢的Azure订阅。
    IoT 中心 MyASAIoTHub 选择或输入您的物联网集线器名称。 如果你在同一订阅中创建物联网集线器名称,它们会自动显示。
  3. 将其他选项保留为默认值,然后选择“ 保存 ”以保存设置。

    显示“流分析输入配置”页的屏幕截图。

定义输出

配置作业输出将结果写入你的 blob 存储容器。

  1. 解决方案资源管理器 中,展开输出节点并打开 Output.json

  2. 使用以下值填写 流分析输出配置

    设置 建议的值 说明
    输出别名 输出 输入名称,用于标识该作业的输出。
    接收器 Data Lake Storage Gen 2/Blob 存储 选择适当的汇聚点。
    Resource 手动提供数据源设置 选择手动输入数据或选择现有帐户。
    Subscription <订阅> 选择具有您所创建存储帐户的 Azure 订阅。 存储帐户可以位于同一订阅中或不同订阅中。 这个例子假设你在同一订阅中创建了一个存储账户。
    存储帐户 asa快速启动存储 选择或输入存储帐户的名称。 如果你在同一订阅中创建存储账户名称,会自动显示。
    集装箱 container1 选择在存储帐户中创建的现有容器。
    路径模式 输出 输入一个文件路径名称,在容器内创建。
  3. 将其他选项保留为默认值,然后选择“ 保存 ”以保存设置。

    显示“流分析输出配置”页的屏幕截图。

定义转换查询

定义一个查询,过滤流数据并将结果发送到输出。

  1. 从 Visual Studio 中的解决方案资源管理器打开 Script.asaql

  2. 添加以下查询:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

将流分析查询提交到 Azure

向 Azure 提交查询以创建流分析任务。

  1. 查询编辑器中,在脚本编辑器中选择“ 提交到 Azure ”。

  2. “提交作业 ”窗口中,选择“ 创建新的 Azure 流分析作业”。

  3. 输入 作业名称

  4. 选择 Azure 订阅

  5. 选择 资源组

  6. 保留 群集的默认值。

  7. 选择你在快速开始时使用的 地点

  8. 选择“提交”。

    显示“提交作业”对话框的屏幕截图。

运行 IoT 模拟器

运行树莓派模拟器,将样本传感器数据发送到你的物联网集线器。

  1. 在新浏览器选项卡或窗口中打开 Raspberry Pi Azure IoT Online 模拟器

  2. 将第 15 行中的占位符替换为在上一部分中保存的 Azure IoT 中心设备连接字符串。

  3. 选择 运行。 输出应该显示发送到物联网集线器的传感器数据和消息。

    显示 Raspberry Pi Azure IoT Online 模拟器的屏幕截图。

启动流分析作业并检查输出

启动作业,验证它是否处理输入事件并将输出写入blob存储。

  1. 创建工作时,工作视图会自动打开。 点击绿色箭头按钮开始工作。

    显示从 Visual Studio 启动流分析作业的“开始”按钮的屏幕截图。

  2. 作业输出启动模式 更改为 JobStartTime ,然后选择“ 启动”。

    显示“流分析启动作业配置”对话框的屏幕截图。

  3. 作业状态变为 正在运行,并且会显示输入和输出事件。 这个变化可能需要几分钟。 选择工具栏上的 “刷新 ”按钮以刷新指标。

    屏幕截图显示作业状态为正在运行,以及作业的指标。

  4. 要查看结果,在 “查看” 菜单中选择 云资源管理器,进入资源组中的存储账户。 在 Blob 容器下,打开 container1,然后打开 output 文件路径。

    显示 container1 Blob 容器中输出结果的屏幕截图。

清理资源

当你不再需要它们时,删除资源组、流媒体作业和所有相关资源。 删除作业后,将停止对其消耗的流式处理单元计费。 如果你打算以后还用这份工作,先停下来,需要时再重新开始。 如果你不打算再用这个工作,请按照以下步骤删除本快速入门创建的所有资源:

  1. 在Azure门户的左侧菜单中,选择资源组,然后选择你创建的资源名称。
  2. 在资源组页上选择“删除”,在文本框中键入要删除的资源的名称,然后选择“删除”。