GBase 8a优化数据传输参数

结果集传输参数调整避免写文件失败

gcluster_send_client_data_timeout

gcluster_send_client_data_timeout 参数为集群向客户端发送结果集数据时的超时参数,取值范围[0,100000],单位秒,默认为 30 秒。当参数设置为 0 时表示不设置超时,结果集发送无限等待,只有发送成功或失败才返回。

在网络环境较差场景下,或通过 JDBC 等开发接口获取结果集时增加了处理逻辑造成耗时较长时,如 JAVA 程序遍历 RESULT 后再将结果写到文件中,JAVA 写文件的 过 程 可 能 超 过 30 秒 , 就 会 出 现 连 接 失 败 问 题 ( 报 错“com.gbase.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure ” ) 。 此 时 可 以 通 过 调 大gcluster_send_client_data_timeout 参数规避。

 Insert values 一次写入超大数据设置

max_allowed_packet

在进行超大数据的写入时,如通过 insert values 方式一次性写入数万行记录,需要调大 max_allowed_packet 参数。

可通过 set global max_allowed_packet = 134217728 的方式配置该参数。

注意:max_allowed_packet 参数必须写在配置文件的[gbased]下,[gbasedump]之上。

 节点间数据传输参数

_gbase_sis_ctq_threads

用于 insert select,load 接收端数据处理的线程数,缺省值未 0,使用 CPU 核数,当该线程数不够用时,会创建临时线程协助处理,可以使用 show engine expressstatus 查看各个节点间的连接和 session 情况,以及发送和接收任务的情况。

_gbase_sis_ctq_threads 参数用于指定 CTQ 的个数(CommanTaskQueue 的简写,待执行的命令队列),一个 CTQ 对应一个任务执行器(Executor),即该参数可理解为 Executor 个数。参数默认取值为 CPU 核数的 2 倍。建议配置为 512。

在大规模集群并发场景下,CTQ 数不足会造成没有充足的任务执行器进行 SQL 提交等操作,需要反复进行 CTQ 数的判断和生成临时的执行器,两次判断之间间隔60 秒,从而出现性能问题。

_gbase_rep_receive_buffer_size

用于 insert 和 load 在节点间传输数据使用,表示某个节点与其它所有节点的连接

中,最大等待处理的数据大小,单位为 M。

_gbase_gns_queue_size

表示每个发送端 session 的消息队列长度,满了之后会等待并重试。默认取值为

4096,在出现 GNS 数据发送性能异常时,可调大该参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gbase 8a 是一款国产的高性能关系型数据库管理系统,与MySQL是两款不同的数据库软件,因此不能直接使用MySQL的驱动来连接gbase 8a。 不过,gbase 8a提供了自己的ODBC驱动,可以使用ODBC的方式来连接gbase 8a数据库。在Java中,我们可以使用JDBC-ODBC桥来连接gbase 8a数据库,具体步骤如下: 1. 安装gbase 8a ODBC驱动,可以从gbase官网下载或联系gbase技术支持获取下载链接。 2. 配置ODBC数据源,在控制面板中打开“ODBC数据源”窗口,添加一个gbase数据源,填写相应的连接信息。 3. 在Java中使用JDBC-ODBC桥来连接gbase 8a数据库,示例代码如下: ``` String url = "jdbc:odbc:yourdataresource"; // 数据源名称 String user = "username"; // 数据库用户名 String password = "password"; // 数据库密码 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection(url, user, password); ``` 在上述代码中,"jdbc:odbc:yourdataresource" 中的 "yourdataresource" 是ODBC数据源的名称,user 和 password 分别是gbase 8a数据库的用户名和密码。通过 Class.forName() 加载 JDBC-ODBC桥的驱动程序,在 DriverManager.getConnection() 方法中传入连接字符串、用户名和密码来获取连接对象。 4. 进行数据库操作,使用JDBC标准的API进行数据库操作,例如: ``` Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM tableName"); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); //处理查询结果 } rs.close(); stmt.close(); conn.close(); ``` 以上就是使用JDBC-ODBC桥连接gbase 8a数据库的基本步骤,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值