合并策略

适用于:✅Azure 数据资源管理器

合并策略定义是否以及如何合并盘区(数据分片)

合并操作有两种类型:Merge,此操作会重新生成索引;以及 Rebuild,此操作会完全重新引入数据。

这两种操作类型都会生成单个盘区来替换源盘区。

默认情况下,首选 Rebuild 操作。 如果某些盘区不符合进行重新生成的条件,则将尝试合并它们。

注意

  • 即使已设置合并策略,使用不同的 drop-by 标记来标记盘区也将导致此类盘区无法进行合并。 有关详细信息,请参阅盘区标记
  • 不会合并标记并集超过一百万个字符长度的盘区。
  • 数据库或表的分片策略也会对盘区合并的方式产生一定的影响。

合并策略属性

合并策略包含以下属性:

  • RowCountUpperBoundForMerge
    • 默认为 16,000,000。
    • 合并盘区允许的最大行数。
    • 适用于合并操作,不适用于重新生成。
  • OriginalSizeMBUpperBoundForMerge
    • 默认为 30,000。
    • 合并盘区允许的最大原始大小 (MB)。
    • 适用于合并操作,不适用于重新生成。
  • MaxExtentsToMerge
    • 默认为 100。
    • 允许在单个操作中合并的最大盘区数量。
    • 适用于合并操作。
    • 此值不应更改。
  • AllowRebuild
    • 默认为“true”。
    • 定义是否已启用 Rebuild 操作(在这种情况下,其优先级高于 Merge 操作)。
  • AllowMerge
    • 默认为“true”。
    • 定义是否已启用 Merge 操作,在这种情况下,其优先级低于 Rebuild 操作。
  • MaxRangeInHours
    • 默认为 24。
    • 最大允许的任意两个不同盘区的创建时间之间的差异(以小时为单位),如超过,将无法进行合并。
    • 时间戳源于盘区创建,且不与盘区中包含的实际数据相关。
    • 适用于合并和重新生成操作。
    • 具体化视图中:默认为 336(14 天),除非在具体化视图的有效保留策略中禁用了可恢复性。
    • 应根据有效的保留策略“SoftDeletePeriod”或缓存策略“DataHotSpan”值来设置此值。 取 SoftDeletePeriod 和 DataHotSpan 中的较低值 。 将 MaxRangeInHours 值设置为在其 2-3% 之间。 请参阅示例
  • Lookback
    • 定义考虑重新生成/合并盘区的时间跨度。
    • 支持的值:
      • Default - 系统管理的默认值。 这是建议的默认值,其期间当前设置为 14 天。
      • All - 包括所有盘区(热和冷)。
      • HotCache - 仅包含热盘区。
      • Custom - 只包括使用年限低于所提供的 CustomPeriod 的盘区。 CustomPeriod 是格式为 dd.hh:mm 的 timespan 值。

默认策略示例

以下示例演示了默认策略:

{
  "RowCountUpperBoundForMerge": 16000000,
  "OriginalSizeMBUpperBoundForMerge": 30000,
  "MaxExtentsToMerge": 100,,
  "MaxRangeInHours": 24,
  "AllowRebuild": true,
  "AllowMerge": true,
  "Lookback": {
    "Kind": "Default",
    "CustomPeriod": null
  }
}

MaxRangeInHours 示例

最小 [SoftDeletePeriod(保留策略),DataHotSpan(缓存策略)] 最大范围(合并策略)(以小时为单位)
7 天(168 小时) 4
14 天(336 小时) 8
30 天(720 小时) 18
60 天(1,440 小时) 36
90 天(2,160 小时) 60
180 天(4,320 小时) 120
365 天(8,760 小时) 250

警告

更改盘区合并策略前,请咨询支持团队。

创建数据库时,将使用上面提到的默认合并策略值设置该数据库。 默认情况下,在数据库中创建的所有表都将继承该策略,除非其策略在表级别被显式替代。

有关详细信息,请参阅可用于管理数据库或表合并策略的管理命令