返回首页

gbase数据、南大通用产品文档:GBase8a私有dblink 使用说明

更新日期:2024年09月11日

使用场景
1 创建的db_link,
希望指定用户使用,
其他用户不能随便调用,
即支持私有db_link.
2. 为了提升db_link 的性能,
建议本地通过dblink 发送到远端的sql,
在本地不再进
行解析,直接发送到远端执行,即支持直通模式:passthrough
3. 支持直通模式下的私有dblink。
示例
B 集群创建私有dblink ,为u_dblink 用户私有:
create user u_dblink;u_dblink 权限如下:
grant all on gctmpdb.* to u_dblink;
grant all on dbname.* to u_dblink;
grant select on gbase.* to u_dblink;
gccli -u u_dblink
create private database link db_linkBtoA
connect to '' identified by '' using 'dsBtoA';

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
608
B 集群中只有u_dblink 可以使用db_linkBtoA
A 向B 发送命令,让B 从A 中抽数据到B,下面的sql 都从集群A 上发出:
A 推送数据到B 的表:
insert into tb_B@db_linkAtoB
select * from dbname.tb_A
A 发命令让B 拉数据到B 的表:
passthrough link db_linkAtoB
using 'insert into dbname.tb_B select * from
tb_A@db_linkBtoA;
语法:
1..支持私有dblink 语法
create private database link ...
drop
private database link ...
2.不修改默认行为
create database link ... ,默认是public link
create public database link,指定为public link
3.直通模式使用dblink
passthrough link publiclink using 'insert into t1 select * from t2@privatelink'
其中集群1维护publiclink,集群2维护privatelink。集群1发起直通模式指令,然
后在集群2上执行从集群1拉表t2 数据然后插入到集群2的t1 表中。集群2的私
有dblink 只要创建的用户可用,其它用户不能使用。
注意:
在配置publiclink 的时候指定配置文件中访问集群2的用户要与创建在集群2上的
privatelink 用户一致。
需要在集群的所有管理节点配置文件中增加参数
gbase_8a_gcluster.cnf
gbase_dblink_gateway_ip=网关ip
gbase_dblink_gateway_port=9898

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
609

本节描述了客户端函数的语法,它们的输入/输出参数,返回值和 SQL_BIGINT。

CREATE MATERIALIZED VIEW 会创建一个全量物化视图,并且后续可以使用
REFRESH MATERIALIZED VIEW(全量刷新)刷新物化视图的数据。
CREATE MATERIALIZED VIEW 类似于CREATE TABLE AS,不过它会记住被用来初
始化该视图的查询,因此它可以在后续中进行数据刷新。一个物化视图有很多和表相同的
属性,但是不支持临时物化视图。
注意事项

全量物化视图不可以在临时表或全局临时表上创建。

全量物化视图不支持nodegroup。

创建全量物化视图后,基表中的绝大多数DDL 操作不再支持。

不支持对全量物化视图进行IUD 操作。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
904

全量物化视图创建后,当基表数据发生变化时,需要使用刷新(REFRESH)命令保持
物化视图与基表同步。

Ustore 引擎不支持物化创建、使用视图。
语法格式
CREATE [ INCREMENTAL ] MATERIALIZED VIEW table_name
[ (column_name [, ...] ) ]
[ TABLESPACE tablespace_name ]
AS query
参数说明

mv_name
要创建的物化视图的名称(可以被模式限定)

取值范围:字符串,要符合标识符的命名规范。

column_name
新物化视图中的一个列名。
物化视图支持指定列,
指定列需要和后面的查询语句结果的
列数量保持一致;如果没有提供列名,会从查询的输出列名中获取列名。
取值范围:字符串,要符合标识符的命名规范。

WITH ( storage_parameter [= value] [, … ] )
这个子句为表或索引指定一个可选的存储参数。详见CREATE TABLE。

TABLESPACE tablespace_name
指定新建物化视图所属表空间。如果没有声明,将使用默认表空间。

AS query
一个SELECT、
TABLE 或者VALUES 命令。
这个查询将在一个安全受限的操作中运行。
示例

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
905
--创建一个普通表
gbase=#CREATE TABLE my_table (c1 int, c2 int);
--创建全量物化视图
gbase=#CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM my_table;
--基表写入数据
gbase=#INSERT INTO my_table VALUES(1,1),(2,2);
--对全量物化视图my_mv 进行全量刷新
gbase=#REFRESH MATERIALIZED VIEW my_mv;
相关命令
ALTER MATERIALIZED VIEW,CREATE INCREMENTAL MATERIALIZED VIEW,
CREATE TABLE,DROP MATERIALIZED VIEW,REFRESH INCREMENTAL
MATERIALIZED VIEW,REFRESH MATERIALIZED VIEW