快速入门
安装
基本操作
数据模型
SQL引擎
系统架构
数据库管理
连接器
驱动
参考手册
故障排除
SAC
版本信息
db.collectionspace.collection.split(<source group>,<target group>,<percent(0~100)|condition>, [endcondition])
在至少存在两个分区组的环境下,将数据记录按指定的条件切分到不同的分区组中。该操作为同步操作,直到数据切分完成才返回。
参数名 | 参数类型 | 描述 | 是否必填 |
---|---|---|---|
source group | string | 源分区组。 | 是 |
target group | string | 目标分区组。 | 是 |
percent(0~100] | double | 百分比切分条件。 | percent 和 condition 二选一 |
condition | Json 对象 | 范围切分条件。 | condition 和 percent 二选一 |
endcondition | Json 对象 | 结束范围条件。 | 可选,且只在按条件切分时有效,按百分比切分时无效 |
Note:
范围切分
1、Range 分区使用精确条件,而 Hash 分区使用 Partition(分区数)条件。结束条件不选时默认为切分源当前包含的最大数据范围。
2、如果指定分区键字段为降序时,如:{groupingKey:{<字段1>:<-1>},condition(或 Partition)中的起始条件中的范围应该大于终止条件中的范围。Hash 分区使用的 Partition(分区数)必须为整形,不能为其他的类型。
百分比切分
百分比切分时,需要注意:
1、Range分区需要保证源分区组中含有数据,即集合不为空;
2、百分比不能为0。
无返回值,出错抛异常,并输出错误信息,可以通过getLastErrMsg()获取错误信息或通过getLastError()获取错误信息码。
Hash 分区范围切分
> db.foo.bar.split( "group1", "group2", { Partition: 10 }, { Partition: 20 } )
Range 分区范围切分
> db.foo.bar.split( "group1", "group2", { a: 10 }, { a: 10000 } )
百分比切分
> db.foo.bar.split( "group1", "group2", 50 )