返回首页

gbase数据、南大通用产品文档:GBase8sLiteral Row

更新日期:2024年09月11日

Literal Row 段指定命名的和未命名的 ROW 数据类型的文字的值的语法。
要了解在 ROW 数据类型内求值为字段值的表达式的信息,请参阅 ROW 构造函
数。
语法
Literal Row

字段文字的值

元素
描述
限制
语法

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1574
literal_opaque_type
opaque 数据
类型的文字
的表示
对于相关联的 opaque
数据类型,必须为输入
支持函数识别的文字

opaque
数据类型
的开发者
定义
literal_BOOLEAN
BOOLEAN 值
的文字的表

必须指定 't' (= TRUE)
或 'f' (= FALSE) 作为
引用字符串
引用字符

用法
您可为命名的 ROW 和未命名的 ROW 数据类型指定文字的值。ROW 构造函数
引入文字的 ROW 值,在引号之间可可选地包括它。
ROW 类型的每一字段的值的格式必须与相应的字段的数据类型相兼容。
重要: 您不可指定简单大对象(BYTE 或 TEXT)作为一行的字段类型。
一行的字段可为下列表格中数据类型的文字的值。
对于类型的字段
文字的值语法
BOOLEAN
t 或 f,表示 TRUE 或 FALSE
CHAR、VARCHAR、LVARCHAR、
NCHAR、NVARCHAR、CHARACTER
VARYING、DATE
引用字符串
DATETIME
文字的 DATETIME
DECIMAL、MONEY、FLOAT、
INTEGER、INT8、SMALLFLOAT、
SMALLINT
精确数值
INTERVAL
文字的 INTERVAL
Opaque 数据类型
引用字符串
对于相关联的 opaque 类型,该字符串必
须是由输入支持函数识别的文字。
集合类型(SET、MULTISET、
LIST)
文字的集合
要获取关于作为变量或列值的文字的集合
值的信息,请参阅 嵌套的引号。要获取

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1575
关于 ROW 类型的文字的集合值的信息,
请参阅 嵌套的 Row 的文字。
另一 ROW 类型(命名的或未命名
的)
要获取关于 ROW 类型值的信息,请参阅
嵌套的 Row 的文字。
未命名的 Row 类型的文字
要为未命名的 ROW 类型指定文字的值,请以 ROW 构造函数引入文字的行;您
必须将这些值括在圆括号之间。例如,假设您定义 rectangles 表如下:
CREATE TABLE rectangles
(
area FLOAT,
rect ROW(x INTEGER, y INTEGER, length FLOAT, width FLOAT),
)
下列 INSERT 语句将这些值插入到 rectangles 表的 rect 列内:
INSERT INTO rectangles (rect)
VALUES ("ROW(7, 3, 6.0, 2.0)")
命名的 Row 类型的文字
要为命名的 ROW 类型指定文字的值,请以 ROW 类型构造函数引入文字的行,并
将每一字段的文字的值括在圆括号中。此外,您可将行文字强制转型为适合的命
名的 ROW 类型,来确保生成行值作为命名的 ROW 类型。下列语句创建命名的
ROW 类型 address_t 以及 employee 表:
CREATE ROW TYPE address_t
(
street CHAR(20),
city CHAR(15),
state CHAR(2),
zipcode CHAR(9)
);

CREATE TABLE employee
(
name CHAR(30),
address address_t
);

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1576
下列的 INSERT 语句将值插入到 employee 表的 address 列内:
INSERT INTO employee (address)
VALUES (
"ROW('103 Baker St', 'Tracy','CA', 94060)"::address_t)
嵌套的 Row 的文字
如果是嵌套的row 的文字的值,请为每一行级别指定 ROW 类型构造函数。如果您
包括引号作为定界符,则应将它们括在最外面的 row。例如,假设您创建
emp_tab 表:
CREATE TABLE emp_tab
(
emp_name CHAR(10),
emp_info ROW( stats ROW(x INT, y INT, z FLOAT))
);
下列 INSERT 语句将一行添加到 emp_tab 表:
INSERT INTO emp_tab VALUES ('joe boyd', "ROW(ROW(8,1,12.0))" );
类似地,如果 row 字符串文字包含嵌套的集合,则仅可将最外面的文字的 row
括在引号之间。请不要将引号置于嵌套的集合类型的内部。

GBase 8a MPP Cluster 通过冗余机制来保证集群的高可用特性:
1) 可提供1 个或2 个副本数据冗余;



GBase 8a MPP Cluster 技术白皮书
南大通用数据技术股份有限公司

- 11 -
2) 副本间数据自动同步;
3) 复制引擎自动管理数据同步;
4) 多分片机制降低节点故障的木桶效应;
5) 节点发生故障时,系统自动切换至其它节点进行工作,保证业务连续
性;
6) 支持双活集群部署。
集群副本数和分片数可进行灵活配置,可配置副本分片到集群的任意一个
节点上,可以根据配置在主机性能高和存储空间大的节点分配更多的主本和副
本。
当节点出现异常时,可以将异常服务器的负载均匀分布在副本所在的几台
正常的服务器上。这样就最大限度防止由于故障切换后木桶效应而引起的显著
的性能抖动。
节点故障对应用透明,不会中断正在执行业务,一旦故障节点恢复正常,
GBase 8a MPP Cluster 会从其他节点上的数据恢复该节点数据,在完成更新后
立即提供服务。

图 3-4 数据分片和副本分片的灵活配置

GBase 8a MPP Cluster 技术白皮书


- 12 -

南大通用数据技术股份有限公司

说明
随机脱敏函数只对数字类型起作用。
它会将数字随机显示成指定范围内的值,若多次执行,同一行的随机值会不同。
示例
假设先设置脱敏范围为(1,4)。

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
459
gbase>
CREATE
TABLE
t_m_random(age
INT
MASKED
WITH(FUNCTION = 'RANDOM(1,4)'));
Query OK, 0 rows affected (Elapsed: 00:00:00.09)
gbase> INSERT INTO t_m_random VALUES(29),(19);
Query OK, 2 rows affected (Elapsed: 00:00:00.07)
Records: 2
Duplicates: 0
Warnings: 0
gbase> SELECT * FROM t_m_random;
+------+
| age
|
+------+
|
4 |
|
3 |
+------+
2 rows in set (Elapsed: 00:00:00.03)
表4- 75 脱敏前数据
年龄(int)
29
19
表4- 76 应用随机脱敏后结果
年龄(int)
4
3
注意
NULL 值不做脱敏处理,显示仍为NULL。