返回首页

gbase数据、南大通用产品文档:GBase8agetdistribution 命令

更新日期:2024年09月11日

语法
gcadmin getdistribution

GBase UP 产品手册 4 管理员指南

文档版本04(2021-04-21) 南大通用数据技术股份有限公司 187
表 4-27 参数说明
参数名称
说明
ID
要获取的distribution id。
distribution_info.xml
保存distribution 信息的文件名。
功能
将指定id 的distribution 信息保存的指定的文件中,生成的文件为xml 文件,用户
可修改改文件中的分片信息,然后使用该文件重新生成distribution。
注意
指定的distribution 需为已存在的distribution,
若指定存放distribution 信息的文件已存
在,则其内容会被清空再写入distribution 分片信息。

示例
执行命令
$ gcadmin getdistribution 6 dstb_info
gcadmin getdistribution 6 dstb_info ...

get segments information
write segments information to file [dstb_info]

gcadmin getdistribution information successful
命令执行成功,生成的dstb_info 文件内容如下:






GBase UP 产品手册 4 管理员指南

文档版本04(2021-04-21) 南大通用数据技术股份有限公司 188

















功能描述
更改文本搜索配置的定义。
用户可以将映射从字串类型调整为字典,
或者改变配置的名
称或者所有者,或者修改搜索配置的配置参数。
ADD MAPPING FOR 选项为文本搜索配置增加字串类型映射;如果ADD MAPPING
FOR 后面任何一个字串类型的映射已经存在于此文本搜索配置中,那么系统将会报错。
ALTER MAPPING FOR 选项会首先清除已有的字串类型映射,然后添加指定的字串类
型映射。
ALTER MAPPING REPLACE … WITH … 与ALTER MAPPING FOR … REPLACE …
WITH … 选项会直接使用new_dictionary 替换old_dictionary 。需要注意的是,只有
pg_ts_config_map 系统表中存在maptokentype 与old_dictionary 对应关系的元组时,才能更
新成功,否则不会成功,也不会有任何提示信息返回。
DROP MAPPING FOR 选项会删除当前文本搜索配置中指定的字串类型映射。如果没
有指定IF EXISTS 选项,当DROP MAPPING FOR 选项指定的字串类型映射在文本搜索配
置中不存在时,数据库会报错。
注意事项

当一个搜索配置已经被引用
(如被用来创建索引)

则不允许用户修改此文本搜索配置。

要使用ALTER TEXT SEARCH CONFIGURATION,用户必须是配置的所有者。
语法格式
增加文本搜索配置字串类型映射语法
ALTER TEXT SEARCH CONFIGURATION name
ADD MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ];

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
782
修改文本搜索配置字典语法
ALTER TEXT SEARCH CONFIGURATION name
ALTER MAPPING FOR token_type [, ... ] REPLACE old_dictionary WITH new_dictionary;
更改文本搜索配置字典语法
ALTER TEXT SEARCH CONFIGURATION name
ALTER MAPPING REPLACE old_dictionary WITH new_dictionary;
删除文本搜索配置字串类型映射语法
ALTER TEXT SEARCH CONFIGURATION name
DROP MAPPING [ IF EXISTS ] FOR token_type [, ... ];
重命名文本搜索配置所有者语法
ALTER TEXT SEARCH CONFIGURATION name OWNER TO new_owner;
重命名文本搜索配置名称语法
ALTER TEXT SEARCH CONFIGURATION name RENAME TO new_name;
重命名文本搜索配置命名空间语法
ALTER TEXT SEARCH CONFIGURATION name SET SCHEMA new_schema;
修改文本搜索配置属性语法
ALTER TEXT SEARCH CONFIGURATION name SET ( {configuration_option = value} [, ...] )
重置文本搜索配置属性语法
ALTER TEXT SEARCH CONFIGURATION name RESET ( {configuration_option} [, ...] );
参数说明

name
已有文本搜索配置的名称(可以有模式修饰)


token_type
与配置的语法解析器关联的字串类型的名称。详细信息参见解析器。

dictionary_name

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
783
文本搜索字典名称。如果有多个字典,则它们会按指定的顺序搜索。

old_dictionary
映身中拟被替换的文本搜索字典名称。

new_dictionary
替换old_dictionary 的文本搜索字典的名称。

new_owner
文本搜索配置的新所有者。

new_name
文本搜索配置的新名称。

new_schema
文本搜索配置的新模式名。

configuration_option
文本搜索配置项。详细信息参见CREATE TEXT SEARCH CONFIGURATION。

value
文本搜索配置项的值。
示例
--创建文本搜索配置。
gbase=#CREATE TEXT SEARCH CONFIGURATION english_1 (parser=default);
CREATE TEXT SEARCH CONFIGURATION
--增加文本搜索配置字串类型映射语法。
gbase=#ALTER TEXT SEARCH CONFIGURATION english_1 ADD MAPPING FOR word
WITH simple,english_stem;
ALTER TEXT SEARCH CONFIGURATION
--增加文本搜索配置字串类型映射语法。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
784
gbase=#ALTER TEXT SEARCH CONFIGURATION english_1 ADD MAPPING FOR email
WITH english_stem, french_stem;
ALTER TEXT SEARCH CONFIGURATION
--查询文本搜索配置相关信息。
gbase=#SELECT b.cfgname,a.maptokentype,a.mapseqno,a.mapdict,c.dictname FROM
pg_ts_config_map a,pg_ts_config b, pg_ts_dict c WHERE a.mapcfg=b.oid AND a.mapdict=c.oid
AND b.cfgname='english_1' ORDER BY 1,2,3,4,5;
cfgname
| maptokentype | mapseqno | mapdict |
dictname
-----------+--------------+----------+---------+--------------
english_1 |
2 |
1 |
3765 | simple
english_1 |
2 |
2 |
12960 | english_stem
english_1 |
4 |
1 |
12960 | english_stem
english_1 |
4 |
2 |
12964 | french_stem
(4 rows)
--增加文本搜索配置字串类型映射语法。
gbase=#ALTER TEXT SEARCH CONFIGURATION english_1 ALTER MAPPING REPLACE
french_stem with german_stem;
ALTER TEXT SEARCH CONFIGURATION
--查询文本搜索配置相关信息。
gbase=#SELECT b.cfgname,a.maptokentype,a.mapseqno,a.mapdict,c.dictname FROM
pg_ts_config_map a,pg_ts_config b, pg_ts_dict c WHERE a.mapcfg=b.oid AND a.mapdict=c.oid
AND b.cfgname='english_1' ORDER BY 1,2,3,4,5;
cfgname
| maptokentype | mapseqno | mapdict |
dictname
-----------+--------------+----------+---------+--------------
english_1 |
2 |
1 |
3765 | simple

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
785
english_1 |
2 |
2 |
12960 | english_stem
english_1 |
4 |
1 |
12960 | english_stem
english_1 |
4 |
2 |
12966 | german_stem
(4 rows)
请参见CREATE TEXT SEARCH CONFIGURATION 的示例。
相关命令
CREATE TEXT SEARCH CONFIGURATION,DROP TEXT SEARCH CONFIGURATION

功能说明
JOIN 是在两个或多个表中查询数据。
GBase 8a MPP Cluster 支持的JOIN 功能大概分为如下几类:

INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
在缺乏连接条件时,INNER JOIN 和,(逗号)在语义上是等价的:都是在
指定的两个表之间生成一个笛卡尔乘积(也就是,第一个表中的每一行都与
第二个表中的所有行连接起来)。

LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
如果在LEFT JOIN 的ON 或USING 部分的右表中没有匹配的记录,那么该
右表一行中的所有列都设置为NULL。可以用这种方法找出一个表和另一个
表之间不匹配的记录。

RIGHT JOIN(右连接):与LEFT JOIN 相反,用于获取右表所有记录,
即使左表没有对应匹配的记录。

FULL JOIN/FULL OUTER JOIN(全连接):可以看成是LEFT JOIN(左连
接)和RIGHT JOIN(右连接)结果的合集。但是FULL JOIN 跟LEFT
JOIN...UNION RIGHT JOIN...并不完全等价,因为UNION 会去除重复记录。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1076
说明

当进行简单等值关联(简单等值关联需要同时满足等值JOIN 和等
值JOIN 条件两边都是物理列不是表达式两个条件。)时,且JOIN
涉及分布式Hash JOIN,则需要受如下限制约束:

JOIN 两边的数据类型必须相同;

进行CHAR JOIN CHAR 时,精度必须相同;

JOIN 两边数据类型不同时,
仅支持CHAR 与VARCHAR,
INT

(包括INT,
BIGINT,
SMALLINT,
TINYINT)
与VARCHAR
之间做关联查询。
语法格式
GBase 8a MPP GCluster SQL 支持下面的JOIN 语法:
table_references:
table_reference [, table_reference] …
table_reference:
table_factor
| join_table
table_factor:
[vc_name.][database_name.]table_name [[AS] alias]
| ( table_references )
join_table:
table_reference [INNER | CROSS] JOIN table_factor [join_condition]
| table_reference LEFT [OUTER] JOIN table_reference join_condition
| table_reference RIGHT [OUTER] JOIN table_reference join_condition
| table_reference FULL [OUTER] JOIN table_reference join_condition
join_condition:
ON conditional_expr
| USING (column_list)
表5- 98 参数说明
参数名称


USING(column_list)
用于为一系列的列进行命名。这些列必须同时在两个表中存
在。如果表a 和表b 都包含列c1、c2 和c3,则以下联合会包
含来自两个表的对应的列:
1)a LEFT JOIN b USING (c1,c2,c3)

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1077
参数名称


2)a LEFT JOIN b ON a.c1 = b.c1 AND a.c2 = b.c2 AND a.c3 =
b.c3
Vc_name
vc 命,可选项。
database_name
数据库名,可选项。
table_name
表名
示例
示例1:join 语法示例。
示例中所用的表及数据:
CREATE TABLE t1(id INT,name VARCHAR(30));
CREATE TABLE t2(id INT,title VARCHAR(20),name VARCHAR(30));
INSERT INTO t1 VALUES(1,'name1'),(2,'name2'),(3,'name3');
INSERT INTO t2 VALUES(1,'t1','name1'),(3,'t3','name3'),(4,'t4','name4');
gbase> SELECT * FROM t1;
+------+-------+
| id
| name
|
+------+-------+
|
1 | name1 |
|
2 | name2 |
|
3 | name3 |
+------+-------+
3 rows in set (Elapsed: 00:00:00.07)
gbase> SELECT * FROM t2;
+------+-------+-------+
| id
| title | name
|
+------+-------+-------+
|
1 | t1
| name1 |
|
3 | t3
| name3 |
|
4 | t4
| name4 |
+------+-------+-------+
3 rows in set (Elapsed: 00:00:00.03)
INNER JOIN:
gbase> SELECT a.id,a.name,b.name,b.title FROM t1 a INNER JOIN t2 b ON

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1078
a.id=b.id;
+------+-------+-------+-------+
| id
| name
| name
| title |
+------+-------+-------+-------+
|
1 | name1 | name1 | t1
|
|
3 | name3 | name3 | t3
|
+------+-------+-------+-------+
2 rows in set (Elapsed: 00:00:00.15)
WHERE 子句方式,等价于上面的INNER JON:
gbase> SELECT a.id,a.name,b.name,b.title FROM t1 a,t2 b
WHERE
a.id=b.id;
+------+-------+-------+-------+
| id
| name
| name
| title |
+------+-------+-------+-------+
|
1 | name1 | name1 | t1
|
|
3 | name3 | name3 | t3
|
+------+-------+-------+-------+
2 rows in set (Elapsed: 00:00:00.12)
LEFT JOIN:
gbase> SELECT a.id,a.name,b.name,b.title FROM t1 a LEFT JOIN t2 b ON
a.id=b.id;
+------+-------+-------+-------+
| id
| name
| name
| title |
+------+-------+-------+-------+
|
2 | name2 | NULL
| NULL
|
|
1 | name1 | name1 | t1
|
|
3 | name3 | name3 | t3
|
+------+-------+-------+-------+
3 rows in set (Elapsed: 00:00:00.13)
RHGHT JOIN:
gbase> SELECT a.id,a.name,b.name,b.title FROM t1 a RIGHT JOIN t2 b ON
a.id=b.id;
+------+-------+-------+-------+
| id
| name
| name
| title |
+------+-------+-------+-------+
| NULL | NULL
| name4 | t4
|
|
1 | name1 | name1 | t1
|
|
3 | name3 | name3 | t3
|
+------+-------+-------+-------+
3 rows in set (Elapsed: 00:00:00.16)

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1079
FULL JOIN:
gbase> SELECT a.id,a.name,b.name,b.title FROM t1 a FULL JOIN t2 b ON
a.id=b.id;
+------+-------+-------+-------+
| id
| name
| name
| title |
+------+-------+-------+-------+
|
2 | name2 | NULL
| NULL
|
| NULL | NULL
| name4 | t4
|
|
1 | name1 | name1 | t1
|
|
3 | name3 | name3 | t3
|
+------+-------+-------+-------+
4 rows in set (Elapsed: 00:00:00.17)
示例2:char JOIN char(相同精度)示例。
示例中所用的表及数据:
CREATE TABLE t3(a CHAR(5), b CHAR(10));
CREATE TABLE t4(a CHAR(10));
INSERT INTO t3 VALUES('abcde', 'abcde');
INSERT INTO t4 VALUES('abcde');
gbase> SELECT * FROM t3;
+-------+------------+
| a
| b
|
+-------+------------+
| abcde | abcde
|
+-------+------------+
1 row in set (Elapsed: 00:00:00.03)
gbase> SELECT * FROM t4;
+------------+
| a
|
+------------+
| abcde
|
+------------+
1 row in set (Elapsed: 00:00:00.02)
t3.b 与t4.a 类型均为char(10),因此可以建立等值JOIN 关系:
gbase>
SELECT * FROM t3 JOIN t4 ON t3.b = t4.a;
+-------+------------+------------+
| a
| b
| a
|
+-------+------------+------------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1080
| abcde | abcde
| abcde
|
+-------+------------+------------+
1 row in set (Elapsed: 00:00:00.06)
t3.a 类型为char(5),t4.a 类型为char(10),不同精度的char 类型间
禁止建立等值JOIN 关系:
gbase> SELECT * FROM t3 JOIN t4 ON t3.a = t4.a;
ERROR 1149 (42000): (GBA-02SC-1001) Data types of equivalence join relation
((`vc1.demo.t3`.`a` = `vc1.demo.t4`.`a`)) are not supported , data types: left is
CHAR(5), right is CHAR(10)
示例3:char JOIN varchar 示例。
示例中所用的表及数据:
CREATE TABLE t1(a CHAR(5), b CHAR(10));
CREATE TABLE t2(a varchar(10));
INSERT INTO t1 VALUES('abcde', 'abcde');
INSERT INTO t2 VALUES('abcde');
T1.a 类型时char(5),
‘abcde’
不需要补充空格,
与varchar 的'abcde'
相等:
gbase> SELECT * FROM t1 JOIN t2 ON t1.a = t2.a;
+-------+------------+-------+
| a
| b
| a
|
+-------+------------+-------+
| abcde | abcde
| abcde |
+-------+------------+-------+
1 row in set
t1.b 类型是char(10),补齐空格后为'abcde
',与varchar 的'abcde'
不等,以下面结果集为空:
gbase> SELECT * FROM t1 JOIN t2 ON t1.b = t2.a;
Empty set
示例4:int JOIN varchar 示例。
示例中所用的表及数据:
CREATE TABLE t5(a INT);
CREATE TABLE t6(a VARCHAR(10));
INSERT INTO t5 VALUES(179);
INSERT INTO t6 VALUES('179');

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1081
int 和varchar 间可以建立等值JOIN 关系:
gbase> SELECT * FROM t5 JOIN t6 ON t5.a = t6.a;
+------+------+
| a
| a
|
+------+------+
|
179 | 179
|
+------+------+
1 row in set