你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在这个快速入门中,你将使用Visual Studio的Azure 流分析工具创建一个流分析职位。 示例作业读取物联网集线器设备的流数据。 你定义一个作业,当温度超过27°时计算平均温度,并将结果输出事件写入blob存储的新文件。
Prerequisites
在开始之前,确保你具备以下先决条件。
注释
为了获得最佳本地开发体验,请使用 适用于 Visual Studio Code 的流分析工具。 Visual Studio 2019(版本2.6.3000.0)的Stream Analytics工具存在已知的功能漏洞,且未获得进一步改进。 Visual Studio 和 Visual Studio Code 工具不支持中国东部、中国北部、德国中部和德国东北部区域的作业。
拥有有效订阅的 Azure 帐户。 如果没有 Azure 订阅,可以创建一个免费帐户。
Visual Studio 2019。 企业版(终极版/高级版)、专业版和社区版都能用,但Express版不行。
对输入数据进行准备
在定义流分析作业之前,先准备好以后配置为作业输入的数据。 准备输入数据时,请完成以下步骤:
登录到 Azure 门户。
选择“ 创建资源>物联网>IoT 中心”。
在 IoT 中心 窗格中,输入以下信息:
设置 建议的值 说明 Subscription <订阅> 选择要使用的 Azure 订阅。 资源组 asaquickstart-resourcegroup 选择“ 新建 ”,然后输入帐户的新资源组名称。 IoT 中心名称 MyASAIoTHub 为你的物联网集线器选择一个名称。 区域 <选择离用户最近的地区> 选择一个可以托管物联网中心的地理位置。 使用离用户最近的位置。 层 免费 对于本快速启动,请选择免费(如果它在您的订阅中仍然可用)。 如果免费层不可用,请选择可用的最低层。 有关详细信息,请参阅 IoT 中心定价。
选择“查看 + 创建”。 查看您的物联网中枢信息并选择 创建。 你的物联网中枢可能需要几分钟时间来创建。 在 “通知 ”窗格中监视进度。
部署完成后,选择 “前往资源 ”,导航到您的物联网中心页面。
在 IoT 中心页上,在左侧导航菜单上选择“设备管理”下的“设备”。
在“ 设备 ”页上,选择工具栏上的 “+ 添加设备 ”。
在“ 创建设备 ”页上,输入设备的名称,然后选择“ 保存”。
创建设备后,从 物联网设备 列表打开它。 如果尚未看到设备,请刷新页面。
复制 主连接字符串 并将其保存到记事本,以供以后使用。
创建 Blob 存储
在本节中,你需要创建一个 Azure 存储 账户和一个 blob 容器来存储作业的输出事件。
从 Azure 门户的左上角选择“创建资源”“存储”>“存储帐户”>。
在 “创建存储帐户 ”窗格中,输入存储帐户名称、位置和资源组。 选择与创建的 IoT 中心相同的位置和资源组。 然后选择 “查看 + 创建 ”以创建帐户。
创建存储帐户后,在概览窗格中选择 Blob 服务磁贴。
在 Blob 服务 页上,选择工具栏上的 + 容器。
在 “新建容器 ”页上,输入容器的名称,例如 container1。 将 公共访问级别 保留为 “专用”(无匿名访问), 然后选择“ 创建”。
创建流分析项目
在Visual Studio中创建一个流分析项目,定义作业的输入、输出和查询。
启动 Visual Studio。
选择文件>新建项目。
在模板列表中,选择 Stream Analytics,然后选择 Azure 流分析 Application。
输入项目 名称、 地点和 解决方案名称,选择 创建。
注意 Azure 流分析 项目中的元素。
选择所需的订阅
将 Visual Studio 连接到包含你创建资源的 Azure 订阅。
- 在 Visual Studio 的 “视图 ”菜单上,选择 “服务器资源管理器”。
- 选择并长按(或右键点击)Azure,选择连接 Microsoft Azure 订阅,然后用你的 Azure 账户登录。
定义输入
配置作业输入,使其从你创建的 IoT 中心读取流式数据。
在 解决方案资源管理器 中,展开 Inputs 节点并打开 Input.json。
使用以下值填写 流分析输入配置 :
设置 建议的值 说明 输入别名 Input 输入一个名称以识别该职位的输入。 源类型 数据流 选择适当的输入源:数据流或引用数据。 来源 IoT 中心 选择适当的输入源。 Resource 从当前帐户中选择数据源 选择手动输入数据或选择现有帐户。 Subscription <订阅> 选择包含你创建的物联网中枢的Azure订阅。 IoT 中心 MyASAIoTHub 选择或输入您的物联网集线器名称。 如果你在同一订阅中创建物联网集线器名称,它们会自动显示。 将其他选项保留为默认值,然后选择“ 保存 ”以保存设置。
定义输出
配置作业输出将结果写入你的 blob 存储容器。
在 解决方案资源管理器 中,展开输出节点并打开 Output.json。
使用以下值填写 流分析输出配置 :
设置 建议的值 说明 输出别名 输出 输入名称,用于标识该作业的输出。 接收器 Data Lake Storage Gen 2/Blob 存储 选择适当的汇聚点。 Resource 手动提供数据源设置 选择手动输入数据或选择现有帐户。 Subscription <订阅> 选择具有您所创建存储帐户的 Azure 订阅。 存储帐户可以位于同一订阅中或不同订阅中。 这个例子假设你在同一订阅中创建了一个存储账户。 存储帐户 asa快速启动存储 选择或输入存储帐户的名称。 如果你在同一订阅中创建存储账户名称,会自动显示。 集装箱 container1 选择在存储帐户中创建的现有容器。 路径模式 输出 输入一个文件路径名称,在容器内创建。 将其他选项保留为默认值,然后选择“ 保存 ”以保存设置。
定义转换查询
定义一个查询,过滤流数据并将结果发送到输出。
从 Visual Studio 中的解决方案资源管理器打开 Script.asaql。
添加以下查询:
SELECT * INTO Output FROM Input WHERE Temperature > 27
将流分析查询提交到 Azure
向 Azure 提交查询以创建流分析任务。
在 查询编辑器中,在脚本编辑器中选择“ 提交到 Azure ”。
在 “提交作业 ”窗口中,选择“ 创建新的 Azure 流分析作业”。
输入 作业名称。
选择 Azure 订阅。
选择 资源组。
保留 群集的默认值。
选择你在快速开始时使用的 地点 。
选择“提交”。
运行 IoT 模拟器
运行树莓派模拟器,将样本传感器数据发送到你的物联网集线器。
在新浏览器选项卡或窗口中打开 Raspberry Pi Azure IoT Online 模拟器 。
将第 15 行中的占位符替换为在上一部分中保存的 Azure IoT 中心设备连接字符串。
选择 运行。 输出应该显示发送到物联网集线器的传感器数据和消息。
启动流分析作业并检查输出
启动作业,验证它是否处理输入事件并将输出写入blob存储。
创建工作时,工作视图会自动打开。 点击绿色箭头按钮开始工作。
将 作业输出启动模式 更改为 JobStartTime ,然后选择“ 启动”。
作业状态变为 正在运行,并且会显示输入和输出事件。 这个变化可能需要几分钟。 选择工具栏上的 “刷新 ”按钮以刷新指标。
要查看结果,在 “查看” 菜单中选择 云资源管理器,进入资源组中的存储账户。 在 Blob 容器下,打开 container1,然后打开 output 文件路径。
清理资源
当你不再需要它们时,删除资源组、流媒体作业和所有相关资源。 删除作业后,将停止对其消耗的流式处理单元计费。 如果你打算以后还用这份工作,先停下来,需要时再重新开始。 如果你不打算再用这个工作,请按照以下步骤删除本快速入门创建的所有资源:
- 在Azure门户的左侧菜单中,选择资源组,然后选择你创建的资源名称。
- 在资源组页上选择“删除”,在文本框中键入要删除的资源的名称,然后选择“删除”。