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

  BSON和JSON数据类型是GBase 8s内置的不透明类型(opaque data type),可以在本地和分布式查询以及其它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数据类型
创建具有该数据类型的一个或者多个列的表或者临时表YesYes
修改表增加该数据类型的列YesYes
删除该数据类型的列YesYes
在该数据类型的列上创建B树索引NoNo
在该数据类型的列上创建函数索引YesNo
在该数据类型的列上创建BTS全文索引YesYes
Truncate具有该数据类型的列的表YesYes
根据该数据类型的值进行表分片YesYes
根据该数据类型的列和值创建视图YesNo
压缩该数据类型列的数据YesYes
数据类型转换YesYes
在该数据类型的字段上创建触发器YesNo
在TimeSeries行数据列中包含该字段类型YesNo

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

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

BSON和JSON数据类型的限制

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

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

标签: 不透明数据类型, opaque, opaque data type, json

添加新评论