GBase 8a 内存需求评估(一)

复杂应用的内存配置建议

从以下几个方面考量数据库运算过程中单个GBase集群节点(gnode)各算子的内存需求(假定10节点集群):

参与运算的数据量

以一个2亿行的表与3千万行的表进行join运算,并对join运算结果进行group by聚集,最终得到的结果行数为1.5亿行的场景为例,参与运算的数据量为2.3亿行,超过100GB(不含不参与运算的字段),得到的结果集也超过80GB;对于10节点集群,每节点承载的运算数据量超过10GB。

sql执行过程中的中间结果集大小

如两表join生成的hash table的尺寸大小; sql执行过程中生成的临时表的大小;这些中间结果集的大小通常不会小于参与运算的原始数据量。上例场景,假设每个gnode的中间结果集大小也为10GB。

sql并发数

客户的业务通常都要求数据库支撑5~100个不等的并发。

综上,单个集群节点在上述场景下的内存需求为10~20GB,在10个类似sql场景并发,单个gnode的数据库运算内存需求为100GB以上,此外还应为gnode分配40GB以上的内存用于数据缓存。

按照数据库使用操作系统总物理内存60~80%的比例,在上述场景下,建议单服务器的总物理内存为140G/0.8=175G以上。

按照项目工程经验,复杂应用中多以hash join、group by、order by等数据库运算为主;在gnode服务器内存配置为128G~256G,混合型(包含多种数据库运算)复杂应用中, GBase集群的算子buffer大小可如下设置(考虑并发场景,且并发数在10~20之间):

gbase_buffer_distgrby=2G

gbase_buffer_hgrby=4G

gbase_buffer_hj=4G

gbase_buffer_sj=2G

gbase_buffer_sort=4G

gbase_buffer_result=2G

gbase_buffer_rowset=2G

考虑并发场景情况下,还需考虑GBase集群的gbase_parallel_degree、gbase_parallel_max_thread_in_pool参数配置。

  • 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、付费专栏及课程。

余额充值