返回首页

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

更新日期:2024年09月11日



sword GCIDirPathLoadStream(
GCIDirPathCtx *dpctx,

GCIDirPathStream *dpstr,
GCIError *errhp
);

将数据写入到数据库文件。

参数
输入
/输出


dpctx
输入
文件操作环境
dpstr
输入
数据流描述符指针
errhp
输入
错误信息句柄, 该接口调用失败时, 错误信息会存在该句柄上

如果执行成功, 返回GCI_SUCCESS,否则返回GCI_ERROR。

.netrc 文件包含通过网络登录至远程数据库服务器的数据。
在客户机计算机初始化连接处的 home 目录中,创建 .netrc 文件。将用户的 .netrc文件
许可设置为拒绝由组和其他用户读访问。
要连接至远程数据库服务器,请在 .netrc 文件中为需要自动连接至数据源的 LogonID
和 pwd 创建条目。要建立至远程数据源的连接,ODBC 驱动程序首先从
$HOME/.odbc.ini文件中的数据源条目读取 LogonID 和 pwd。如果 $HOME/.odbc.ini 文
件未指定 LogonID 和 pwd,则 ODBC 驱动程序搜索 $HOME/.netrc 文件。
例如,通过使用带有口令 mypassword 的登录名称 log8in,要允许自动登录至名为 ray
的计算机,您的 .netrc 文件要包含下列行:
machine ray login log8in password mypassword
要获取关于 .netrc 文件的信息,请参阅 UNIX™ 资料。

union 执行方式
集群计划对union 的固有的执行方式有以下三种方式:
1、直接下发:能在各个节点上执行union 操作,结果不需要汇总直接返回客
户端
如:
select id4 from x1 union select id4 from x2;

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1302
x1 和x2 是hash 分布表,且两表的id4 是hash 分布列
select entry_id,id4 from x1 minus select entry_id,id2 from r1;
x1 是hash 分布表,id4 是x1 的hash 分布列,r1 是复制表。
2、单节点执行:只需要在一个节点上执行返回结果
如:
select * from r1 union select * from r2;
r1 和r2 是复制表
select entry_id from x1 where x1.id4=10 union select id2 from x2 where
x2.id4=10;
x1 和x2 是hash 分布表,且两个表的分布列都是id4.
3、先执行再汇总:各个节点先执行union,结果汇总到一个节点上,再在汇
总节点上执行distinct。
union 优化原理:
该优化受参数控制,优化主要是增加了计算节点数目,在节点数较多时(10
个以上),性能提升明显。具体优化方式如下:
能够满足“直接下发”和“单节点执行”的,按“直接下发”和“单节点执
行”进行执行;对于不能满足的,通过拉表转换成“直接下发”或“单节点
执行”进行执行,优先转换成直接下发执行。拉表包括拉复制表和hash 重分
布拉表。
union 优化控制参数

_t_gcluster_union_redist_optimize
控制是否开启union 重分布优化,取值范围[0,1,2]
默认值为0 代表关闭
1 表示开启,不支持union 两边对应为int 和decimal 列进行重分布优化
2 表示开启,支持union 两边对应为int 和decimal 列进行重分布优化,重分
布前会将int 列转换为decimal 类型,进行重分布
注:
hash 重分布是指将表中的数据按照union 操作时临时指定的列作为hash 分布
列进行hash 重分布。不同的数据类型有不同的hash 算法,union 优化要求各
子句对应位置上的hash 列数据类型要相同,
如果不相同需转为一致的数据类
型。目前只支持int->decimal 的数据类型转换,其他类型之间的转换均不支
持。

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

_t_gcluster_union_redist_distinct
控制子查询拉表时是否带上distinct。
取值范围[0,1]
默认值为1,表示带distinct
注:
对需要去重的情况,union 子查询拉表时,通常会在投影列中增加distinct 关
键字先进行一次去重以减少拉表和下一步计算的数据量。当子查询数据重复
率较低,进行一次distinct 减少的数据量不大时,可以设置该参数为0,减少
一次distinct。