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

2022-08-24 00:47:53 浏览数 (2)

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

一、Druid JDBC API

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

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

代码语言:javascript复制
<dependency>
  <groupId>org.apache.calcite.avatica</groupId>
  <artifactId>avatica-core</artifactId>
  <version>1.15.0</version>
</dependency>

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

代码语言:javascript复制
/**
 *  使用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

0 人点赞