“G”术时刻:南大通用GBase 8a数据库集群透明网关与DBLINK-异构数据源

异构数据源
DBLink网关支持异构数据源oracle、mysql、hive、teradata、sybase等。
网关数据源配置
dblink网关oracle/mysql /teradata数据源:

dblink查询语法约束
针对异构数据源,新增语法约束:
除union(也包括minus、union all、intersect)查询外,异构数据源dblink表只允许出现在from子查询中。假设olink 为异构数据源dblink对象,例如以下SQL:

oracle/mysql /teradata语法兼容性
对于oracle/mysql /teradata的方言及专有函数等不作支持。
对于异构数据源 oracle :
参数 _t_gcluster_dblink_clear_syntax_constraints =2:不支持dblink查询中使用 group_concat 函数。
参数 _t_gcluster_dblink_clear_syntax_constraints =1:支持dblink查询中使用 group_concat 函数。
元数据兼容性
Oracle/mysql /teradata的大对象数据类型(如blob,clob等)、binary、long数据类型本期不支持。支持oracle基本数据类型(字符型、数字型及日期型等)。
gbase的decimal(p,s), p即精度最大值支持到65位,s即小数,最大值为 30;oracle 的number(p,s) 类型,s超过30 ,dblink网关将映射为gbase的double数据类型,由于double类型是非精确的数据类型,会有精度损失;
由于oracle的date类型可以存储时分秒信息,对于异构数据源oracle的date类型,会映射为GCluster的datetime类型。使用dblink查询oracle的date类型数据会带上时分秒信息,可以用to_date函数格式化输出去掉时分秒信息。
字符集
能够支持oracle/mysql /teradata源为UTF8及GBK/GB2312字符集,支持中文数据源。
SQL功能支持的场景
dblink异构数据源SQL功能支持的场景与同构数据源保持一致:
支持select语句查询dblink表;支持create…select.. , select部分使用dblink查询;支持insert..select ..,select 部分使用dblink查询;支持多表关联delete,源部分使用dblink查询;支持存储过程中使用dblink查询;支持prepare语句对dblink查询进行预处理。
示例

SQL功能不支持的场景
以下SQL功能和同构数据源一致,暂不支持:
不支持对dblink表进行DDL操作,如drop table,alter table等操作;不支持使用dblink查询创建视图;不支持使用dblink表或查询作为update的源关联更新本地表;不支持merge语句using源部分使用dblink查询;不支持function中使用dblink查询。
示例:

posted @ 2025-05-30 14:26  GBASE南大通用  阅读(6)  评论(0)    收藏  举报