pinot jdbc 连接池工具使用说明

apache pinot 是一个很不错高性能的实时分析工具,同时提供了sql 查询能力,官方的jdbc 就是基于rest 包装的sql 查询

目前的问题

官方是基于sql +rest api (java client) 进行的jdbc 驱动开发,对于一些不支持的特性直接会跑出异常,这些很容易造成
好多数据库连接池工具不能工作

  • 几个包含的配置
    事务隔离级别,自动提交,清理警告,事务提交
  • 解决方法
    从目前来说,要么不使用连接池,如果希望使用连接池工具方法就是自己修改下jdbc 驱动(当前自己调整一个连接池处理也行,但是不推荐)

修改说明

代码: pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/base/AbstractBaseConnection.java
参考修改

 
 @Override
  public void clearWarnings()
      throws SQLException {
  }
 
  @Override
  public void commit()
      throws SQLException {
  }
 
 
 @Override
  public boolean getAutoCommit()
      throws SQLException {
    return true;
  }
 
 @Override
  public int getTransactionIsolation()
      throws SQLException {
    return -1;
  }
 
  @Override
  public void setTransactionIsolation(int level)
      throws SQLException {
  }

数据库连接池参考链接

经过修改之后使用就比较简单了,只是使用标准的玩法就行了
Hikari 的

 
public  static  DataSource newDataSource2(){
    HikariConfig config = new HikariConfig();
    config.setDriverClassName("org.apache.pinot.client.PinotDriver");
    config.setJdbcUrl("jdbc:pinot://localhost:9000");
    config.setTransactionIsolation("TRANSACTION_READ_UNCOMMITTED");
    HikariDataSource hikariDataSource = new HikariDataSource(config);
    return hikariDataSource;
}

说明

pinot jdbc 实现的不是很好,没有很好的考虑社区周边的工具,dremio 以及其他的工具就比较好,很方便集成

参考资料

https://github.com/rongfengliang/pinot-jdbc-dbcp2-pool-test

posted on 2022-02-26 18:30  荣锋亮  阅读(220)  评论(0编辑  收藏  举报

导航