网站首页 > 技术文章 正文
简介
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检索数据——分组查询和排序查询
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 605℃几个Oracle空值处理函数 oracle处理null值的函数
- 597℃Oracle分析函数之Lag和Lead()使用
- 585℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 581℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 577℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 570℃【数据统计分析】详解Oracle分组函数之CUBE
- 557℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 550℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)