您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[DataFunSummit2023:数据湖架构峰会]:Iceberg实时湖仓数据分析性能优化 - 发现报告
当前位置:首页/行业研究/报告详情/

Iceberg实时湖仓数据分析性能优化

AI智能总结
查看更多
Iceberg实时湖仓数据分析性能优化

| IFHEHUJਫ෸დՙහഝړຉ௔ᚆս۸ ݥय़၇ ᗑฃහ૴᫫կૡᑕ૵ 目录CONTENT 01,FHEHUJ025ܻቘՕᕨ 02$UFWiFचԭ,FHEHUJ௔ᚆս۸ 03ս۸පຎᦧ֌––&+–EHQFKPDUN 04๚๶ᥢښ | | 01 ,FHEHUJ025 ܻቘՕᕨ Ջԍฎ025 MergeOnRead简称,是一种行级更新技术,本质上是out-of-placeupdate,更新和删除不直接修改历史数据,而是单独记录数据变更,在读取的时候再合并历史数据和变更得到修改后的值。这种方式更新的时候代价较小,读取的时候代价较大 ӣᐿ෈կ (TXDOiW\–GHOHWHই֢֜አ •先把Equality-delete数据读入内存,按照 equality-delete-columns指示的列构建Hash表 •读取data数据,取equality-delete-columns指示的列和Hash进行比对,丢弃掉和Hash表匹配的数据 •先把Position-delete数据读入内存,按照删除的位置构建Bitmap •读取data数据,丢弃掉Bitmap里存在的行号的数据 •Data文件的行号肯定是自然增加,Position-delete文件的行号也是升序排列。 •利用归并排序对两种文件做Sort-Merge。 ෈կᕟᕢ୵ୗ݊WDVNᕮ຅ •Equality-delete只作用于历史文件,当前快照的删除使用Position-delete文件。 •Task按照datafile为主导划分,一个datafile 可以划分为一个或多个Task。 •每一个Task是一个最小读取单元。 | 02 Arctic基于Iceberg性能优化 $UFWiFՕᕨ Arctic是一个开放式架构下的湖仓管理系统,在开放的数据湖格式之上,Arctic提供更多面向流和更新场景的优化,以及一套可插拔的数据自优化机制和管理服务。基于Arctic可以帮助各类数据平台,工具和产品快速搭建开箱即用,流批统一的湖仓。 ԅՋԍᵱᥝ2SWLPL]H 小文件问题 冗余数据太多 数据组织形式低效 过期无效文件残留 自动执行 定时+监听小文件数量触发 AMS调度并异步执行Optimize 资源隔离 AMS提供资源组管理和配额设置,允许资源在表级隔离和共享 灵活部署 基于Flink引擎部署, 支持YARN、K8S,支持通过AMS在线扩缩容 $UFWiF6HOI–RSWiPi]iQJ 6HOI–RSWiPi]iQJੜ෈կݳଚ 降低HDFS的Name-node压力降低Iceberg元数据的数量减少查询时打开文件的代价 6HOI–RSWiPi]iQJၾᴻGHOHWH෈կ 减少了文件数量 减少了读取的数据量 降低了MOR时应用delete文件的代价,释放了CPU和内存 6HOI–RSWiPi]iQJ(TXDOiW\–GHOHWH᫨3RViWiRQ–GHOHWH Equality-delete:读入内存,然后构建Hash表和data数据进行比对对内存消耗较高,需要额外读取比对字段。构造成本低,直接申明需要删除的数据即可。 Position-delete:可以读入内存构建Bitmap比对,也可以通过 Sort-merge比对,对内存消耗较少,且不需要额外的字段比对。有一定的构造成本。 一个Position-delete只对应一个Datafile,这样可以充分的利用Iceberg的data-skipping,让读取的时候避免读其他无效的position-delete文件 相较于上述的data+delete->data的方案,可以在删除比例不高的时候减少写放大 ௔ᚆᳯ᷌ 可以看出在读取阶段,每个data需要和太多的delete文件对应 6HOI–RSWiPi]iQJපຎ 0i[HGiFHEHUJIRUPDWᔜᕡ۸GDWD෈կ޾GHOHWH෈կ੒ଫىᔮ 0i[HGiFHEHUJIRUPDW॔አGHOHWHහഝ 读取的时候,相同node下的多个data文件会分配在一个Task里面,读取的时候delete文件只读取一次。 等效于k-waynumberpartitioningproblem 是一个NP-Hard问题 采用排序+贪心算法(CGA)分配,能得到一个很好的次优解 DHOHWH෈կ॔አ݊7DVNړᯈᒽኼපຎ ӞԶ੒௔ᚆ୽ߥ᫾य़ጱ݇හ 文件类型 文件类型对查询性能影响较大,Parquet文件相较于AVRO由于采用列存模式具有较高的压缩比,写入和读取的IO会更少,并且可以列裁剪,谓词过滤,读取性能很高,有时能达到数倍差距,但是Parquet对内存消耗更高,有时甚至因为同时写入的Parquet文件过多导致OOM等问题 压缩类型 各种压缩类型的特性都有区别,有的压缩比更高但是解压缩代价就更高,有的压缩比不高但是解 压缩代价更低,需要根据机器,业务情况选择合适的 | 03 优化效果如何评估 TPC-C用于OLTP负载,使用只读和更新密集型业务事务的混合来评估性能 TPC-H是一个决策支持基准测试,它对检查大量数据、执行高度复杂的查询并回答关键业务问题的决策支持系统进行建模 CH-benchmark以未经修改的TPC-C的模式与事务为基础,结合经过调整的TPC-H查询,形成了一个复杂的混合工作负载 详细说明:https://arctic.netease.com/ch/benchmark/benchmark-step/Benchmark工具:https://github.com/NetEase/lakehouse-benchmarkFlinkCDC:https://github.com/NetEase/lakehouse-benchmark-ingestion ๚๶ᥢښ •异步数据全局排序(普通排序,Z-order) •异步二级索引构建 THANKS |

你可能感兴趣

hot

爱奇艺在 Iceberg 落地相关性能优化与实践

文化传媒
DataFunSummit2023:数据湖架构峰会2023-07-12
hot

湖仓存储系统设计剖析和性能优化

交通运输
DataFunSummit2023:数据湖架构峰会2023-07-12
hot

Iceberg 在湖仓建设的若干实践

建筑建材
DataFunSummit2023:数据湖架构峰会2023-07-12
hot

B站基于Iceberg构建秒级响应湖仓一体平台的技术实践

信息技术
DataFunSummit2023:数据湖架构峰会2023-07-12