AI/BI 仪表板是有价值的数据分析和决策工具,高效的加载时间可以显著提高用户体验。 本文介绍缓存和数据集优化如何提高仪表板的性能和效率。
查询性能
可以在工作区查询历史记录中检查查询及其性能。 查询历史记录显示了使用 SQL 仓库执行的 SQL 查询。 单击,在边栏中选择查询历史记录以查看查询历史记录。 请参阅查询历史记录。
对于仪表板数据集,Azure Databricks 根据数据集的结果大小应用性能优化。 有关数据集性能阈值的信息,请参阅 数据集性能阈值。
数据集优化
仪表板通过尽可能在浏览器中直接执行由筛选器或可视化设置驱动的筛选和聚合操作来优化速度。 这些性能优化具有以下限制:
| 数据集大小 | 处理行为 |
|---|---|
| 小型(≤ 10 万行和 ≤ 100MB) | 为了获得最佳仪表板速度,请在初始数据集加载后在浏览器中运行筛选和聚合。 由于这些作在本地处理,因此它们避免了与数据仓库的进一步交互,并且不会显示在查询历史记录中。 |
| 大型(> 100K 行或 > 100MB) | 筛选和聚合在后端服务器上处理,而不是在浏览器中进行处理。 初始数据集查询包装在 SQL WITH 子句中,生成的查询将显示在查询历史记录中。 |
| 组合查询(大型数据集) | 对于发送到后端的可视化查询,针对共享相同 GROUP BY 子句和筛选谓词的同一数据集的多个单独可视化查询将组合为单个查询以供处理。 在这种情况下,用户可能会在查询历史记录中看到合并的查询,该查询会提取多个可视化效果或筛选器的结果。 |
注释
参数直接在运行时将值替换到查询中,因此这些作始终出现在查询历史记录中。
缓存和数据刷新
仪表板维护 24 小时的结果缓存,以优化初始加载时间,并尽最大努力运行。 这意味着,虽然系统总是尝试使用与仪表板凭据相关联的历史查询结果来提高性能,但在某些情况下无法创建或维护缓存结果。 缓存数据没有特定的内存限制,或固定查询计数。
为了优化加载时间,面板首先检查面板缓存。 如果没有可用的缓存结果,则检查通用 查询结果缓存。 虽然仪表板缓存最多可以返回 24 小时过期的结果,但查询结果缓存永远不会返回过时的数据。 基础数据更改时,所有查询结果缓存条目都失效。
对于多页仪表板,适用以下情况:
- 编辑草稿仪表板会加载并缓存所有数据集。
- 当查看者打开已发布的仪表板时,仅运行和缓存支持活动页面的数据集。
- 如果设置了计划,则所有数据集会根据计划刷新,并缓存这些结果。
下表说明缓存如何因仪表板状态和凭据而异:
| 仪表板类型 | 缓存类型 |
|---|---|
| 使用共享数据权限发布的仪表板 | 共享缓存。 所有查看者都看到相同的结果。 |
| 使用单个数据权限发布的仪表板或仪表板草稿 | 每个用户缓存。 查看者根据其数据权限查看结果。 |
如果基础数据在上次查询后保持不变,或者结果在 24 小时前被检索,仪表板会自动使用缓存的查询结果。 如果存在过时的结果并且参数应用于仪表板,则除非在过去 24 小时内使用相同的参数,否则查询将重新运行。 同样,向超过 100,000 行的数据集应用筛选器会提示查询重新运行,除非过去 24 小时内应用了相同的筛选器。
计划的查询
将计划添加到使用共享数据权限发布的仪表板可以显著加快所有仪表板查看者的初始加载过程。
对于每个计划的仪表板更新,将发生以下情况:
- 定义数据集的所有 SQL 逻辑都以指定的时间间隔运行。
- 结果会填充查询结果缓存,并帮助改进初始仪表板加载时间。