Azure Synapse Analytics 中的历史查询存储和分析

历史查询分析是数据工程师的关键需求之一。 Azure Synapse Analytics 支持三种分析查询历史记录和性能的主要方法。 其中包括查询存储、DMV 和 Azure Log Analytics。

本文将介绍如何根据需求来使用这些选项。 查看分析查询历史记录的用例以及适用于每个用例的最佳方法。

客户需求 查询存储 DMV Azure Log Analytics
现成的解决方案 需要启用 ✔️ 需要添加服务
较长的分析周期 30 天 最多 10000 行历史记录 可自定义
关键指标可用性 受限制 ✔️ 受限制
使用 SQL 进行分析 ✔️ ✔️ 所需的 KQL

查询存储

查询存储功能提供有关查询计划选择和性能的见解。 它可帮助你快速找到查询计划更改所造成的性能差异,从而简化了性能疑难解答。

默认不为新的 Azure Synapse Analytics 数据库启用查询存储。 启用查询存储运行以下 T-SQL 命令:

ALTER DATABASE <database_name>
SET QUERY_STORE = ON;

例如:

ALTER DATABASE [SQLPOOL1]
SET QUERY_STORE = ON;

可以通过查找上次执行的查询、执行计数、运行时间最长的查询以及具有最大物理 I/O 潜在客户的查询来运行与任务相关的性能审核和故障排除。 有关示例查询,请参阅使用查询存储监视性能

优点:

  • 查询数据最多可存储 30 天。 默认为 7 天。
  • 可以在运行查询的同一工具中使用数据。

已知限制:

  • 历史查询数据的默认存储时间更短。
  • 与使用 DMV 相比,适用于 Azure Synapse 的查询存储中的分析场景有所限制。

DMV

动态管理视图 (DMV) 极其适合用于收集有关查询等待时间、执行计划和内存等信息。强烈建议标记感兴趣的查询,供日后对它进行跟踪。 例如:

-- Query with Label
SELECT *
FROM sys.tables
OPTION (LABEL = 'My Query');

有关在 Azure Synapse SQL 中标记查询的详细信息,请参阅在 Synapse SQL 中使用查询标记

有关使用 DMV 监视 Azure Synapse Analytics 工作负荷的详细信息,请参阅使用 DMV 监视专用 SQL 池工作负荷。 有关特定于 Azure Synapse Analytics 的目录视图文档,请参阅 Azure Synapse Analytics 目录视图

优点:

  • 可以在同一查询工具中使用数据。
  • DMV 提供了广泛的分析选项。

已知限制:

  • DMV 限制为 10,000 行历史条目。
  • 当池暂停/恢复时将重置视图。

Log Analytics

可以在 Azure 门户中轻松创建 Log Analytics 工作区。 有关如何将 Synapse 与 Log Analytics 连接的进一步说明,请参阅监视工作负荷 - Azure 门户

除了可配置的保留期外,还可以在 Log Analytics 中选择专用于查询的工作区。 Log Analytics 使你能够灵活地存储数据、运行并保存查询。

优点:

  • Azure Log Analytics 具有可自定义的日志保留策略

已知限制:

  • 使用 KQL 将添加到学习曲线。
  • 可以现成记录的视图有限。

后续步骤