返回首页

gbase数据、南大通用产品文档:GBase8a镜像表

更新日期:2024年09月11日

镜像表作为UP 跨引擎读写分离功能的具体实现,
在GBase 8t 和GBase 8a 数据库分
别建立同库同名同结构的表。在GBase 8t 中写入数据,在GBase 8a 中读取数据。
GBase 8t 的数据变化通过RTSync—>Kafka—>Consumer 的方式同步到GBase 8a。
功能支持程度
(1) 当前此功能支持的数据类型包括TINYINT、SMALLINT、INT、FLOAT、
DOUBLE、 DECIMAL、CHAR(n)、VARCHAR(n)、DATE、DATETIME 共
十种类型;
(2) 镜像表只支持Create、Drop、Insert、Delete、Update 和Select 操作。Create、
Drop同时在GBase8t引擎和Express引擎执行。
数据的写入操作发给GBase8t
引擎,查询操作发给Express 引擎。
语法示例
创建镜像表。
首先表的引擎名需要设为Mirror8t,
其次表中需要指定至少一个主键。
另外目前镜像表在Express 引擎只能创建随机分布表。
create mirror table mirr1
(
a int,
b varchar(100),
primary key(a)
)engine=mirror8t.inst1;

表6- 1 术语简介
术语
介绍
镜像
是指两个集群结构(分片数量,节点数量,分布情况)完全相同
分布情况
是指两个集群的相同分片的hash 值一致;简单可以理解为同样的数据,在
两个集群上导入会落到同样的分片上
一组可用分片
指一个表在集群上的各个分片(例如:n1、n2、n3、n4)都存在一个状态
正常的分片(可以使用SHOW DATACOPYMAP vcname.dbname.tablename
查看表分片及其状态)
主集群
同步的源端集群,可以理解为正在使用,需要备份的集群
备集群
同步的目的端集群,可以理解为作为镜像备份的集群
主分片
表的主分片仅存在于分布表(随机分布表和哈希分布表)。在集群中的每
个节点上都会存在表的主分片,表的主分片为表名_dpname 取值(dpname
就是执行gcadmin 后,dpname 列的显示的取值,目前dpname 都是以n1、
n2、……的顺序显示)。例如:n1->node1,n2->node2,n3->node3,n4->node4,
集群运行任务时优先选择主分片
备分片
主分片的备份分片,用于备份主分片的数据,存放于和主分片不同的节点

备份周期
一个备份周期包括一次全量备份和这次全量备份基础上的所有增量备份
备份点
一个备份周期中的各个增量备份称为这个备份周期中的备份点
DC(Data Cell)
数据单元,列存数据落盘时一列数据中65536 个数据打包压缩成一个DC,
集群从磁盘读取数据和处理数据的单元。
临时表
创建表时使用TEMPORARY 关键字,这样创建的表为临时表,临时表仅存
在于当前session 中。
预租磁盘
预租磁盘空间可以预先批量分配磁盘块,这样尽量保证了列的DC 数据文
件在磁盘块上存储连续。在顺序读取列DC 数据时,性能会有明显提升。
静态哈希分布
是指在使用CREATE TABLE 时,明确使用DISTRIBUTED BY(col_name)
指定哈希列,那么,表中的数据就会按照这个定义的哈希列进行哈希分布
存储,这种方式就叫做静态哈希分布。
动态哈希分布
一般出现在多表JOIN ON 查询时的情况。例如表a 和表b,创建表a 时,
使用DISTRIBUTED BY('hash_col')定义了哈希列,表b 没有指定哈希列,
在表a 和表b 进行JOIN ON 查询时,例如,“SELECT a.* FROM a JOIN b
ON a.hash_col= b.col;”,在这条SQL 语句中,表a 和表b 进行了JOIN 后
的等值查询a.hash_col= b.col,
虽然a.hash_col 是哈希列,
b.col 不是哈希列,
但是此时会对b.col 列进行动态哈希列的计算,然后再进行等值比较。

GBase 8a MPP Cluster 产品手册
6 附录
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1535
术语
介绍
kafka topic
一个消息队列,消息根据topic 进行归类,集群中一个topic 对应一个表
kafka broker
一个Kafka 实例称为一个broker,kafka 集群由多个broker 组成

语法
ALTER
ENCRYPTION CERTIFICATE IDENTIFIED BY ‘old_pwd’
TO
‘new_pwd’
说明

修改密文密钥口令,old_pwd、new_pwd 均非空;

为了提高口令的安全性,可以对原证书口令进行修改,修改口令不会改变加密
密钥,只是使用新口令对原有密钥重新加密生成新证书。
gbase> alter encryption certificate identified by '1111' to '2222';
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
------------旧口令解密失败
gbase> alter encryption certificate identified by '1111' to '2222';
ERROR 1829 (HY000): decrypt failed, please check password.