使用热窗口查询冷数据
使用热窗口,你可以有效地查询冷数据,而无需导出数据或使用其他工具。 当冷数据量较大且相关数据来自过去任何时间时,可使用热窗口。 热窗口是在缓存策略中定义的。
Azure 数据资源管理器将数据存储在可靠的长期存储中,并将此数据的一部分缓存在群集节点上。 缓存策略控制缓存哪些数据。 缓存的数据被视为热数据,而其余数据则被视为冷数据 。
若要查询冷数据,Azure 数据资源管理器会处理一个加载步骤,它要求访问延迟比本地磁盘高得多的存储层。 当查询限制于一个小的时间窗口时,通常称为“时间点”查询,要检索的数据量通常很小,查询将很快完成。 例如,查询过去某一天的遥测数据的取证分析就属于这一类。 对查询持续时间的影响取决于从存储中拉取的数据的大小,并且影响可能会很大。 如果要扫描大量的冷数据,那么使用热窗口有利于查询性能。
本文档演示如何使用热窗口来查询冷数据。
先决条件
- 如果还没有 Azure 订阅,可以在开始前创建一个 Azure 帐户。
- 创建 Azure 数据资源管理器群集和数据库。
- 使用 Azure 数据资源管理器数据引入概述中描述的其中一种方法将数据引入群集。
在群集上配置自动缩放
更改缓存策略后,群集会自动在其磁盘上缓存相关数据。 需要缩放群集,以纳入新缓存定义所需的额外磁盘。 建议将群集配置为使用优化自动缩放设置。
在 Azure 门户中,转到 Azure 数据资源管理器群集资源。 在“设置”下选择“横向扩展”。
在“横向扩展”窗口中,选择“优化的自动缩放” 。
选择最小实例计数和最大实例计数。 群集自动缩放的范围介于这两个数字之间,具体取决于负载。
选择“保存” 。
现在,你可在热窗口使用期间获得最佳性能。
设置热窗口
热窗口是缓存策略命令语法的一部分,设置有 .alter policy caching
命令。
注意
根据更新的缓存策略定义,最多可能需要一小时才能完全更新群集磁盘缓存。
使用
.show policy caching
命令记下初始缓存策略。.show table MyDatabase.MyTable policy caching
使用以下语法更改缓存策略。 可以针对单个数据库或表定义多个热窗口。
.alter <entity_type> <database_or_table_or_materialized-view_name> policy caching hot = <timespan> [, hot_window = datetime(*from*) .. datetime(*to*)] [, hot_window = datetime(*from*) .. datetime(*to*)] ...
其中:
from
:热窗口的开始时间(日期/时间)to
:热窗口的结束时间(日期/时间)
例如,在以下设置下运行的查询将在保留 3 年的数据中检查过去 14 天的数据。
.alter table MyTable policy caching hot = 14d, hot_window = datetime(2021-01-01) .. datetime(2021-02-01), hot_window = datetime(2021-04-01) .. datetime(2021-05-01)
运行查询
将所需一个或多个查询运行在热窗口中指定的时长。
还原设置
- 使用上面在设置热窗口中检索到的原始缓存设置。
- 使用
.alter policy caching
命令将缓存策略还原为原始设置。
你为该群集配置了优化的自动缩放,因此该群集将缩小到其原始大小。