返回首页

gbase数据、南大通用产品文档:GBase8sDatetime 对象类型

更新日期:2024年09月11日

GBase 8s 支持的时间类型数据有时间类型,日期类型, 时间戳类型。
Factory
Sql 类型
1(缺省值)
2
3
备注
DATE
SQLT_DAT
SQLT_DAT
SQLT_TIMESTAMP

TIME
SQLT_DAT
SQLT_DAT
SQLT_TIMESTAMP

DATETIME
SQLT_DAT
SQLT_DAT
SQLT_TIMESTAMP




在C 语言中,使用GCIDateTime 对象表示时, 使用子类型区分。

GCI 接口在使用时间类型做数据库访问操作时,有如下规则:
l
GCIDateTime 时间,包含小时(范围0~23)
,分钟(范围0~59)
,秒(范围0~59)
,不包
含纳秒。
l
GCIDateTime 日期,包含年(范围-4712~9999)
,月(范围0~11)
,日(范围1~31)

l
GCIDateTime 时间戳,包含年(范围-4712~9999)
,月(范围0~11)
,日(范围1~31)

小时(范围0~23)
,分钟(范围0~59)
,秒(范围0~59)
,纳秒(范围0~999999999)
关于纳秒,GBase8s 中datetime 的fraction 类型的位数范围是1~5,最大只保留5 位有 效
数字, 所以纳秒的低4 位会被舍弃。例如,对于datetime year to fraction(5)的数据, 输
入值为9999,存入数据库的值为0。
Datetime 对象类型使用举例:
/* allocate the program variable for storing the data */
GCIDateTime *tstmpltz = (GCIDateTime *)NULL;
/* Col1 is a timestamp

*/
OraText *sqlstmt = (OraText *)"SELECT col1 FROM foo";
/*
分配Datetime 对象句柄 */
status = GCIDescriptorAlloc(envhp,(void **)&tstmpltz, GCI_DTYPE_TIMESTAMP,
0, (void **)0);
....
status
=
GCIStmtPrepare
(stmthp,
errhp,
sqlstmt,
(ub4)strlen
((char
*)sqlstmt),
(ub4)GCI_NTV_SYNTAX, (ub4)GCI_DEFAULT);
/* 绑定对象句柄,注意是指针的地址*/
status = GCIDefineByPos(stmthp, &defnp, errhp, 1, &tstmpltz, sizeof(tstmpltz),
SQLT_TIMESTAMP_LTZ, 0, 0, 0, GCI_DEFAULT);
/* Execute and Fetch */
GCIStmtExecute(svchp, stmthp, errhp, 1, 0,(GCISnapshot *) NULL,
(GCISnapshot *)NULL, GCI_DEFAULT)
At this point tstmpltz contains a valid timestamp with local time zone data. You
can get the time zone name of the datetime data using:
status = GCIDateTimeGetTimeZoneName(envhp, errhp, tstmpltz, (ub1 *)buf,
C 语言类型(64 位系
统)
子类型
数据库类型名称
SQLT 类型
GCIDateTime 时间

GCI_DTYPE_TI
ME
datetime
hour
to
second
SQLT_TIME
GCIDateTime 日期
GCI_DTYPE_D
ATE
Datetime year to day
SQLT_DATE
GCIDateTime 时间戳
GCI_DTYPE_TI
MESTAMP
除去以上类型的其他
时间类型, 例如
datetime
year
to
fraction(5), datetime
hour to fraction(4).
SQLT_TIMESTAMP



(ub4 *)&buflen);

从Kafka 源中接收数据到GBase 8a 增量
同步
在8.6.9.0 版本中增加了对Kafka 源中数据的解析同步功能。支持源端为
Kafka,目标端为GBase 8a(Consumer)的增量同步。
使用Kafka 数据源要求每个topic 中只能发送一张表的数据。
由于在数据源Kafka 中没有源表的元数据信息,所以只支持列级同步;支
持JSON 模式的同步。
目标端为GBase 8a(Consumer)时,需要配置为部分部署模式,即只配置
读端,配置方法参考2.3.6.11 章节。
支持断点续传功能。
config_task.xml 中,需要在标签下修改的部分:

设置type=”KAFKA”;

增加bootstrapServers 属性,设置为数据源Kafka 的ip 及端口
号,格式为:,可以设置多个,使用逗号分隔;

增加zookeeperServers 属性,设置为数据源Kafka 所使用的
Zookeeper 的ip 及端口号,格式为:,可以设置多个,
使用逗号分隔;

增加groupid 属性,设置为数据源Kafka 所使用的分组id,用于
区分其他读取数据源Kafka 的消费者;

增加consumerNums 属性,设置为数据源Kafka 的消费者个数;

增加kafkaConsumerParamers 属性,设置为数据源Kafka 的其他
消费者参数;

GBase RTSync 同步工具手册
南大通用数据技术股份有限公司
- 125 -

增加maxCountWait 属性,意义为获取数据最大阻塞队列,可以使
用默认值;

增加recordTopicUntilCount 属性,意义为断点续传参数,可以
使用默认值。
需要在每个

标签下修改的部分:

增加topicname 属性,设置为数据源Kafka 的topic 名称,每个
表对应一个topic;

增加isContinueSyncWhileError 属性,
用于判断当该表的一条数
据解析或者同步出现问题时,是否继续同步该表后续的数据;如
果配置为true,则将该错误数据记录到日志中继续同步后面的数
据;配置为false 则将该错误数据记录到日志后,停止该表数据
的解析和同步。

bar_action 表列出试图对某个对象执行的所有备份与恢复操作,除了在某些类型的冷恢复
期间执行的操作之外。请使用该表中的信息跟踪备份与恢复历史记录。
表 1. bar_action 表列

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 106 -

列名
类型
解释
act_aid
SERIAL
操作标识。表中的唯一编号。可以与 act_oid 列一起
使用以连接 bar_instance 表。
act_oid
INTEGER
对象标识。标识备份或恢复操作所针对的备份对象。
可以与 act_aid 一起使用以连接bar_instance。
bar_action 表的 act_oid 列等同
于 bar_object 表的 obj_oid 列。
act_type
SMALLINT
标识已尝试的操作:1 表示备份,2 表示恢复,
3 表示外部或导入的恢复,4 表示伪备份,5 表示
整个系统的备份,6 表示整个系统的恢复,7 表示
到期的或已删除的对象,8 表示外部恢复。
act_status
INTEGER
标识操作的结果:如果成功则为 0,否则是特定于
ON-Bar 的错误代码。有关更多信息,请参阅 ON-Bar
消息和返回码。
act_start
DATETIME YEAR
TO SECONDS
操作开始的日期和时间。
act_end
DATETIME YEAR
TO SECONDS
操作完成的日期和时间。