文档中心
v3.4

SequoiaDB 简介

安装部署

数据库实例

分布式引擎

SAC 管控中心

参考手册

常见问题及解答(FAQ)

版本信息

split()

名称

split - 切分数据记录

语法

db.collectionspace.collection.split(<source group>, <target group>, <percent>)

db.collectionspace.collection.split(<source group>, <target group>, <condition>, [endcondition])

类别

SdbCollection

描述

该函数用于将源分区组中的数据记录,按指定条件切分到目标分区组中。源分区组与目标分区组必须属于同一个域。

参数

范围切分

db.collectionspace.collection.split(<source group>, <target group>, <condition>, [endcondition])

参数名 类型 描述 是否必填
source group string 源分区组
target group string 目标分区组
condition object 范围切分条件
endcondition object 结束范围条件 可选

Note:

  • Range 分区使用精确条件,而 Hash 分区使用 Partition(分区数)条件。结束条件不选时默认为切分源当前包含的最大数据范围。
  • 如果指定分区键字段为降序时,如:{groupingKey: {<字段1>: < -1>},condition(或 Partition)中的起始条件中的范围应该大于终止条件中的范围。Hash 分区使用的 Partition(分区数)必须为整型,不能为其他的类型。

百分比切分

db.collectionspace.collection.split(<source group>, <target group>, <percent>)

参数名 类型 描述 是否必填
source group string 源分区组
target group string 目标分区组
percent double 百分比切分条件,取值:(0, 100]

Note:

  • Range 分区需要保证源分区组中含有数据,即集合不为空。
  • 百分比不能为 0。

返回值

函数执行成功时,无返回值。

函数执行失败时,将抛异常并输出错误信息。

错误

当异常抛出时,可以通过 getLastErrMsg() 获取错误信息或通过 getLastError() 获取错误码。更多错误处理可以参考常见错误处理指南

版本

v2.0 及以上版本

示例

  • Hash 分区范围切分

    > db.sample.employee.split("group1", "group2", {Partition: 10}, {Partition: 20})
  • Range 分区范围切分

    > db.sample.employee.split("group1", "group2", {a: 10}, {a: 10000})
  • 百分比切分

    > db.sample.employee.split("group1", "group2", 50) 
回到顶部