Lanson

V1

2022/12/13阅读:22主题:丘比特忙

大数据Apache Druid(八):Druid JDBC API和其他OLAP分析框架对比

Druid JDBC API和其他OLAP分析框架对比

一、Druid JDBC API

在大数据处理场景中,我们可以编写接口来读取Druid中的数据进行聚合操作,以供可视化展示使用。下面使用jdbc的方式来读取Druid中的数据。

1、首先需要在maven项目中导入Druid的依赖

<dependency>
  <groupId>org.apache.calcite.avatica</groupId>
  <artifactId>avatica-core</artifactId>
  <version>1.15.0</version>
</dependency>

2、编写代码读取Druid中的数据

/**
 *  使用JDBC的方式连接Druid
 */

public class ReadDruidData {
    public static void main(String[] args) throws SQLException {
        //1.连接Druid
        Properties props = new Properties();
        Connection conn = DriverManager.getConnection("jdbc:avatica:remote:url=http://node5:8888/druid/v2/sql/avatica/", props);

        //2.准备查询语句
        PreparedStatement pst = conn.prepareStatement("select loc,item,sum(amount) as total_amount from \"druid-topic\" group by loc,item");

        //3.执行查询获取结果
        ResultSet rst = pst.executeQuery();

        while(rst.next()){
            String loc = rst.getString("loc");
            String item = rst.getString("item");
            Double totalAmount = rst.getDouble("total_amount");
            System.out.println("loc = "+loc +",item = "+item+",totalAmount = "+totalAmount);
        }

        //4.关闭连接
        rst.close();
        pst.close();
        conn.close();
    }
}

二、Druid与其他OLAP分析框架对比

对比项 Druid clickhouse Kylin HBase Impala kudu presto
聚合亚秒级响应 Y Y Y N N N N
SQL支持 Y Y Y N Y N Y
离线 Y Y Y Y Y Y Y
实时 Y Y Y N N N N
精准去重 N Y Y - Y - Y
多表join Y(不建议) Y Y N Y N Y
JDBC API Y Y Y Y Y Y Y
预聚合 Y Y N N N N N
预计算 N N Y N N N N
基于内存计算 N N N N Y N Y
HDFS存储 Y N(部分引擎支持) Y Y Y N Y
支持更新 N

(支持Segment批量覆盖更新)
Y N Y N(Kudu 引擎支持) Y N

分类:

后端

标签:

大数据

作者介绍

Lanson
V1

CSDN大数据领域博客专家