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

使用 Azure 流分析处理事件中心的数据

利用 Azure 流分析服务,可以轻松地通过 Azure 事件中心引入、处理和分析流数据,获得进行实时操作所需的强大洞察力。 可以通过 Azure 门户直观显示传入数据以及编写流分析查询。 查询准备就绪后,单击几下鼠标即可将其移到生产环境中。

主要优点

下面是 Azure 事件中心和 Azure 流分析集成的主要优点:

  • 预览数据 – 可以在 Azure 门户中预览事件中心的传入数据。
  • 测试查询 – 准备一个转换查询并直接在 Azure 门户中对其进行测试。 有关查询语言语法,请参阅流分析查询语言文档。
  • 将查询部署到生产 – 可以通过创建并启动 Azure 流分析作业,将查询部署到生产环境中。

端到端流

重要

  • 如果你不是 Azure 订阅级别的所有者参与者角色的成员,则必须是 Azure 订阅级别的流分析查询测试者角色的成员,才能成功完成本部分中的步骤。 此角色允许你执行测试查询,而无需先创建流分析作业。 有关向用户分配角色的说明,请参阅向用户分配 AD 角色
  • 如果事件中心仅允许通过专用终结点进行专用访问,则必须将流分析作业加入同一网络,以便作业可以访问事件中心的事件。
  1. 登录到 Azure 门户

  2. 导航到你的事件中心命名空间,然后导航到包含传入数据的事件中心

  3. 在左侧导航菜单上,展开“功能”,选择“处理数据”,然后在“从事件中启用实时见解”磁贴上选择“开始”。

    显示“处理数据”页面的屏幕截图,且在该页面中选择了“启用根据事件得出实时见解”磁贴。

  4. 你会看到一个查询页面,其中包含已为以下字段设置的值。 如果你看到一个关于使用者组和正在为你创建的策略的弹出窗口,请选择“确定”。 你会立即在此选项卡中看到最新传入数据的快照。

    1. 你的事件中心,用作查询的输入。

    2. 包含 SELECT 语句的示例 SQL 查询

    3. 一个输出别名,用于引用查询测试结果。

      显示流分析查询的“查询”编辑器的屏幕截图。

    • 系统会自动检测数据中的序列化类型 (JSON/CSV)。 还可以手动将序列化类型更改为 JSON/CSV/AVRO。

    • 可以按表格式或原始格式预览传入数据。

    • 如果显示的数据不是最新的,请选择“刷新”查看最新事件。

    • 在上图中,结果以表格式显示。 若要查看原始数据,请选择“原始”

      “处理数据”页面结果窗格中“输入预览”窗口的屏幕截图,其中的数据以原始格式显示。

  5. 选择“测试查询”即可在“测试结果”选项卡中查看查询测试结果的快照。 还可以下载结果。

    结果窗格中带有测试结果的“输入预览”窗口的屏幕截图。

    编写你自己的查询来转换数据。 请参阅 Stream Analytics Query Language reference(流分析查询语言参考)。

  6. 对查询进行测试后,如果想要将其移入生产环境,请选择“创建流分析作业”。

    “查询”页面的屏幕截图,且在该页面中选择了“创建流分析作业”链接。

  7. 在“新建流分析作业”页中,执行以下步骤:

    1. 指定作业的名称。

    2. 选择要在其中创建作业的 Azure 订阅。

    3. 选择流分析作业资源的资源组。

    4. 选择作业的位置。

    5. 对于“事件中心策略名称”,请创建新策略或选择现有策略。

    6. 对于 事件中心使用者组”,请创建新的使用者组或选择现有的使用者组。

    7. 选择“创建”以创建流分析作业。

      显示“新建流分析作业”窗口的屏幕截图。

      注意

      建议你为在“事件中心”页创建的每个新的 Azure 流分析作业创建一个使用者组和一个策略。 使用者组仅允许 5 个并发读者。因此,如果为每个作业提供一个专用使用者组,即可避免超出该限制后可能会产生的任何错误。 专用策略允许你轮换密钥或撤销权限而不影响其他资源。

  8. 你的流分析作业现已创建,其中,你的查询与测试的相同,输入是你的事件中心。

    显示“流分析作业”页面的屏幕截图,其中包含可用于添加输出的链接。

  9. 添加所选的输出

  10. 单击痕迹导航链接中的作业名称,返回“流分析作业”页面。

  11. 选择“查询”窗口上方的“编辑查询”。

  12. 使用输出名称更新 [OutputAlias],然后选择查询上方的“保存查询”链接。 通过选择右上角的“X”关闭“查询”页面。

  13. 现在,在“流分析作业”页面上,选择工具栏上的“开始”以开始执行作业。

    流分析作业“开始作业”页面的屏幕截图。

Access

问题:用户无法访问预览数据,因为它们对订阅没有相应的权限。

选项 1:需要将想要预览传入数据的用户添加为“订阅参与者”。

选项 2:需要在订阅上将用户添加为“流分析查询测试人员”角色。 导航到订阅的“访问控制”。 将用户的新角色分配添加为“流分析查询测试人员”角色。

选项 3:用户可以创建 Azure 流分析作业。 将输入设置为此事件中心并导航到“查询”以预览来自此事件中心的传入数据。

选项 4:管理员可以在订阅上创建自定义角色。 将以下权限添加到自定义角色,然后将用户添加到新的自定义角色。

显示“Microsoft.StreamAnalytics 权限”页面的屏幕截图。

流式处理单位

Azure 流分析作业默认设置为三个流单元 (SU)。 若要调整此设置,请在 Azure 门户中的“流分析作业”页的左侧菜单中选择“缩放”。 若要详细了解流单元,请参阅了解和调整流单元

显示流分析作业的“扩展”页面的屏幕截图。

使用事件中心的异地复制功能时的注意事项

Azure 事件中心最近在公共预览版中推出了异地复制功能。 此功能与 Azure 事件中心的异地灾难恢复功能不同。

当故障转移类型为“强制”且复制一致性为“异步”时,流分析作业无法保证只将数据输出到 Azure 事件中心一次

Azure 流分析作为使用事件中心作为输出的生产者,可能会在故障转移期间以及当主服务器和辅助服务器之间的复制延迟达到配置的最大延迟时在事件中心进行限制期间观察到作业上的水印延迟

Azure 流分析作为使用事件中心作为输入的使用者,可能会在故障转移期间观察到作业上的水印延迟,并且可能会在故障转移完成后跳过数据或找到重复的数据

考虑到这些注意事项,我们建议你在事件中心故障转移完成后立即在适当的开始时间重启流分析作业。 此外,由于事件中心异地复制功能为公共预览版,因此我们目前不建议将此模式用于生产性流分析作业。 在事件中心异地复制功能正式发布并可用于流分析生产作业之前,当前的流分析行为会得到改进。

若要详细了解流分析查询,请参阅流分析查询语言