Apache Zeppelin系列教程第九篇——Zeppelin NoteBook数据缓存

简介: Apache Zeppelin系列教程第九篇——Zeppelin NoteBook数据缓存

背景

在使用Zeppelin JDBC Intercepter 对于Hive 数据进行查询过程中,如果遇到非常复杂的sql,查询效率是非常慢

比如:

select dt,count(*) from table group by dt

做过数据开发的同学都知道,在hive sql查询过程中,hive 会被转换为MapReduce,但是对于不是所有sql 都会有mapper和reducer 的过程,如果只是简单的查询不会涉及reducer,只有统计相关的查询会涉及到reducer,而其中的shuffle 和 reducer 是非常耗时

如果有有这样一些sql

sql1:

select * from ( select name,count(*) from table0 group name ) t where name=’xiaohong’

sql2:

select * from ( select name,count(*) from table0 group name ) t where name=’xiaoli’

我们能看到sql1 和sql2 只是修改了一下查询条件,但是如果是单独执行,则需要对进行两次完整的查询,比如说:sql1需要花费10分钟,同样sql2也需要再花费10分钟

而adhoc 场景中,这种场景非常常见,只是简单修改一个sql 的查询条件就需要走多次一模一样的流程。

那我们有没有什么办法去优化下?

优化思路分析

无论是hive sql 还是spark sql,只要是复杂的sql,难免会涉及到shuffle或者reducer 过程,这两个过程恰恰是整个过程中非常耗时的过程。那我们现在分析哪些大数据的查询sql会导致查询非常慢呢?

(1)sql 里面含有group by、distinct

(2)sql含有order by,order by 是要根据数据全局排序

(3)含有count、join 这种需要统计和关联其他表数据的sql

上述sql 在大数据查询是都是比较慢的,相教育一些只是简单的过滤查询场景

优化思路流程:

当然最后每天晚上要清除一下当天产生的所有临时表,避免表数据过多

非常遗憾的是Zeppelin Committer 认为这个功能可能会影响到项目的整体架构,而不进行合并,所以我在此进行阐述,详细设计和pr参考:https://github.com/apache/zeppelin/pull/4611


相关文章
|
9天前
|
关系型数据库 Apache 流计算
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
本文介绍了如何将数据从 OceanBase 迁移到阿里云数据库 SelectDB 内核版 Apache Doris。提供 3 种数据同步方法 1. 使用 DataX,下载 DataX 并编写配置文件,通过 OceanBaseReader 和 DorisWriter 进行数据迁移。 2. 利用 Apache Doris 的 Catalog功 能,将 OceanBase 表映射到 Doris 并插入数据。 3. 通过Flink CDC,设置 OceanBase 环境,配置 Flink 连接器,实现实时数据同步。
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
|
2月前
|
存储 缓存 分布式计算
Apache Hudi数据跳过技术加速查询高达50倍
Apache Hudi数据跳过技术加速查询高达50倍
38 2
|
2月前
|
分布式计算 测试技术 Apache
如何不加锁地将数据并发写入Apache Hudi?
如何不加锁地将数据并发写入Apache Hudi?
32 0
|
5月前
|
存储 缓存 分布式计算
亿级数据如何分钟级别写入缓存?
亿级数据如何分钟级别写入缓存?
30 0
|
6天前
|
存储 缓存 NoSQL
Redis入门到通关之Redis缓存数据实战
Redis入门到通关之Redis缓存数据实战
15 0
|
2月前
|
缓存 监控 负载均衡
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)
30 2
|
2月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
163 1
|
2月前
|
缓存 NoSQL Java
【九】springboot整合redis实现启动服务时热点数据保存在全局和缓存
【九】springboot整合redis实现启动服务时热点数据保存在全局和缓存
45 0
|
2月前
|
Apache 开发者
揭秘!Apache Hudi社区发展数据盘点
揭秘!Apache Hudi社区发展数据盘点
32 0
|
2月前
|
SQL 分布式计算 Apache
生态 | Apache Hudi集成Apache Zeppelin
生态 | Apache Hudi集成Apache Zeppelin
33 0

推荐镜像

更多