SequoiaDB巨杉数据库数据域数据分区操作实例

为了进一步帮助用户更好地理解和使用数据分区,本文档通过以下操作实例进行解释说明。以下实例均使用 shell 工具进行操作。

数据库分区

使用范围分区方式做数据库分区

在集合 sample.employee 中,将 create_date 字段范围在 [201801, 201901) 中的数据切分到复制组 group2 上,其它数据切分到复制组 group1 上。

创建集合 sample.employee ,分区键为 create_date 字段,分区方式为 range,集合所在复制组为 group1:

> db.createCS( "sample" )
> db.sample.createCL( "employee", { ShardingKey: { create_date: 1 }, ShardingType: "range", Group: "group1" } )

执行切分操作,将集合 sample.employee 中,字段 create_date 的数据范围在 [201801, 201901) 的记录,从复制组 group1 切分到复制组 group2 中:

> db.sample.employee.split( "group1", "group2", { create_date: "201801"}, { create_date: "201901"} )
  • 通过集合 sample.employee 插入 2018 年范围内的记录就会写到复制组 group2 上,插入其它年份的记录就会写到复制组 group1 上

使用散列分区方式做数据库分区

集合 sample.employee2 中,以记录 id 字段为分区键做散列分区,将 hash 值范围在 [2048, 4096) 的数据切分到复制组 group2 上,其它数据切分到复制组 group1 上:

创建集合 sample.employee2 ,分区键为 id 字段,分区方式为 hash ,hash 值总数为 4096 个, 集合所在复制组为 group1:

> db.sample.createCL( "employee2", { ShardingKey: { id: 1 }, ShardingType: "hash", Partition: 4096, Group: "group1" } )

执行切分命令,将集合 sample.employee2 中,字段 id 的 hash 值范围在 [2048, 4096) 的记录,从复制组 group1 切分到复制组 group2 中:

> db.sample.employee2.split( "group1", "group2", { Partition: 2048 }, { Partition: 4096 } )

表分区

使用范围分区方式做表分区

集合 maincs.maincl 中,将 create_date 字段范围在 [201801, 201901) 中的数据映射到集合 bill.year2018,范围在 [201901, 202001) 中的数据映射到集合 bill.year2019

创建主集合 maincs.maincl ,分区键为 create_date ,分区方式为 range:

> db.createCS( "maincs" )
> db.maincs.createCL( "maincl", { IsMainCL: true, ShardingKey: { create_date: 1 }, ShardingType: "range" } )

创建子集合 bill.year2018 ,bill.year2019

> db.createCS( "bill" )
> db.bill.createCL( "year2018" )
> db.bill.createCL( "year2019" )

通过挂载操作,将主集合 maincs.maincl 和两个子集合进行关联:

db.maincs.maincl.attachCL( "bill.year2018", { LowBound: { create_date: "201801" }, UpBound: { create_date: "201901" } } )
db.maincs.maincl.attachCL( "bill.year2019", { LowBound: { create_date: "201901" }, UpBound: { create_date: "202001" } } )

通过主集合 maincs.maincl 插入 2018 年范围内的记录就会写到子集合 bill.year2018 上,插入 2019 年范围内的记录就会写到子集合 bill.year2019 上。

 

相关阅读

SequoiaDB巨杉数据库数据域

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值