为什么具有相同分区元数据的范围未在 Azure 数据资源管理器中合并

问题描述 投票:0回答:1

我正在使用基于字符串(散列)和基于时间(统一)的分区策略来优化数据库。为了优化查询性能,我正在研究哈希分区键的设置“MaxPartitionCount”(https://learn.microsoft.com/en-us/azure/data-explorer/kusto/management/partitioningpolicy)。

当选择 128 个 bin 的默认设置时,我最终得到每个统一范围日期时间分区 128*2 的范围。我预计每个统一范围数据时间分区只能获得 128 个范围,因为具有相同分区元数据的每对范围都满足合并和分片策略设置的合并条件。有什么建议为什么会出现这种情况吗?

我只使用统一范围分区策略和数据集的一小部分的最小示例:

分区策略:

  "EffectiveDateTime" : "1970-01-01T00:00:00",
  "PartitionKeys": [
    {
      "ColumnName": "timestamp",
      "Kind": "UniformRange",
      "Properties": {
        "Reference": "1970-01-01T00:00:00",
        "RangeSize": "01.00:00:00",
        "OverrideCreationTime": true
      }
    }

在这种情况下,我每天获得两个范围,如下面的数字所示,其中大小以字节为单位。

原始尺寸 范围大小 压缩大小 行数 最大创建时间 B 栏
87058761 8022944 7932142 838350 2023-10-26T23:52:30Z 2023-10-26T07:10:00Z
720604715 60644931 59245697 6920424 2023-10-26T23:59:50Z 2023-10-26T00:00:00Z

将数字与下面显示的合并策略进行比较,我不明白为什么这两个范围不合并?

  "RowCountUpperBoundForMerge": 16000000,
  "OriginalSizeMBUpperBoundForMerge": 30000,
  "MaxExtentsToMerge": 100,
  "LoopPeriod": "01:00:00",
  "MaxRangeInHours": 48,
  "AllowRebuild": true,
  "AllowMerge": true,
  "Lookback": {
    "Kind": "All",
    "CustomPeriod": null
  },
  "ShardEngineMaxExtentSizeInMb": 8192,
merge partitioning azure-data-explorer
1个回答
0
投票

两个分片是否可以合并在一起的限制部分由记录的策略控制(例如分片合并),但是还有其他一些系统内部的限制,没有记录也没有合同。

但是,可以肯定的是,分片位于同一分区中并与分片和合并策略中的值对齐是不够的,并且不是唯一的约束(正如您的问题暗示您的期望是)。

© www.soinside.com 2019 - 2024. All rights reserved.