GBase 8s中的普通表可以通过两种方式转换成分片表:通过init初始化为分片表;通过attach加入新建的分片表。
以下面的测试表t1为例:
create table t1(col1 int, col2 datetime year to second, col3 varchar(128)) in datadbs01;
create index ix_t1_col1 on t1(col1);
以下将以col2字段按月进行表分片。
GBase 8s中的普通表可以通过两种方式转换成分片表:通过init初始化为分片表;通过attach加入新建的分片表。
以下面的测试表t1为例:
create table t1(col1 int, col2 datetime year to second, col3 varchar(128)) in datadbs01;
create index ix_t1_col1 on t1(col1);
以下将以col2字段按月进行表分片。
存储加密一种数据库安全技术, 在数据库主程序启动时加载扩展插件,可以实现:
(1)在数据写入存储介质前将数据进行加密,实现数据的存储加密;
(2)在从存储介质加载数据到内存前进行数据解密,实现数据的解密使用。
GBase 8s使用存储加密必须要数据库初始化之前完成数据库参数及存储加密参数的配置。
本文基于数据库版本为GBase 8s V8.7 2.0.1a2_2,操作系统为CentOS 7.8编写。
数据传输加密是指在网络中传输的数据需要加密传输,从而确保数据的机密性和完整性。
针对网络中传输的数据进行加密,焦点就在连接上。对于GBase 8s体系下,总共有如下连接场景需要进行数据传输加密:
1) 客户端连接数据库服务端,包含:csdk或jdbc连接GBase 8s。
2) 客户端连接到连接管理器,包含:csdk或jdbc连接连接管理器。无论连接管理器选择代理,还是重定向,客户端都会建立到连接管理器的连接。
3) 连接管理器连接数据库服务端。
4) 数据库服务端连接数据库服务端。对于高可用环境,数据库服务端之间是存在连接的。
对于连接而言,数据库服务端和连接管理器都存在组的概念。客户端可以选择连接数据库服务端的组或者连接管理器的组。经过调研,真正的连接不是建立在组上的。客户端代码,会根据sqlhosts的配置,在连接前选择合适数据库服务端或连接管理器进行连接。根据这个情况,对于组的连接不需要专门讨论。
本文基于数据库版本为GBase 8s V8.7 2.0.1a2_2,操作系统为CentOS 7.8编写。
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的列数量仅受操作系统的限制。
创建存储过程时第4行报282错误,该错误的原是说引号不匹配。创建的存储过程语句如下:
drop procedure if exists proc1;
create procedure proc1(out p_cursor sys_refcursor)
define v_sqlstr lvarchar(1024);
let v_sqlstr = "select tabid,tabname
from systables
where tabid > 99
and tabtype = 'T'";
open p_cursor for v_sqlstr;
end procedure;
1,Docker服务已经创建
2,足够的空间(GBase 8s For Docker最少需要2G的空间及1G以上的内存)
[root@localhost ~]# docker search gbase8s
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
liaosnet/gbase8s GBase8sV8.7_2.0.1a2_2 1
时间序列数据类型(TimeSeries data type)
元素(Element)
包装元素(Packed Element)
时间点(Time point)
起点(Origin):
时间序列实例(TimeSeries Instance)
日历(Calendar)
日历模式(Calendar pattern)
容器(Container)
规则性(Regularity)
虚表(Virtual table)
用ON EXCEPTION 语句捕获一个或一组特定的异常(即错误),用错误号 标识。
ON EXCEPTION 语句与RAISE EXCEPTION 语句一起 提供存储过程语言(SPL)的错误 捕获和恢复机制。
在一个语句块内可以定义多个 ON EXCEPTION 语句。
被捕获的异常可以是系统异常或用户定义的异常。
一旦异常被捕获, 错误状态即被清除。
在前面的章节我们已经了解到GBase 8s可以通过 LIKE ...% 来进行模糊匹配。
GBase 8s 同样也支持其他正则表达式的匹配, GBase 8s中使用 REGEXP_LIKE 操作符来进行正则表达式匹配。
GBase 8s的正则表达式匹配与PHP、Perl这些脚本的类似。
注:在2.0.1a2_2和3.0.0_1版本中,该功能默认并未开放使用,需要手动开启。
在数据库中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。
WHERE 子句中可以使用等号 = 来设定获取数据的条件,如 "name = '李雷'"。
但是有时候我们需要获取 name 字段含有 "李" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。
SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *; 使用下划线 _ 字段来表示单个字符。