Skip to content

特性介绍

dmetasoul01 edited this page Jul 15, 2022 · 3 revisions

LakeSoul 的主要特性

  • 弹性架构:计算存储完全分离,不需要固定节点和磁盘,计算存储各自弹性扩容。并且针对云存储做了大量优化,在对象存储上实现了并发一致性、增量更新等功能;使用 LakeSoul 不需要维护固定的存储节点,云上对象存储的成本只有本地磁盘的 1/10,极大地降低了存储成本和运维成本;
  • 高效可扩展的元数据管理:LakeSoul 使用外部数据库来管理文件元数据,可以高效的处理元数据的修改,并能够支持多并发写入,解决了 Hive 等元数据层的性能瓶颈,长时间运行后元数据解析缓慢以及只能单点写入的痛点;
  • ACID 事务:undo 和 redo 机制保证了提交的事务性,用户不会看到不一致数据;多个并发写入、读取都能保证一致性;
  • 多级分区模式和高效灵活的 upsert 操作:LakeSoul 支持 range 和 hash 分区,通过灵活的 upsert 功能,支持行、列级别的增、删、改等更新操作,将 upsert 数据以 delta file 的形式保存,大幅提高了写数据效率和并发性,而优化过的 merge scan 提供了高效的 MergeOnRead 读取性能;
  • 批流一体:LakeSoul 支持 streaming sink,可以同时处理流式数据摄入和历史数据批量回填、交互式查询等场景;
  • Schema 演进:可以随时新增字段,并为新字段快速填充历史数据。

LakeSoul 的适用场景

  • 新增数据需要高效实时大批量写入,同时需要行、列级别的并发增量更新的场景;
  • 历史数据存储量很大,并且需要对大跨度时间范围做明细查询、修改,同时希望保持较低成本的场景;
  • 查询请求不固定,资源消耗变化较大,希望计算资源能够独立弹性伸缩的场景;
  • 需要多并发写,同时文件数量多,Delta Lake 元数据更新无法满足性能要求的场景;
  • 针对主键进行数据更新,对写吞吐有较高有求的场景;