你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Synapse Analytics 中的历史查询存储和分析
历史查询分析是数据工程师的关键需求之一。 Azure Synapse Analytics 支持四种主要方法来分析查询历史记录和性能。 其中包括查询存储、DMV、Azure Log Analytics 和 Azure 数据资源管理器。
本文将介绍如何根据需求来使用这些选项。 查看分析查询历史记录的用例以及适用于每个用例的最佳方法。
客户需求 | 查询存储 | DMV | Azure Log Analytics | Azure 数据资源管理器 |
---|---|---|---|---|
现成的解决方案 | 需要启用 | ✔️ | 需要添加服务 | 需要添加服务 |
较长的分析周期 | 30 天 | 最多 10000 行历史记录 | 可自定义 | 可自定义 |
关键指标可用性 | 受限制 | ✔️ | 受限制 | 可自定义 |
使用 SQL 进行分析 | ✔️ | ✔️ | 所需的 KQL | SQL 支持有限 |
查询存储
查询存储功能提供有关查询计划选择和性能的见解。 它可帮助你快速找到查询计划更改所造成的性能差异,从而简化了性能疑难解答。
默认不为新的 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 门户。
与 Azure 数据资源管理器一样,Log Analytics 使用 Kusto 查询语言 (KQL)。 有关 Kusto 语法的详细信息,请参阅 Kusto 查询概述。
除了可配置的保留期外,还可以在 Log Analytics 中选择专用于查询的工作区。 Log Analytics 使你能够灵活地存储数据、运行并保存查询。
优点:
- Azure Log Analytics 具有可自定义的日志保留策略
已知限制:
- 使用 KQL 将添加到学习曲线。
- 可以现成记录的视图有限。
Azure 数据资源管理器 (ADX)
Azure 数据资源管理器 (ADX) 是领先的数据探索服务。 此服务可用于分析 Azure Synapse Analytics 中的历史查询。 若要设置 Azure 数据工厂 (ADF) 管道来将日志复制并存储到 ADX,请参阅向/从 Azure 数据资源管理器复制数据。 在 ADX 中,可以运行高性能的 Kusto 查询来分析日志。 可以在其中合并其他策略,例如,通过 ADF 查询 DMV 输出并加载到 ADX。
优点:
- ADX 提供可自定义的日志保留策略。
- 针对大量数据执行高性能查询,尤其是涉及字符串搜索的查询。
已知限制:
- 使用 KQL 将添加到学习曲线。