首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

提升50%+!Presto如何提升Hudi表查询性能?

分享一篇关于使用Hudi Clustering来优化Presto查询性能的talk talk主要分为如下几个部分 •演讲者背景介绍•Apache Hudi介绍•数据湖演进和例说明•Hudi Clustering...由于Uber内部大规模使用了Presto查询引擎,下面重点介绍Hudi和PrestoDB的集成细节。...介绍完Hudi和PrestoDB集成现状后,来看看使用案例和场景,Hudi与Presto的集成是如何降低成本和提高查询性能的 大数据场景,对于写入(摄取)和查询引擎的优化思路通常不同,可以从两个维度进行对比...有没有一种方式可以兼顾写入和查询呢,答案是肯定的,引入Clustering,对于Clustering,说明如下。...关于通过Clustering加速Presto的查询性能上面已经讲述完了,当然对于Clustering还有后续的规划:落地更多的例;将Clustering作为一个更轻量级的服务调用;分优先级及分层(如多个

1.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

医疗在线OLAP场景基于Apache Hudi 模式演变的改造与应用

优化的情况,由于默认的布隆索引有如下行为: 1. insert 操作的数据,每次写入提交后能够查询到; 2. update,delete操作的数据必须在发生数据合并后才能读取到; 3. insert...由于Presto分为两个分支(Trino和PrestoDB),其中PrestoDB的正式版本已经支持快照查询模式,而Trino主线还不存在这个功能,所以优先考虑在PrestoDB上实现,我们基于Trino...Trino对Hudi支持的情况 Trino版本主线分支无法快照模式查询。Hudi连接器最终于22年9月28日合入主线,仍没有快照查询的功能。...改造方案 版本 • Hudi: 0.12.1 • Presto: 0.275 该模块的设计如下 读优化 Presto 会使用它自己优化的方式读parquet文件。...但由于Trino社区更加活跃,以前的很多功能基于Trino开发,下一步计划改造Trino,使其完整支持快照读与两种查询模式的schema完整演变。

1K10

一文说清楚Mysql Innodb的B+树索引原理及其推理过程

估计你猜到答案了,排序虽然影响插入的性能,但会增加查询的性能,我们来思考一,当我们执行如下的SQL时,Mysql的执行过程是怎样的呢?...问题二:对于上诉查询语句一共有几次IO,有没有什么优化办法? 可以算出来总共去磁盘取数据取了6次,所以有6次IO,有没有什么优化办法呢?...问题三:是否还能再优化吗?...现在,我们解决了多次磁盘IO的问题,但是我们取9条数据到内存里面去,我还是要对内存中这9条数据进行最少6次是否等于5的判断,我才能找到a=5的那条数据,那么有没有什么更好的优化办法呢?...还有没有什么办法优化呢?我们来想象一,给你一本1000页的书,需要你找到第759页,你会怎么找?

1.2K20

Presto在滴滴的探索与实践

而在19年初(0.215版本是社区分家版本),Presto社区分家,分为两个项目,叫PrestoDB和PrestoSQL,两者都成立了自己的基金会。...我们决定升级到PrestoSQL 最新版本(340版本)原因是: PrestoSQL社区活跃度更高,PR和用户问题能够及时回复 PrestoDB主要主力还是Facebook维护,以其内部需求为主 PrestoDB...同时提供多表同时鉴权的能力 用户指定用户名做鉴权和认证,大账号用于读写HDFS数据 支持视图、表别名鉴权 语法拓展 支持add partition 支持数字开头的表 支持数字开头的字段 特性增强 insert数据时,将插入数据的总行数写入...且在任务数逐渐增长的情况,查询耗时保证稳定不变。 而高性能集群,我们做了很多稳定性和性能优化工作,保证了平均查询时间小于2S。如下图所示: 6....本文作者 滴滴Presto引擎负责人,负责带领引擎团队深入Presto内核,解决在海量数据规模Presto遇到的稳定性、性能、成本方面的问题。搜索引擎及OLAP引擎爱好者。

1.5K40

Android 黑科技 |Gradle Plugin使用场景

Matrix的函数耗时呢,其实我反编译了我们的项目,发现在所有的方法头和方法尾都被插入了监控耗时,但是matrix毕竟是一个专业的做apm的项目,所以他在插入代码的时候会做一些类类型的判断逻辑,比如application...这个当你的项目足够大的情况,耗时会是指数型上升。 之后有个老哥给阿里的ARouter提了个MR,以及如何优化初始化过程。将这个搜索包名的过程从运行时调整到了编译时。...Dex包体积优化 如果各位最近有去过面试的话,相信这个问题或多或少可能被问到过,本文切入的思路可能会有些不同,我们讲dex包体积优化面的。...也是做包体积优化的。 但是这个仓库和上面的还是有很大差异的,上面的大部分是基于Transform去写的,而这个仓库则是添加了个task 任务,去做资源文件的混淆。...总结 不知道各位老哥看了上面这些项目之后有没有一些自己的看法,可以一起讨论一,一起探讨宇宙的边界。

1.3K41

Presto 分布式SQL查询引擎及原理分析

Spark Input也直接依赖Hadoop InputFormat API,导致SparkSQL在运行时,并不能把 SQL 优化细节传导到 InputFormat。...Presto 弃 Hadoop InputFormat,但采用类似的数据分区技术,并且可以把 SQL 经过解析后,把Where 条件生成 TupleDomain 传递给 Connector。...Presto 发行版 Presto 到目前为止 Presto 有两大分支: PrestoDB 和 PrestoSQL。两个发行版都满足基本功能,只是在技术细节有细微差别。...PrestoDB: 根红苗正,有大厂支持; PrestoSQL: Prestodb 之父的原班人马支持,社区更活跃; 在贸易战战火未消退的当下,也有很多企业关注License,两者都是 Apache V2...但是PrestoDB由 Facebook、Twitter等共同成立的基金会控制,PrestoSQL 是由新成立的Presto开源基金会管理,因此 PrestoSQL 也许更能符合国内企业选择。

4.6K21

来点小技巧,将buffer gets降到最低!

这两天在准备写一个关于降低buffer gets进行sql优化的文章时,无意中发现一篇熊军老师2012年写的文章:《Oracle Index Internals》,就先学习了一。...更巧的是,本文下面的内容,也与文章的的这一页有关: 这些描述都是比较准确的,大家如果有兴趣都可以自己动手操作一,相信都会得到同样的结论。...---- 今天我们主要研究最后一种情况,也就是2个逻辑读的情况,有没有办法让它再减少一个逻辑读?...一般来说这种sql没人再去优化了,但是这个sql执行次数多,如果能把buffer gets降低1个,基本上对CPU的消耗也会降低一半,在这里还是值得研究一的。...总结: 小表也需要索引; 小表的索引,经过上面的优化后,能减少一个buffer gets。 你们发现没有,包括这篇文章在内,老虎刘有很多SQL优化都用到了rownum,相信能对大家有所帮助。

77420

动态可视化十大排序算法之插入排序

老规矩,先简单介绍插入排序的思想,然后看下插入排序算法执行的每一步。...如果觉得不够直观的话,可以观看下面的视频。 代码实现 #!...对 个数据排序所需的时间 可以看到,使用二分查找进行优化后,程序的运行时间可以降低一半左右。虽然没有办法改变插入排序的时间复杂度,但已经将效率提升了一倍。...复杂度分析 无论是原始的插入排序,还是使用二分查找进行优化,时间复杂度都是: ,不知道有没有人会疑惑,那二分查找到底优化了哪里呢?因为找到插入位置后,搬移元素也需要 的时间复杂度。...其实,对于插入排序的优化还有一种方法,叫做希尔排序。下篇文章我们一起来学习

61110

webpack构建优化之减少发布文件

,总会引起其他页面文件的hash改变,导致发布文件过多,提心吊胆的发布,而且文件hash的频繁变动,也没有办法很好利用浏览器缓存。...那么有没有办法减少文件的修改呢? 下面以一个简单的例子来分析。 项目简介 项目的目录结构如图: ? , 整个项目采用react + webpack架构 , 页面文件放在pages下面。...下面开始分析优化带来的影响。 使用chunkhash代替hash chunkhash是根据每个chunk内容计算出的hash值。只要chunk不变,hash就不变。...从截图中可以看出,模块id都是数字,且由于插入进来a.js这个模块,使得原本分配好的模块id,重新按顺序分配。 模块id的变化,引起了文件hash的变化。...解决办法: new webpack.NamedChunksPlugin(), 使用chunk的名字来作为chunk的id, 构建结果为: ? 到这里优化就已经完成了。

61810

希尔排序,冷门但是有趣的排序算法

今天我们继续来聊《算法》第四版这本书,在上一篇文章当中我们复习了一三种简单的 O(n^2) 的排序算法,今天我们来稍微进阶一,来看看稍微更复杂一些的排序算法。...今天选中的算法是希尔排序,它本质上是插入排序的优化。是简单的插入排序改进之后的版本,也成为缩小增量排序。也是第一个突破 O(n^2) 复杂度的算法。...为了更好地理解它和插入排序之间的差异,我们再来复习一插入排序: void insert_sort(vector& nums) { int n = nums.size(); for...希尔排序正是针对这个问题的优化有没有办法能够让元素能够尽量快地移动,从而降低运行的复杂度呢? 希尔排序的做法是先将元素进行分组,每次先在组内进行排序,尽量让元素可以在早期尽量多地移动。...比如还是上面的元素,我们第一次选择分组的跨度是5,一开始的跨度是数组长度的一半。我们可以参考上图,相同颜色的元素为一组。以其中的8和3为例,我们在组内进行插入排序之后,会使得3和8调换位置。

35930

LeetCode42题,单调栈、构造法、two pointers,这道Hard题的解法这么多?

也就是说我们没办法直接求到结果,而需要对这些部分分别求水的体积,最后相加。 但是我们并不知道水坝中的水会被分成几个部分,所以直接求是不行的,那么有没有什么办法可以确定我们找到了一个完整的部分呢?...这个问题比较棘手,我能想到最好的办法是将后面的部分翻转过来重复执行一次同样的操作。这是实现最简单代码最小的方法了。...似乎这种方法和上面的一样,但其实不然,仔细分析可以发现一个优化的点。 在之前的方法当中,我们并不确定我们从左往右一定可以找到比目前最大值更大的值。...当然是可以的,难点只有一个,就是我们需要知道当前的水平面的高度,这个是核心问题。我们之前搞那么多高度比来比去本质也是为了求水平面的高度。 那么有没有什么办法可以直接求到水平面的高度呢?...那么显然单调栈就非常合适。我们在读入C的高度的时候,先弹出B的下标,我们计算它和C之间的水域面积,再弹出A,我们同样计算面积,一直到栈空或者栈顶的元素大于C即可,这时候我们插入C。

32910

索引使用策略及优化

语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。...在这种成为“坑”的列值比较少的情况,可以考虑“IN”来填补这个“坑”从而形成最左前缀: ?...显然选择性太低,选择性很好,但是first_name和last_name加起来长度为30,有没有兼顾长度和选择性的办法?...InnoDB的主键选择与插入优化 在使用InnoDB存储引擎时,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键。...不论支持哪种论点,大多数论据都是业务层面的。如果从数据库索引优化角度看,使用InnoDB引擎而不使用自增主键绝对是一个糟糕的主意。

58121

十面阿里,屌丝逆袭阿里之路

有没有办法控制不触发回滚? 如果想在某个Bean生成并装配完毕后执行自己的逻辑,可以什么方式实现? SpringBoot没有放到web容器里为什么能跑HTTP服务?...StackOverFlow异常有没有遇到过?一般你猜测会在什么情况被触发?如何指定一个线程的堆栈大小?一般你们写多少?...如果想一直看日志的持续输出,什么命令? 如果日志一边输出,一边想实时看到有没有某个关键字应该怎么弄? grep如果忽略大小写应该怎么弄? 正则表达式呢? vim往下一行是什么键?...-- 偏题 有没有做过Linux系统参数方面的优化,大概优化过什么? 系统参数里面有个叫做backlog的可以用来干什么? 查看网络连接发现好多TIMEWAIT 可能是什么原因?...你会选择什么样的方式来减少这些TIMEWAIT 可否介绍一TCP三次握手的过程,如果现在有个网络程序,你第三方的library来发送数据,你怀疑这个library发送的数据有问题,那么怎么来验证?

75330

十面阿里,菜鸟,天猫,蚂蚁金服题目总汇

有没有办法控制不触发回滚? 4.如果想在某个Bean生成并装配完毕后执行自己的逻辑,可以什么方式实现? 5.SpringBoot没有放到web容器里为什么能跑HTTP服务?...MySQL 1.如果有很多数据插入MYSQL 你会选择什么方式? 2.如果查询很慢,你会想到的第一个方式是什么?索引是干嘛的?...9.StackOverFlow异常有没有遇到过?一般你猜测会在什么情况被触发?如何指定一个线程的堆栈大小?一般你们写多少? 把元素分成两部分,对每一个部分采用递归的归并排序。...5.如果有个文本文件,按空格作为列的分隔符,如果想统计第三列里面的每个单词的出现次数应该怎么弄? 6.如果把上面的出现次数排个序应该怎么弄?...-- 偏题 有没有做过Linux系统参数方面的优化,大概优化过什么? 13.系统参数里面有个叫做backlog的可以用来干什么? 14.查看网络连接发现好多TIMEWAIT 可能是什么原因?

75320

腾讯 PB 级大数据计算如何做到秒级?

的查询内存使用统计是相对比较粗粒度的,这可能会导致原生的 LowMemoryKillerPolicy 在某些情况下不能正确地 Kill 查询,天穹 Presto 在线上运行的过程中就遇到过类似的情况:Worker 堆内存已经接近满了...Full GC Query Killer 相关的代码也将在近期贡献至 PrestoDB 社区,欢迎大家关注。...3.3 大文件 ORC 统计信息读取优化 Presto 在读取 ORC 文件时,会先读取文件的 Stripe 统计信息,用于优化 ORC 的数据读取,但是如果 ORC 文件比较大,同时文件数量又比较多的情况...,目前 PrestoDB 和 Alluxio 社区也在持续推进 Local Cache 的方案,相信后续会越来越完善。...目前我们通过天穹 SuperSQL 来实现 Count Distinct 单列/多列到 Grouping Sets 的改写,无需改动 Presto 的代码,经过改写优化后,在某些用户场景,能获得2 ~

1.5K21

天穹SuperSQL如何把腾讯 PB 级大数据计算做到秒级?

的查询内存使用统计是相对比较粗粒度的,这可能会导致原生的LowMemoryKillerPolicy在某些情况下不能正确地Kill查询,天穹Presto在线上运行的过程中就遇到过类似的情况:Worker堆内存已经接近满了...Full GC Query Killer相关的代码也将在近期贡献至PrestoDB社区,欢迎大家关注。...3.3 大文件ORC统计信息读取优化 Presto在读取ORC文件时,会先读取文件的Stripe统计信息,用于优化ORC的数据读取,但是如果ORC文件比较大,同时文件数量又比较多的情况,StripeStatistics...,目前PrestoDB和Alluxio社区也在持续推进Local Cache的方案,相信后续会越来越完善。...目前我们通过天穹SuperSQL来实现Count Distinct单列/多列到Grouping Sets的改写,无需改动Presto的代码,经过改写优化后,在某些用户场景,能获得2~3倍的查询性能提升

1.8K41
领券