- Druid提供了JDBC接口,JavaWeb项目可以直接使用 JDBC 连接Druid进行实时数据分析。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d2e465382329831124eee00665a8365e.png)
- 需求:获取 metrics-kafka 数据源中,不同用户的访问次数
- 实现步骤:
- 1、创建 druid_jdbc Maven模块
- 2、导入依赖
- 3、编写JDBC代码连接Druid获取数据
- 加载Druid JDBC驱动
- 获取Druid JDBC连接
- 构建SQL语句
- 构建Statement,执行SQL获取结果集
- 关闭Druid连接
- 具体实现:
- 1、导入依赖
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica</artifactId>
<version>1.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-core</artifactId>
</dependency>
public class Main {
public static void main(String[] args) throws Exception {
Class.forName("org.apache.calcite.avatica.remote.Driver");
Connection connection = DriverManager.getConnection("jdbc:avatica:remote:url=http://node3:8888/druid/v2/sql/avatica/", new Properties());
String sql = "SELECT user, sum(views) as view_count FROM \"metrics-kafka\" GROUP BY 1 ORDER BY 1";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
while(resultSet.next()) {
String user = resultSet.getString("user");
long view_count = resultSet.getLong("view_count");
System.out.println(user + " -> " + view_count);
}
resultSet.close();
statement.close();
connection.close();
}
}