使用热窗口查询冷数据

使用热窗口,你可以有效地查询冷数据,而无需导出数据或使用其他工具。 当冷数据量较大且相关数据来自过去任何时间时,可使用热窗口。 热窗口是在缓存策略中定义的。

Azure 数据资源管理器将数据存储在可靠的长期存储中,并将此数据的一部分缓存在群集节点上。 缓存策略控制缓存哪些数据。 缓存的数据被视为热数据,而其余数据则被视为冷数据 。

若要查询冷数据,Azure 数据资源管理器会处理一个加载步骤,它要求访问延迟比本地磁盘高得多的存储层。 当查询限制于一个小的时间窗口时,通常称为“时间点”查询,要检索的数据量通常很小,查询将很快完成。 例如,查询过去某一天的遥测数据的取证分析就属于这一类。 对查询持续时间的影响取决于从存储中拉取的数据的大小,并且影响可能会很大。 如果要扫描大量的冷数据,那么使用热窗口有利于查询性能。

本文档演示如何使用热窗口来查询冷数据。

先决条件

在群集上配置自动缩放

更改缓存策略后,群集会自动在其磁盘上缓存相关数据。 需要缩放群集,以纳入新缓存定义所需的额外磁盘。 建议将群集配置为使用优化自动缩放设置。

  1. 在 Azure 门户中,转到 Azure 数据资源管理器群集资源。 在“设置”下选择“横向扩展”。

  2. 在“横向扩展”窗口中,选择“优化的自动缩放” 。

  3. 选择最小实例计数和最大实例计数。 群集自动缩放的范围介于这两个数字之间,具体取决于负载。

  4. 选择“保存” 。

    优化的自动缩放方法。

现在,你可在热窗口使用期间获得最佳性能。

设置热窗口

热窗口是缓存策略命令语法的一部分,设置有 .alter policy caching 命令

注意

根据更新的缓存策略定义,最多可能需要一小时才能完全更新群集磁盘缓存。

  1. 使用 .show policy caching 命令记下初始缓存策略。

    .show table MyDatabase.MyTable policy caching 
    
  2. 使用以下语法更改缓存策略。 可以针对单个数据库或表定义多个热窗口。

    .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)
    

运行查询

将所需一个或多个查询运行在热窗口中指定的时长。

还原设置

  1. 使用上面在设置热窗口中检索到的原始缓存设置。
  2. 使用 .alter policy caching 命令将缓存策略还原为原始设置。

你为该群集配置了优化的自动缩放,因此该群集将缩小到其原始大小。