网站首页 > 技术文章 正文
简介
apache druid 中最原生的查询方式,是通过Http 查询。后来为了方便,加入了sql查询。sql查询支持大部分语法,但某些语法DataSketches 通过http可以直接查询,但sql无法查询。
本人的druid 版本 0.13.
Superset
由于原生查询语法比较复杂,通过Superset可以简化查询。
Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。
Superset 的前端主要用到了 React 和 NVD3/D3,而后端则基于 Python 的 Flask 框架和 Pandas、SQLAlchemy 等依赖库,主要提供了这几方面的功能:
- 集成数据查询功能,支持多种数据库,包括 MySQL、PostgresSQL、Oracle、SQL Server、SQLite、SparkSQL 等,并深度支持 Druid。
- 通过 NVD3/D3 预定义了多种可视化图表,满足大部分的数据展示功能。如果还有其他需求,也可以自开发更多的图表类型,或者嵌入其他的 JavaScript 图表库(如 HighCharts、ECharts)。
- 提供细粒度安全模型,可以在功能层面和数据层面进行访问控制。支持多种鉴权方式(如数据库、OpenID、LDAP、OAuth、REMOTE_USER 等)
Superset 安装很简单,可以通过docker直接安装。官网有详细资料。
使用Superset 查询 (原生查询语法)
实现分组求和的查询语法。
{
"queryType": "topN",
"dataSource": "wikipedia1",
"aggregations": [{
"fieldName": "added",
"fieldNames": ["added"],
"type": "floatSum",
"name": "SUM(added)"
}],
"granularity": "all",
"postAggregations": [],
"intervals": "1901-01-01T00:00:00+00:00/2101-01-01T00:00:00+00:00",
"threshold": 10000,
"metric": "SUM(added)",
"dimension": "page"
}
也可以直接请求查询接口 访问broker 节点
新版中可以直接通过控制台查询。
sql 查询
dsql
命令位于 bin/dsql
实现分组求和语法
SELECT sum(added) As number FROM wikipedia1 group by page
http sql
{
"query":"SELECT sum(added) As number FROM wikipedia1 group by page"
}
java 端sql查询
依赖
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-core</artifactId>
<version>1.10.0</version>
</dependency>
建立jdbc 连接
public Connection getConnection() {
try {
String url = "jdbc:avatica:remote:url=http://" + "broker:8082"+
"/druid/v2/sql/avatica/";LOGGER.info("url:{}", url);
Properties connectionProperties = new Properties();
// connectionProperties.setProperty("sqlTimeZone", ZoneId// .systemDefault().getId());
Connection connection = DriverManager.getConnection(url, connectionProperties);
return connection;
} catch (SQLException e) {
LOGGER.error("创建druid jdbc连接过程中出现异常:", e);
}
return null;
}
sql查询
sql语法与上面一致,直接通过jdbc连接查询即可。
总结
druid 原生支持json查询,后来为了更加方便扩展了sql查询,由于某些原因sql解析器,不支持DataSketches 等查询。个人在java sql查询基础上封装了一个工具类,放在gitee上,可以留言。
猜你喜欢
- 2024-11-16 性能优化技巧:后半有序分组计算&AI
- 2024-11-16 读SQL学习指南(第3版)笔记07_分组和子查询
- 2024-11-16 Oracle检索数据——分组查询和排序查询
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)