品牌 资讯 搭配 材料 时尚 热点 行业 首饰 玉石 行情

焦点要闻:提升 Apache Hudi Upsert 性能的三个建议

2023-05-21 08:41:08 来源:博客园

Apache Hudi 社区一直在快速发展,各公司正在寻找方法来利用其强大的功能来有效地摄取和管理大规模数据集。 每周社区都会收到一些常见问题,最常见的问题与 Hudi 如何执行更新插入有关,以确保以低延迟访问最新数据。

选择合适的存储表类型

快速更新插入的主要考虑因素之一是选择正确的存储表类型。 Hudi 支持两种不同的存储表类型——Copy-On-Write (COW) 和 Merge-On-Read (MOR)。 由于处理数据更新的方法不同,每种表类型都会对 upsert 性能产生不同的影响。

COW表

与 MOR 表相比,COW 表的操作更简单,因为所有更新都写入 Apache Parquet 格式的基础文件。不需要运行像压缩这样的单独服务来管理任何日志文件以提高读取或存储效率。COW通过完全重写文件以生成新版本的基本文件来处理更新。 因此 COW 表表现出更高的写放大,因为创建新的基本文件版本会进行同步合并。 然而 COW 表的一个关键优势是它们的零读取放大,因为所有数据都在基础文件中可用,随时可以读取。 查询所需的磁盘读取很少,因为它们不需要读取多个位置或合并数据。


(资料图片仅供参考)

MOR表

与 COW 表相比,MOR 表具有更高的操作复杂性。 MOR 不会重写整个文件,而是将更新写入单独的日志文件,然后这些日志文件稍后与基本文件合并为一个新的文件版本,这是通过压缩服务完成的。 需要压缩来限制日志文件的增长,这样查询性能就不会下降并优化存储。

直接写入日志文件避免了多次重写整个基本文件,从而降低了写入放大——如果正在处理流数据,这种差异就会变得很明显,也就是说 MOR 表进行了写入优化。 但是由于需要读取基本文件和日志文件并动态合并数据,MOR 表在压缩之间对快照查询有更高的读取放大。

COW 和 MOR 表的注意事项

如果更新插入比率很高并且对摄取延迟很敏感,那么更适合使用 MOR 表。 如流数据源——通常会希望更快地根据洞察采取行动,以便为用户提供相关和及时的信息。 但是如果工作负载更多地基于插入,并且可以容忍合理的摄取延迟,那么更适合使用 COW 表。

根据记录键选择正确的索引类型

通过利用索引,Hudi 在更新插入期间查找记录时避免全表扫描,这比较耗费时间和资源。 Hudi 的索引层将记录键映射到相应的文件位置,索引层是可插拔的,有多种索引类型可供选择。 需要考虑的是索引延迟取决于多种因素,例如正在摄取多少数据、表中有多少数据、是否有分区表或非分区表、选择的索引类型、工作负载的更新程度和记录键的时间特性。 根据所需的性能和唯一性保证,Hudi 提供了不同的开箱即用的索引策略,可以分为全局或非全局索引。

全局与非全局索引

非全局索引:Hudi 确保一对分区路径和记录键在整个表中是唯一的。 索引查找性能与正在摄取的传入记录之间的匹配分区的大小成正比。 ‍

全局索引:该索引策略在表的所有分区中强制执行键的唯一性,即保证对于给定的记录键,表中恰好存在一条记录。 全局索引提供了更强的保证,但是更新/删除成本随着表的大小而增长。

由于唯一性保证的差异,全局与非全局之间的主要考虑因素之一与索引查找延迟有关:非全局索引仅查找匹配的分区:例如如果有 100 个分区并且传入的批处理仅包含最后 2 个分区的记录,则只会查找属于这 2 个分区的文件组。 对于大规模的更新插入工作负载可能需要考虑非全局索引,例如非全局布隆、非全局简单索引和桶索引。全局索引查看所有分区中的所有文件组:例如如果有 100 个分区并且传入的记录批次中有最后 2 个分区的记录,则将查找所有 100 个分区中的所有文件组(因为 Hudi 必须保证整个表中只有一个版本的记录键)。 这会增加大规模更新插入工作负载的延迟。

Hudi 提供开箱即用的索引类型

布隆索引:这是一种索引策略,可以有效地管理文件组中的更新插入和记录查找。 该索引利用布隆过滤器,这是一种概率数据结构,有助于确定给定记录键是否存在于特定文件组中。适用于全局和非全局索引。

简单索引:这是一种索引策略,它提供了一种将记录键映射到其相应文件组的直接方法。它针对从存储表中提取的键执行传入更新/删除记录的连接。适用于全局和非全局索引。

HBase索引:该索引策略使用HBase存储索引来映射记录键及其在文件组中对应的文件位置。 适用于全局索引。

桶索引:这是一种索引策略,它使用散列将记录路由到静态分配的文件组。 适用于非全局索引。

一致性哈希桶索引:这是一种索引策略,是桶索引的高级版本。 虽然桶索引需要为每个分区预先分配文件组,但使用一致的哈希索引可以根据负载动态地增加或收缩每个分区的文件组。 适用于非全局索引。

更新密集型工作负载要考虑的索引类型Bloom 索引:如果记录键按某些标准(例如基于时间戳)排序并且更新与最近的数据集相关,那么这对于更新繁重的工作负载是一个很好的索引策略。 例如如果记录键是根据时间戳排序的,并且我们在最近几天更新数据。Bloom 索引用例:假设每 10 分钟就会摄取一批新数据。 我们假设新批次包含最近 3 天内的数据更新。 Hudi 根据布隆索引,识别出文件组中的候选更新记录,并从基础文件页脚中获取布隆过滤器,进一步裁剪文件组中每个文件中要查找的记录。 如果没有找到记录则被视为插入。‍简单索引:如果偶尔更新整个表范围内的文件并且记录键是随机的,即不基于时间戳,那么这对于更新繁重的工作负载是一个很好的索引策略。简单索引用例:如果有一个维度表,其中记录键是旅行 ID(随机 UUID)并且分区是按城市 ID。 如果我们要更新分布在一系列城市的 10000 条行程,Hudi 首先根据传入的城市 ID 识别相关分区。 Hudi 通过执行连接有效地找到包含记录的文件。桶索引:如果每个分区存储的数据总量在所有分区中都相似,这是一个很好的索引策略。 每个分区的桶(或文件组)数量必须预先为给定的表定义。更多细节参考如下文档。桶索引用例:当定义桶数量后,Hudi会对记录键应用一个哈希函数来将记录均匀地分布在桶中。 哈希函数将每个记录 ID 分配给一个桶号,当更新时 Hudi 将哈希函数应用于记录 ID 并确定相应的桶,然后 Hudi 将写入委托给相应的桶(文件组)。分区路径粒度

分区是一种技术,用于根据数据集中的某些属性或列将大型数据集拆分为较小的、易于管理的部分。 这可以大大提高查询性能,因为在查询期间只需要扫描数据的一个子集。 然而分区的有效性在很大程度上取决于分区的粒度。

一个常见的误区是将分区设置得过于精细,例如按 //划分分区。 根据工作负载每小时粒度的数据可能不足,从而导致许多只有几千字节的小文件。 如果小文件越多,磁盘寻道成本就越高,查询性能就会下降。 其次在摄取方面,小文件也会影响索引查找,因为修剪不相关文件需要更长的时间。 根据正在使用的索引策略,这可能会影响写入性能。因此建议用户始终从较粗糙的分区方案开始,如 /以避免小文件的问题,如果仍然觉得需要粒度分区,可以根据查询模式重新评估分区方案和/或可以潜在地利用Clustering服务来平衡摄取和查询性能。

标签:

(责任编辑:)

相关文章

焦点要闻:提升 Apache Hudi Upsert 性能的三个建议

​ApacheHudi社区一直在快速发展,各公司正在寻找方法来利用其强大的功能来有效地摄取和管理大规模数据集。每

2023-05-21 08:41:08

朱自清的匆匆写的是什么意思_朱自清的匆的原文|全球最新

​1、《匆匆》是现代著名作家朱自清的一篇著名散文。文章紧扣“匆匆”二字,细腻地描绘了时光流逝的痕迹,表

2023-05-21 07:12:05

全球信息:恋爱中的道德要求和道德规范_恋爱中的道德规范包括哪些

​1、恋爱中的道德规范主要有,尊重人格平等,自觉承担责任,文明相亲相爱。2、尊重人格平等,恋人间彼此尊重

2023-05-21 06:03:17

世界滚动:中国谚语故事_谚语故事

​1、要想身体好,吃饭不过饱。2、宁叫嘴受穷,莫教病缠身。3、运动运动,百病难碰。4、有钱难买老来瘦。5、

2023-05-21 02:58:29

焦点精选!杨紫待播剧520物料,《要久久爱》上演滑冰,《长相思》偷偷过节

​520这一天,众多的待播剧都公布了节日海报,而要想从中脱颖而出,既需要有新意的突出主题,又需要演员之间

2023-05-21 00:16:48

元宵节是法定节假日么_元宵节会放假吗

​元宵节是法定节假日么,元宵节会放假吗很多人还不知道,现在让我们一起来看看吧!1、元宵节不是国定假日。

2023-05-20 22:01:18

招联好期贷借款逾期26天延迟还款影响征信吗

​网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后

2023-05-20 20:52:39

头臀长与孕周对照表图_头臀长与孕周

​1、你可以计算出预期的交货日期。2、如果绝经时间长于怀孕的月份,可以在观察一周后复查b超。3、如果宝宝发

2023-05-20 20:05:09

俄副外长:西方国家向乌克兰提供F-16战机将为其自身带来巨大风险_当前关注

​美国白宫高级官员19日透露,美国总统约瑟夫·拜登告诉七国集团领导人,美方将支持向乌克兰提供美制F-16等先

2023-05-20 19:12:44

B站CEO陈睿:年轻人爱学习 超8成985、211学生是B站用户 即时看

​B站CEO陈睿:年轻人爱学习超8成985、211学生是B站用户快科技5月20日消息,在上海科技传播大会上,B站CEO陈

2023-05-20 18:06:09

【天天快播报】工银如意货币基金等产品增聘基金经理

​证券时报券中社讯,5月20日工银如意货币基金、工银现金货币基金等产品公告称,增聘郝瑞为新任基金经理。郝

2023-05-20 16:44:23

起诉!起诉!300亿巨头又出大事

​中国基金报米洛  股东纠葛之际,中炬高新两名“土生土长”的高管被起诉。  5月19日晚间,中炬高新发布

2023-05-20 15:52:26

世界最资讯丨三大工人运动失败的原因_三大工人运动

​1、①三次工人运动爆发的时间及其名称:19世纪三四十年代,法国里昂丝织工人两次武装起义;英国宪章运动;

2023-05-20 14:39:38

万达回应裁员传闻:消息不实,确有优化,有部门人员还在增加

​封面新闻记者付文超近日,有消息称万达集团大规模裁员。5月20日,万达集团在官网发布声明称,网传万达大规

2023-05-20 13:42:57

世界热点评!打死一只蚊子会来更多的蚊子吗 没打死的蚊子会记仇吗

​现在夏天很容易出现蚊虫叮咬的情况,而蚊子出没的地方是很多人都讨厌的存在,看到蚊子第一时间都会去打死。

2023-05-20 12:16:19

对乌军援预算吃紧 美国防部想改账_世界热消息

​新华社北京5月19日电美国五角大楼发言人萨布丽娜·辛格18日承认,已发现美国对乌克兰军事援助存在装备估值

2023-05-20 11:36:05

关于天舟货运飞船的“专有名词”你了解多少?

​不久前,天舟六号货运飞船成功发射,给“天宫”送去了满满的物资。关于天舟货运飞船的“专有名词”你了解多

2023-05-20 10:48:13

《股东来了》2023投资者权益知识竞赛甘肃片区启动仪式顺利举行

​5月18日,由中国证监会投资者保护局指导,甘肃证监局、中证中小投资者服务中心联合主办,华龙证券股份有限

2023-05-20 09:56:29

天天观热点:你对圆台平面磨床的技术规格了解多少呢?

​圆台平面磨床作为一种精密加工设备,具有广泛的应用领域。其主要用途是钨钢模具等高精度工件的磨削加工。为

2023-05-20 08:53:22

中国队战胜印尼队进入苏迪曼杯四强

​新华社苏州5月19日电(记者丁文娴、许仕豪、王恒志)19日在苏迪曼杯世界羽毛球混合团体锦标赛赛场,在近660

2023-05-20 08:03:18

观战台:曼联利物浦争四白热化 曼城赢切尔西将提前夺冠_天天热推荐

​本周末,五大联赛继续进行。英超方面,利物浦和曼联争四进入白热化阶段,如果阿森纳本轮不赢,将提前送曼城

2023-05-20 07:00:59

头疼头晕怎么办最快最有效缓解_头疼头晕怎么回事啊 全球关注

​1、患者头痛和头晕原因如下:2、一、最常见的可能是神经衰弱,患者容易熬夜,休息不好。3、第二,如果患者

2023-05-20 05:53:50

你好安怡吧_安义吧_环球微速讯

​1、广东省南方技师学院深圳分校的录取通知书,我也收到了。2、准备去报名!。

2023-05-20 04:09:27

许昌人才信息官网_许昌人事人才网官网|简讯

​1、人事人才网还是比较可信的。2、比同类那几个人才网站可信度高一些。

2023-05-20 00:56:45

今天歌词粤语_今天歌词

​1、今天词:陈乐融曲:黄庆元走过岁月我才发现世界多不完美成功或失败都有一些错觉沧海有多广江湖有多深局

2023-05-19 22:49:07

环球新资讯:ps软件是什么软件_PS软件是什么

​1、PS软件通常指AdobePhotoshop,简称“PS”,是AdobeSystems公司开发和发行的图像处理软件

2023-05-19 22:07:24

太龙股份:5月18日公司高管苏芳减持公司股份合计79万股

​证券之星讯,根据5月19日市场公开信息、上市公司公告及交易所披露数据整理,太龙股份(300650)最新董监高

2023-05-19 21:12:58

引导大学生静下心来多读书读经典 这所高校以读书节引领“悦读新时代”

​交汇点讯 “梁家河是一部有字之书、无字之书,也是一部心灵之书、永远读不完的大书!青年学子读书励志成才

2023-05-19 20:20:38

苏鲁豫皖再聚首,黄淮核心产区up!

​本文由知酒原创未经授权不得转载文|知酒团队近日,中国食品工业协会联合苏、鲁、豫、皖四省食品工业协会共

2023-05-19 19:17:20

每日资讯:华克医疗拟投资1000万设立全资子公司华克智慧辐射科技(深圳)有限公司

​挖贝网5月19日,华克医疗(837371)近日发布公告,为了能够进一步扩大公司的产能,提升公司的综合实力,根

2023-05-19 18:45:50