粗暴的JDBC"/>
ClickHouse简单粗暴的JDBC
不愧是战斗民族研发的,真的是简单粗暴。数据压缩比高,查询速度快,非常适合OLAP场景使用。
ClickHouse的优缺点就不说了,网上一查一大堆, 与各种数据库横向对比直接到官网上看吧,非常直观。(/)
接下来直接上Demo。先建立ClickHouse的连接及SQL。
ClickHouseConnection conn = null;public void getConnection() {String url = "jdbc:clickhouse://127.0.0.1:8123/test";try {ClickHouseProperties ckPop = new ClickHouseProperties();ckPop.setSocketTimeout(60000);ClickHouseDataSource dataSource = new ClickHouseDataSource(url, ckProperties);conn = dataSource.getConnection();String sql = "insert into t_a_info (a1,a2,a3,a4,a5,a6,a7,a8,a9) values (?,?,?,?,?,?,?,?,?)";ps = conn.prepareStatement(sql);conn.setAutoCommit(false);} catch (Exception e) {e.getMessage();}}
填充入库数据,并提交批处理。其中“1,2,3,4,5.....”代表插入数据参数的位置。addTestInfo()可以进行多次调用。
PreparedStatement ps = null;private void addTestInfo(){try{ps.setString(1,"b1");ps.setString(2,"b2");ps.setString(3,"b3");ps.setString(4,"b4");ps.setString(5,"b5");ps.setString(6,"b6");ps.setString(7,"b7");ps.setString(8,"b8");ps.setString(9,"b9");ps.addBatch();}catch(Exception e)e.getMessage();}
程序入口。可以根据自己的需求,选择线程(记得加锁),Timer,或者其他方式来运行。
public void run() {try {ps.executeBatch();ps.clearBatch();} catch (Exception e) {e.getMessage();}}}
自己简单测试了一下,8G内存,i5的U,插入速度4w/s,单机版本。插入过亿数据后进行查询,基本秒出结果。
更多推荐
ClickHouse简单粗暴的JDBC
发布评论