返回首页

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

更新日期:2024年09月11日

导出到kafka 集群说明
GBase 8a 集群将查询结果的数据生产到kafka topic 的所有分区或指定分区中
select * from test.lineitem into outfile
'kafka://192.168.8.127:9092/test?brokers=192.168.8.127:9092|192.168.8.127:9093&pa
rtition=0' [OPTIONS];

KAFKA URL 格式:
kafka://broker1/topicname?[brokers=broker2|broker3|...][partition=pt1]
brokers:kafka 集群中一个或多个broker 地址的IP 和端口号列表,格式为

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1227
host2:port2|host3:port3|...。8a 集群会通过URL 中指定的broker 地址连接到kafka
集群,使用brokers 参数指定多个broker 地址,可以避免在单个broker 宕机情况
下连接不到kafka 集群。
topicname:指定导出到的topic 名称,区分大小写。
partition:指定导出到topic 的一个分区,格式为partition=ptnum。省略该参数时,
默认导出到topic 的所有分区中。

导出到kafka 支持的OPTION 参数有:
字段分隔符、字段包围符、转义标识符、字段包围符自转义(double_enclosed by)、
定长模式字段长度、longblob 字段的文本和base64 导出方式(fields/columns
blobmode type_text/type_base64)、行分隔符、行起始符(lines starting by)、空值标
识符、导出文件字符集。

不支持的OPTION 参数有:
导出表头信息、导出方式(outfilemode by)、写入方式writemode by overwrites、并
行导出的文件个数(filecount)、导出文件大小、longblob 字段独立文件导出方式
(fileds blobmode type_url)

说明:
(1)当前不支持多节点并行导出到kafka,消息按轮询方式写入各broker,消费
时不保证多个broker 之间消息的顺序。
(2)kafka 集群本身支持高可用,建议kafka 集群配置时指定topic 分区副本数大
于1。
(3)8a 集群导出过程中如果某个broker 不可用,数据会自动导出到其他broker
中,保证高可用。参数gbase_kafka_producer_message_timeout_ms 为指定kafka
发送消息超时时间参数,如果消息无法在设定时间内发送到broker,会产生发送
超时的报错信息,默认是300000 秒,取值范围为1~2147483647。
(4)
设置gbase_sql_trace_level>=5 时,
执行导出的gnode 下express.log 会记录导
出的kafka 消息条数和topic 所有分区最后一条消息导出前后的偏移量。
(5)
支持配置每条kafka 消息的最大字节数或包含的数据行数,
8a 查询的结果集
数据会根据该配置被分割成多条kafka 消息:
参数gbase_kafka_producer_message_max_bytes 为一条kafka 消息的最大字节数,
默认值为8192,取值范围为1~1000000000
参数gbase_kafka_producer_message_max_rows 为一条kafka 消息中最多的数据行
数,默认值为100000000,取值范围为1~4294967295
(6)支持设置批量发送消息的个数,每次发送单条kafka 消息效率低时,可以配
置批量发送消息的个数,当消息积累到一定数量后一起发送到broker:

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1228
参数gbase_kafka_producer_batch_messages 为批量发送消息的个数,默认值为
1000,取值范围为1~10000000
(7)kafka 0.11 版本(含)以上支持EOS 特性,集群数据导出到kafka 也支持
EOS(exactly-once semantics 精确一次语义)配置,即不会重复生产和消费数据,包
含幂等性和事务性两种特性。开启事务性配置后,幂等性配置会连带置为开启。
参数gbase_kafka_producer_enable_idempotence 为幂等性开关,默认值为0,取值
范围0、1,0 代表关闭幂等性,1 代表开启幂等性。开启幂等性功能,可以保证
导出的消息中没有因为发送重试产生的重复消息(如果broker 端收到数据,
但是返
回给发送端的确认信息ACK 在网络中丢失会造成发送端再次发送重复消息)。
参数gbase_kafka_enable_transaction 为事务性开关,默认值为0,取值0、1,0 代
表关闭事务性,1 代表开启事务性。开启事务性功能,可以保证所有导出的消息
属于同一事务,即其中一条消息生产失败,整个事务提交失败。同样开启事务性
功能后,kafka 数据导入到8a 集群也只有提交成功的事务内的消息可以被导入。
(8)集群数据导出到kafka 新增对应kafka 集群的两个配置参数:
参数_gbase_kafka_producer_transaction_timeout_ms 为事务超时时间,对应kafka
配置中的transaction.timeout.ms ,该参数默认值6000000 ,取值范围为
1000~2147483647。
参数_gbase_kafka_producer_queue_buffering_max_messages 为一批中最多的消息
数,对应kafka 配置中的queue.buffering.max.messages,默认值为10000000,取
值范围为1~10000000

列权限表,给出关于列权限的信息。
表 5-21 具体信息如下:
GRANTEE
被赋予权限的用户名
TABLE_CATALOG
表登记目录
TABLE_SCHEMA
列所在表所属数据库名
TABLE_NAME
列所在表名
COLUMN_NAME
列名
PRIVILEGE_TYPE
权限类型
IS_GRANTABLE
是否具有赋予权限的权限

不可跨线程地并发访问同一 Statement 或 ResultSet 实例。然而,您可在多个线程之间共享
一个 Connection 对象。
例如,如果一个线程在 Statement 对象上执行 Statement.executeQuery() 方法,另一个线程在
同一 Statement 对象上执行Statement.executeUpdate() 方法,
则难以预料两个方法的结果,

依赖于最后执行了哪个方法。
类似地,如果一个线程执行方法 ResultSet.next(),另一线程在同一 ResultSet 对象上执行同
一方法,则难以预料两个方法的结果,且依赖于最后执行了哪个方法。