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 将添加到学习曲线。
- 可以现成记录的视图有限。