image.png
在海量数据时代,实时分析成为企业核心竞争力之一。YashanDB 针对这一需求,自研了列式存储引擎 LSC(Large-scale Storage Columnar Table),通过 CBO 优化器、向量化执行、原生列存格式等多项技术,打造了兼顾极速分析与实时导入能力的新一代数据引擎。

本文将从技术实现角度,带你深入理解 LSC 的核心设计与应用价值。

一、设计初心:四大目标

YashanDB LSC 的设计,围绕以下四大目标展开:

简单操作:基于统一平台,降低使用与维护复杂度,支持事务一致性与备份恢复;

极速分析:通过块级、行级过滤与多层缓存技术,加速查询响应;

实时导入:支持批量、流式及全实时数据写入,单 DN 写入速度最高达 300MB/s;

低成本:依靠列存压缩与存算分离,大幅降低数据存储与计算资源开销。

二、融合架构:统一与优化兼得

YashanDB 列式存储并非孤立模块,而是与行存共享统一的接口、事务、备份恢复、HA 同步等核心机制。

image.png
关键特点:

统一接口:支持标准 DDL、DML 操作,列存传递的是 DataSet 结构;

统一元数据管理:分区、索引等元数据体系与行表一致;

空间管理创新:列表采用 databucket 方式按目录文件管理,区别于行表的 Segment/Page 管理;

缓存优化:变长块缓存+本地磁盘缓存,提升存算分离场景下的数据访问效率。
image.png

三、存储结构:三层组织,灵活高效

LSC 表的数据组织分为三层:

分布(Distribute):打散到不同数据节点;

分区(Partition):节点内进一步分区,支持 Range/List/Hash;

切片(Slice):分区内部以小块管理,分为可变切片、内存切片和稳态切片。

稳态切片采用列式存储,经排序、压缩、编码优化,查询效率极高。

image.png
四、极速分析:四大加速武器

  1. 块级过滤(Block Filter)

通过 Slice/Block 的 MIN/MAX 统计信息与布隆过滤器,提前排除大量无关数据,减少 IO 与解码开销。

image.png

  1. 行级过滤(Row Filter)

利用字典编码,在未解码前就完成行过滤,避免无意义的数据加载与处理。

image.png

  1. 缓存与高效 IO

多级缓存(PageCache、DiskCache、SColDataBuffer)智能加速;

支持连续 Block 合并 IO,特别优化远端对象存储读取。

  1. 删除合并优化

使用 roaring bitmap 存储删除信息,降低批量查询开销;后台支持小切片合并,避免碎片化影响查询性能。

image.png
五、实时导入:毫秒级写入不是梦

批量导入

离线批量(yasldr 工具):单 DN 高达 300MB/s;

在线批量(DataX 等工具):单 DN 可达 50MB/s。
image.png

流式导入

通过 Flink + Upsert 索引机制,支持高效去重与删除,极大提升流数据导入性能。

全实时导入

采用可变列存(支持原地更新),结合 All-in-Mem 表空间,实现真正意义上的毫秒级实时写入。

六、低成本优势:存储优化与资源弹性

编码压缩

自动选择最优编码(RLE、Delta、字典、前缀等);

支持 ZSTD/LZ4 多等级压缩,压缩比最高可达 5:1.

image.png
存算分离

热数据本地加速,冷数据云端对象存储;

支持无状态化计算节点弹性伸缩,显著降低资源占用与成本。

七、未来展望

YashanDB 列式存储引擎将持续演进,未来将进一步强化高并发低延时能力,深耕存算分离与湖仓一体化方向,为实时大数据分析提供更强支撑。


数据库砖家
1 声望0 粉丝