SequoiaDB巨杉数据库_SequoiaDB
SequoiaDB巨杉数据库_下载

文档

快速入门

安装

基本操作

数据模型

SQL引擎

FileSystem引擎

系统架构

数据库管理

连接器

驱动

参考手册

故障排除

SAC

Web服务

版本信息

帮助

  • 内容
  • 评论
  • 修订记录

大对象

概念

大对象(LOB)功能旨在突破 SequoiaDB 的单条记录最大长度为 16MB 的限制,为用户写入和读取更大型记录提供便利。LOB 记录的大小目前不受限制。

每一个 LOB 记录拥有一个 OID,通过指定集合及 OID 可以访问一条 LOB 记录。在非分区集合及哈希分区集合中均可使用 LOB 功能。集合间不共享 LOB 记录。当一个集合被删除时,其拥有的 LOB 记录自动删除。

LOB 记录的存储格式:

LOB的记录格式

每个 LOB 记录包含若干个分片。分片所占空间大小均为 LobPageSize(创建集合空间时指定,默认为 256 KB,请参考 Sdb.createCS())。在哈希分区中,LOB 记录的每一个分片会被按照 OID 加分片序号分散存储在相应的分区组中。其哈希空间与所属集合的哈希空间相同。

目前 LOB 的存储格式为二进制类型。

功能

支持LOB的顺序读写和随机读写,支持LOB的打开读操作和打开写操作,支持并发读和并发写。

  • 在创建LOB时,LOB对象不可读,也不可删除。
  • 在打开读LOB时,LOB对象不可写,也不可删除,可以并发读。
  • 在打开写LOB时,LOB对象不可读,也不可删除,可以并发写。并发写时需要按写入的数据段加锁并seek到加锁的数据段后写入数据,可以覆盖原有数据写入。并发锁定的数据段不能重叠。可查看各驱动API的lock和lockAndSeek接口。
  • 在删除LOB时,LOB对象不可读写。

SequoiaDB Shell支持的操作

操作 参见 备注
创建 SdbCollection.putLob() 向集合中创建一个 LOB 记录。LOB 记录一旦创建完毕,其内容无法再做更改。
读取 SdbCollection.getLob() 从集合中读取某个 LOB 记录。驱动中提供对 LOB 记录的 seek 操作。
删除 SdbCollection.deleteLob() 删除集合中的某个 LOB 对象。
列表 SdbCollection.listLobs() 列出集合中所有 LOB 对象。

示例

在 Sdb Shell 中将本地文件 mylob 上传至集合 foo.bar 中:

> db.foo.bar.putLob( '/opt/mylob' )

在 Sdb Shell 中查看 LOB 记录及对应的 OID:

> db.foo.bar.listLobs()
{
  "Size": 76602,
  "Oid": {
    "$oid": "5435e7b69487faa663000897"
  },
  "CreateTime": {
    "$timestamp": "2018-02-26-12.51.43.628000"
  },
  "Available": true
}

在 Sdb Shell 中将集合 foo.bar 中的 OID 为 5435e7b69487faa663000897 的LOB 记录下载到本地文件 mylob 中:

> db.foo.bar.getLob( '5435e7b69487faa663000897', '/opt/mylob' )

在 Sdb Shell 中将集合 foo.bar 中的 OID 为 5435e7b69487faa663000897 的 LOB 记录删除:

> db.foo.bar.deleteLob( '5435e7b69487faa663000897' )
请登陆后再发表评论
最新评论
更新日志
  • 2018-05-10
    v3.0
回到顶部
公司简介
广州巨杉软件专注新一代大数据技术研发,是国内新一代原厂金融级分布式数据库公司。
2017年巨杉数据库成为首批入选Gartner年度数据库报告的中国数据库产品。
巨杉坚持产品从零开始自主研发,为用户提供安全可靠、性能卓越的海量数据存储管理、高并发实时处理、分布式计算以及实时流处理等企业级数据处理解决方案。
目前在金融、政府、电信多个行业得到了广泛应用,并在超过30家大中型银行的核心生产系统应用。
粤ICP备13048785号     广州巨杉软件开发有限公司 版权所有