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

使用 Azure 流分析无代码编辑器转换数据并将其存储到 Azure SQL 数据库

本文介绍如何使用无代码编辑器轻松创建流分析作业,该作业不断从事件中心实例(事件中心)读取数据、转换数据,然后将结果写入到 Azure SQL 数据库。

先决条件

Azure 事件中心和 Azure SQL 存储库资源必须可公开访问,并且不能位于防火墙之后或在 Azure 虚拟网络安全保护下。 事件中心中的数据必须以 JSON、CSV 或 Avro 格式进行序列化。

若要尝试本文中的步骤,请按照以下步骤操作。

  • 如果还没有事件中心,则创建一个事件中心。 在事件中心中生成数据。 在“事件中心实例”页上,选择左侧菜单上的“生成数据(预览版)”,在“数据集”中选择“股票数据”,然后选择“发送”将一些示例数据发送到事件中心。 若要测试本文中的步骤,则必须执行此步骤。

    显示事件中心实例的“生成数据(预览版)”页的屏幕截图。

  • 创建 Azure SQL 数据库。 下面是创建数据库时需要注意的一些要点。

    1. 在“基本信息”页上,在“服务器”中选择“新建”。 然后,在“创建 SQL 数据库服务器”页上,选择“使用 SQL 身份验证”,并指定管理员用户 ID 和密码。

    2. 在“网络”页上,执行以下步骤:

      1. 启用“公共终结点”。
      2. 对于“允许 Azure 服务和资源访问此服务器”,选择“是”。
      3. 对“添加当前客户端 IP 地址”选择“是”。
    3. 在“其他设置”页上,对“使用现有数据”选择“无”。

    4. 本文跳过了“查询数据库”和“清理资源”部分中的步骤。

    5. 若要测试步骤,请使用“查询编辑器(预览版)”在 SQL 数据库中创建表。

      create table stocks (
          symbol varchar(4),
          price decimal
      )
      

使用无代码编辑器创建流分析作业

本部分介绍如何使用无代码编辑器创建 Azure 流分析作业。 该作业将转换从事件中心实例(事件中心)流式传输的数据,并将结果数据存储到 Azure SQL 数据库。

  1. Azure 门户中,针对你的事件中心导航到“事件中心实例”页。

  2. 选择左侧菜单上的“功能”>“处理数据”,然后在“转换数据并将其存储到 SQL 数据库”卡上选择“开始”。

    显示“筛选并引入到 ADLS Gen2”卡片的屏幕截图,其中选择了“启动”。

  3. 输入流分析作业的名称,然后选择“创建”。 你将看到流分析作业示意图,“事件中心”窗口在右侧。

    显示在何处输入作业名称的屏幕截图。

  4. 在“事件中心”窗口上,查看“序列化”和“身份验证模式”设置,然后选择“连接”。

    显示事件中心连接配置的屏幕截图。

  5. 成功建立连接并且数据进入事件中心实例后,你将看到两项内容:

    • 输入数据中存在的字段。 可以选择“添加字段”,也可以选择字段旁边的三个点符号来删除、重命名或更改其类型。

      屏幕截图显示事件中心字段列表,可在其中移除、重命名或更改字段类型。

    • 图表视图下的“数据预览”表中的传入数据的实时示例。 它会定期自动刷新。 可以选择“暂停流式预览”以查看示例输入数据的静态视图。

      显示“数据预览”下的示例数据的屏幕截图。

  6. 选择“分组依据”磁贴以聚合数据。 在“分组依据”配置面板中,可以指定要用作分组依据的字段和“时间范围”。

    在以下示例中,我们使用“price”的平均值和“symbol”。

    显示“按运算符分组”配置的屏幕截图。

  7. 可以在“数据预览”部分中验证步骤的结果。

    显示按运算符分组的数据预览的屏幕截图。

  8. 选择“管理字段”磁贴。 在“管理字段”配置面板中,通过选择“添加字段”->“导入的架构”-> 字段来选择要输出的字段。

    如果要添加所有字段,请选择“添加所有字段”。 添加字段时,可以为输出指定不同的名称。 例如,将 AVG_Value 优化为 Value。 保存所选内容后,可以在“数据预览”窗格中看到数据。

    在以下示例中,我们选择“符号”和“AVG_Value”。 “符号”映射到“symbol”,“AVG_Value”映射到“price”。

    显示管理字段运算符配置的屏幕截图。

  9. 选择“SQL”磁贴。 在“SQL 数据库”配置面板中,填写所需的参数并进行连接。 选择“加载现有表”以自动选取表。 以下示例中选取的是 [dbo].[stocks]。 然后,选择“连接”。

    注意

    选择写入的表的架构必须与数据预览生成的字段数量及其类型完全匹配。

    显示 sql 数据库输出配置的屏幕截图。

  10. 在“数据预览”窗格中,可以看到在 SQL 数据库中引入的数据预览。

    屏幕截图显示“获取静态预览/刷新静态预览”选项。

  11. 选择“保存”,然后选择“启动”以启动流分析作业。

    屏幕截图显示“保存”和“启动”选项。

  12. 要开始作业,请指定以下内容:

    • 作业运行时使用的“流单元 (SU)”数量。 SU 表示分配给作业的计算和内存量。 建议先选用 3,然后根据需要进行调整。

    • 输出数据错误处理 - 它允许指定作业因数据错误而无法输出到目标时所需的行为。 默认情况下,作业会重试,直到写入操作成功。 你也可以选择删除此类输出事件。

      显示“启动流分析作业”选项的屏幕截图,可在其中更改输出时间、设置流单元数,然后选择“输出数据错误处理”选项。

  13. 选择“开始”后,作业将在两分钟内开始运行。 你将看到底部窗格中的“指标”面板处于打开状态。 此面板需要一些时间才能更新。 选择面板右上角的“刷新”以刷新图表。 在 Web 浏览器的单独选项卡或窗口中继续执行下一步。

    显示启动后的作业指标的屏幕截图。

    还可以在“流分析作业”选项卡的“处理数据”部分下查看作业。根据需要选择“打开指标”来监控它,或者停止并重新启动它。

    “流分析作业”选项卡的屏幕截图,可在其中查看正在运行的作业状态。

  14. 在门户中以单独的浏览器窗口或选项卡导航到你的事件中心,然后再次发送示例股票数据(就像在先决条件中所做的那样)。 在“事件中心实例”页上,选择左侧菜单上的“生成数据(预览版)”,在“数据集”中选择“股票数据”,然后选择“发送”将一些示例数据发送到事件中心。 需要几分钟时间才能看到“指标”面板更新。

  15. 应该看到在 Azure SQL 数据库中插入了记录。

    显示数据库中 stocks 表的内容的屏幕截图。

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

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

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

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

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

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

后续步骤

详细了解 Azure 流分析以及如何监视已创建的作业。