SequoiaDB 简介
安装部署
数据库实例
分布式引擎
SAC 管控中心
参考手册
常见问题及解答(FAQ)
版本信息
splitAsync - 异步切分数据记录
db.collectionspace.collection.splitAsync(<source group>, <target group>, <percent>)
db.collectionspace.collection.splitAsync(<source group>, <target group>, <condition>, [endcondition])
SdbCollection
该函数用于将源分区组中的数据记录,按指定条件异步切分到目标分区组中。源分区组与目标分区组必须属于同一个域。
db.collectionspace.collection.splitAsync(<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.splitAsync(<source group>, <target group>, <percent>)
参数名 | 类型 | 描述 | 是否必填 |
---|---|---|---|
source group | string | 源分区组 | 是 |
target group | string | 目标分区组 | 是 |
percent | double | 百分比切分条件,取值:(0, 100] | 是 |
Note:
- Range 分区需要保证源分区组中含有数据,即集合不为空。
- 百分比不能为 0。
函数执行成功时,将返回一个 Number 类型的对象。通过该对象获取返回的任务 ID,用户可使用任务 ID 对任务进行相关操作。
函数执行失败时,将抛异常并输出错误信息。
当异常抛出时,可以通过 getLastErrMsg() 获取错误信息或通过 getLastError() 获取错误码。更多错误处理可以参考常见错误处理指南。
v2.0 及以上版本
Hash 分区范围切分
> db.sample.employee.splitAsync("group1", "group2", {Partition: 10}, {Partition: 20}) 3
Range 分区范围切分
> db.sample.employee.splitAsync("group1", "group2", {a: 10}, {a: 10000}) 2
百分比切分
> db.sample.employee.splitAsync("group1", "group2", 50) 5