你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

盘区(数据分片)

表被分区为 盘区数据分片。 每个盘区都是表的一个水平段,其中包含数据和元数据,例如其创建时间和可选标记。 所有这些盘区的并集包含表的整个数据集。 盘区均匀分布在群集中的节点之间,并缓存在本地 SSD 和内存中以优化性能。

盘区是不可变的,这意味着可以查询它们、重新分配到其他节点或从表中删除,但永远不会修改。 数据修改通过创建新盘区以及事务性地交换旧盘区与新盘区进行。 盘区的不可变性提供了一些好处,例如可靠性更高且易于重新转换到以前的快照。

盘区保存一组以物理方式排列在列中的记录,从而实现对数据的高效编码和压缩。 为了保持查询效率,根据配置的 合并策略分片策略将较小的盘区合并到较大的盘区。 合并盘区可以减少管理开销,并导致索引优化和改进压缩。

公共盘区生命周期如下所示:

  1. 盘区由“引入”操作创建。
  2. 盘区与其他盘区合并。
  3. 合并的盘区 (可能跟踪其世系到其他盘区,) 最终由于 保留策略而被删除。

盘区创建时间

每个范围跟踪两个 日期/时间 值: MinCreatedOnMaxCreatedOn。 这些值最初相同,但当盘区与其他盘区合并时可能会更改。 如果该盘区与其他盘区合并,则新值将与合并盘区的原始最小值和最大值保持一致。

盘区的创建时间用于以下目的:

  • 保留期:之前创建的盘区会提前删除。
  • 缓存:最近创建的盘区保存在 热缓存中。
  • 采样:使用查询操作(如 take)时,首选最近盘区。

若要覆盖某个盘区的创建时间,请在数据引入属性中提供备用creationTime。 这对于保留目的非常有用,例如,如果想要重新引入数据,但不希望数据看起来像迟到时一样。

注意

基于时间删除盘区的计算使用合并盘区中最新盘区的创建时间。