SequoiaDB数据水平分区简介
2015-04-10 10:58
155 查看
1. 数据水平分区简介
在SequoiaDB中,默认情况下,表(集合)的数据只会存储在一个复制组中。这样,对该表的CRUD操作只会落到一个复制组中。
随着对表的IO请求上升/数据量的增加,就会造成性能瓶颈,导致访问时延增加。为了解决这个问题,便引入了水平分区的功能。
水平分区可以将表(集合)切分成若干分区,并将分区指定到不同的复制组中。示意图如下:
![](http://www.sequoiadb.com/cn/document/1.12/administration/concepts/cluster/images/sh3.jpg)
上图中,将集合2切分成N个分区, 每个分区可以指定到不同的复制组。这样,当查询数据时,就会根据条件将请求发给不同的复制组,提升查询性能。
2. 如何使用水平切分
假设前提场景:
已经安装了集群模式的SequoiaDB,并且创建了两个复制组db1, db2.
执行SequoiaDB shell工具sdb,并连接上协调节点
a、修改表属性,设置分区键
b、设置了分区键之后,就可以将表按分区键做切分
c、验证设置成功与否
这样当访问a在(无穷小, 100)范围的数据时,就只会访问复制组db1,
当访问a在[100, 无穷大)范围的数据时, 只会访问复制组db2。这样可以使请求分流,并解决表数据量过大的问题。
在SequoiaDB中,默认情况下,表(集合)的数据只会存储在一个复制组中。这样,对该表的CRUD操作只会落到一个复制组中。
随着对表的IO请求上升/数据量的增加,就会造成性能瓶颈,导致访问时延增加。为了解决这个问题,便引入了水平分区的功能。
水平分区可以将表(集合)切分成若干分区,并将分区指定到不同的复制组中。示意图如下:
![](http://www.sequoiadb.com/cn/document/1.12/administration/concepts/cluster/images/sh3.jpg)
上图中,将集合2切分成N个分区, 每个分区可以指定到不同的复制组。这样,当查询数据时,就会根据条件将请求发给不同的复制组,提升查询性能。
2. 如何使用水平切分
假设前提场景:
已经安装了集群模式的SequoiaDB,并且创建了两个复制组db1, db2.
执行SequoiaDB shell工具sdb,并连接上协调节点
./sdb >db = new Sdb('localhost', 11810) //连接本地的协调节点 >db.createCS('cs').createCL('cl', {Group:'db1'}) //创建表cs.cl,并将表数据指定在复制组db1上
a、修改表属性,设置分区键
>db.cs.cl.alter((ShardingKey:{a:1}}) //指定表中名为a的字段作为分区键, {a:1}其中1表示升序
b、设置了分区键之后,就可以将表按分区键做切分
>db.cs.cl.split('db1', 'db2', {a:100}) //将表中a在范围[100, 无穷大)的数据从db1中切分到db2中
c、验证设置成功与否
>db.snapshot(8, {Name:"cs.cl"}) //获取表cs.cl的快照信息 { "CataInfo": [ { "ID": 0, "GroupID": 1000, "GroupName": "db1" "LowBound": { "a": { "$minKey": 1 } }, "UpBound": { "a": 100 } }, { "ID": 1, "GroupID": 1001, "GroupName": "db2" "LowBound": { "a": 100 }, "UpBound": { "a": { "$maxKey": 1 } } } ] "EnsureShardingIndex": true, "_id": { "$oid": "55272fa4d9150b7ff15a6ddc" }, "Name": "cs.cl", "Version": 3, }
这样当访问a在(无穷小, 100)范围的数据时,就只会访问复制组db1,
当访问a在[100, 无穷大)范围的数据时, 只会访问复制组db2。这样可以使请求分流,并解决表数据量过大的问题。
相关文章推荐
- redis基础简介(五)- 数据备份与恢复、数据安全、性能测试、客户端连接、分区
- SequoiaDB的数据分区操作
- SequoiaDB的数据分区操作
- 逻辑数据中心设计器简介 — 第一部分
- 大型数据库数据采集方法简介(1)
- P2P数据管理简介-1
- 服务数据对象简介(Java 环境中的下一代数据编程)
- 新数据网格简介
- ASP.NET 2.0数据缓存功能简介(原作)
- 数据挖掘技术简介(入门资料再弱弱的提几个问题)
- 隧道广告系统数据下载相关技术简介
- windows api中定义的基本数据类型简介
- 数据挖掘技术简介[转]
- 网络数据采集分析工具TcpDump的简介
- 新数据网格简介
- 保留数据,将windows分区由Fat32转成NTFS
- ASP.NET 2.0数据缓存功能简介
- 新数据网格DataGridView简介(转自MSDN)
- 逻辑数据中心设计器简介 — 第二部分
- 运用asp2.0创建和使用三层数据架构(C#)--【第一篇:简介之建立数据访问层】