合并策略

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

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

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

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

注意

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

合并策略属性

合并策略包含以下属性:

  • RowCountUpperBoundForMerge
    • 默认为 16,000,000。
    • 合并盘区允许的最大行数。
    • 适用于合并操作,不适用于重新生成。
  • OriginalSizeMBUpperBoundForMerge
    • 默认为 30,000。
    • 合并盘区允许的最大原始大小 (MB)。
    • 适用于合并操作,不适用于重新生成。
  • MaxExtentsToMerge
    • 默认为 100。
    • 允许在单个操作中合并的最大盘区数量。
    • 适用于合并操作。
    • 此值不应更改。
  • LoopPeriod
    • 默认为 01:00:00(1 小时)。
    • 数据管理服务在开始合并或重新生成操作的两次连续迭代之间等待的最长时间。
    • 适用于合并和重新生成操作。
    • 此值不应更改。
  • 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 是一个时间跨度值。

默认策略示例

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

{
  "RowCountUpperBoundForMerge": 16000000,
  "OriginalSizeMBUpperBoundForMerge": 30000,
  "MaxExtentsToMerge": 100,
  "LoopPeriod": "01:00:00",
  "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

警告

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

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

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