GBase 8s 内置不透明数据类型BSON和JSON

BSON和JSON数据类型是GBase 8s内置的不透明类型,可以在本地和分布式查询以及其它DML操作中访问和操作它们。如果您计划通过wire listener查询BSON或者JSON数据,则必须通过wire listener创建数据库对象,例如集合和索引。无论您通过wire listener还是SQL语句创建的数据库对象,均可以通过SQL语句查询JSON或者BSON数据。
JSON和BSON文档包含一个或者多个类似于列的字段和字段值。一个JSON或者BSON列可以包含多个文档,每个文档类似于关系数据库中的一行。JSON和BSON文档中的数据可能是数字、字符串或者布尔氏值。文档可以嵌套在文档中。
数据库服务器验证您插入到数据库中的JSON或都BSON文档。JSON数据类型包含纯文件。BSON数据类型是JSON数据类型的二进制格式。您可以创建JSON或者BSON数据类型列,但是BSON数据类型更适合在数据库中存储结构化数据。数据库服务器可以操作BSON列中的数据,但只能插入和显示JSON列中的数据。
800字节以内的JSON或者BSON文档将存储于行内,大于800字节的文档将存储于sbspace空间内。一个JSON或者BSON文档的最大大小是32KB。JSON或者BSON的列数量仅受操作系统的限制。

支持BSON和JSON数据类型的SQL操作

下表列出了DDL对BSON和JSON数据类型操作支持

操作 支持BSON数据类型 支持JSON数据类型
创建具有该数据类型的一个或者多个列的表或者临时表 Yes Yes
修改表增加该数据类型的列 Yes Yes
删除该数据类型的列 Yes Yes
在该数据类型的列上创建B树索引 No No
在该数据类型的列上创建函数索引 Yes No
在该数据类型的列上创建BTS全文索引 Yes Yes
Truncate具有该数据类型的列的表 Yes Yes
根据该数据类型的值进行表分片 Yes Yes
根据该数据类型的列和值创建视图 Yes No
压缩该数据类型列的数据 Yes Yes
数据类型转换 Yes Yes
在该数据类型的字段上创建触发器 Yes No
在TimeSeries行数据列中包含该字段类型 Yes No

下表列出了DML对BSON和JSON数据类型操作支持

操作 支持BSON数据类型 支持JSON数据类型
数据类型转换 Yes Yes
使用游标读取数据 Yes Yes
查询该数据类型中的数据 Yes Yes
使用点符号或者BSON处理函数 Yes No
Update操作数据类型 Yes No
Insert操作数据类型 Yes Yes
查找字段值的大小 Yes No
统计更新(update statistics) Yes Yes
基于该数据类型字段的Merge操作 Yes No
基于该数据类型字段的Join操作 Yes No
load/unload语句,外部表,onload/onunload实用程序,dbschema/dbexport/dbimport实用程序 Yes Yes
复制数据至RSS服务器 Yes No
在ER之间复制数据 Yes No

BSON和JSON数据类型的限制

以下操作不支持BSON和JSON数据类型:

  • BSON或者JSON字段不支持加密
  • 具有BSON或者JSON字段的表不支持表级恢复
  • CDC

猜你喜欢

转载自blog.csdn.net/liaosnet/article/details/106928174
今日推荐