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

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

先决条件

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

Note

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

对输入数据进行准备

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

  1. 登录到 Azure 门户。

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

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

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

定义输入

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

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

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

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

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

定义输出

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

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

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

    设置 建议的值 Description
    输出别名 Output 输入名称,用于标识该作业的输出。
    Sink Data Lake Storage第 2 代/Blob 存储 选择适当的汇聚点。
    资源 手动提供数据源设置 选择手动输入数据或选择现有帐户。
    订阅 <您的订阅> 选择具有您所创建存储帐户的 Azure 订阅。 存储帐户可以位于同一订阅中或不同订阅中。 这个例子假设你在同一订阅中创建了一个存储账户。
    存储帐户 asa快速启动存储 选择或输入存储帐户的名称。 如果你在同一订阅中创建存储账户名称,会自动显示。
    Container 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. 在资源组页上选择“删除”,在文本框中键入要删除的资源的名称,然后选择“删除”。