1、StarRocks湖仓融合的四种范式演讲:赵恒StarRocksPMC 2023 CONTENTS录为什么需要湖仓融合湖仓融合的难点StarRocks湖仓融合的四种范式StarRocks 3.0 预览为什么需要湖仓融合01什么是数据湖什么是数据湖?云商:基于对象存储S3/OSS/COS构建的统存储互联公司:持Upsert,Time travel等级特性的存储(Iceberg/Hudi/Delta lake)传统户:能够存储所有结构化、半结构、结构数据为什么要数据湖?更低的存储成本,更可靠性:从HDFS 到对象存储更好的Table format:持ACID事务,持Schema evolution
2、更好的File format:持半结构化map、Struct、Json,持嵌套结构。统的Catalog:统元数据管理、权限管理、统计信息管理、湖管理为什么要在湖上建仓为什么湖上建仓(OLAP)?数仓加速:基于数据湖的远程IO成本,早期的数据湖格式不成熟,索引不完善,查询性能需要提升,数据湖的底座针对吞吐优化,关注低成本和可靠,不适应性能需求。实时分析:基于数据湖的存储实时性不够,法解决秒级实效性的问题并发查询:对于并发查询,我们需要降低数据的扫描量,种是聚合类查询需要通过预计算的段来提并发,种是点查需要有细粒度的数据裁剪和索引优化来提升。引OLAP的问题?数据的导是个复杂问题,不仅仅是数据成本
3、的上升,也让管理成本成倍增长如何维护数据和元数据致性OLAP对AI等需要开放的底层件格式的业务不够友好为什么要湖仓融合?简化技术架构,降低运维成本Single Source of Truth:只有份数据,基于相同的数据来计算有湖仓融合的数据底座才可能做统的上层数据治理Lakehouse 分层与StarRocksStarRocks From OLAP to Lakehouse湖仓融合的难点02湖和仓的差异 Catalog 和建表都有类似的Catalog层次结构 Catalog database table建表语句和数据分布上有差异StarRocksHiveIcebergHudiDelta lak
4、e分区式表达式分/隐式分区多级范围分区表达式分区/隐式分区多级范围分区分桶式hash排序式orderorderorder/zorderorderCluster by湖和仓的差异 Table formatTable Format 对 Copy on write/Merge on read Delete and insert(Merge on write)对Merge-on-read:避免sort merge的开销,不存在频繁写下读放的问题 对 Copy-on-write:避免过多的写放 对 Delta store:能够充分利级索引StarRocks 可以补充数据湖上秒级实时性的场景湖仓融合需要让
5、数据湖有更好的实时性StarRocks IcebergHudiDelta lakeCopy on writeYYMerge on readYYYYDelete and insertYStarRocks as Lakehouse性能的差异本地IO和远程IO:通过Local cache加速File Format:数据类型:Json/Struct/Map,持bitmap/Hll,Fast Decimal 索引:聚簇索引和级索引数据分布 持 colocated join,colocated aggregation hash 分布可以进步裁减提升点查性能查询引擎 向量化引擎的MPP执框架 Query c
6、ache 统计信息 湖上统计信息还较基础,SR提供ndv ngram等复杂统计信息湖仓融合让户不做数据导获得和数仓样的性能StarRocks湖仓融合的四种范式03湖仓融合1:数据湖查询加速湖仓融合2:湖仓分层建模湖仓融合3:实时数仓与数据湖融合湖仓融合4:StarRocks 3.0 云原湖仓湖仓融合种模式的总结数据湖存储格式 数仓存储格式 读写流程适场景数据湖查询加速Hive/Iceberg formatLocal cache for Hive/Iceberg数据直接湖 StarRocks加速查询数据湖 Adhoc加速湖仓分层建模Hive/Iceberg