数据块(DC)作为基本I/O单位,每个DC包含65536行数据且尾块不压缩。这种设计对数据加载、查询和压缩效率有何影响?
数据块(DC)作为基本I/O单位,每个DC包含65536行数据且尾块不压缩,这种设计是GBase 8a列式存储引擎的核心,对数据加载、查询和压缩效率产生了深刻且积极的影响,但也引入了特定的权衡。
一、对数据加载效率的影响
积极影响:
- 批量写入,性能极高:
数据以DC为单位(65536行) 进行组织、压缩和写入磁盘。这实现了真正的批量I/O,将大量零散的行插入合并为一次大的顺序写操作,极大减少了磁盘I/O次数和寻道时间。
“数据以DC(数据单元)为单位进行组织, 存成DC文件”。
- 尾部追加,不影响存量:
新的数据总是从DC尾块开始追加。尾块是不压缩、不封装的,这意味着新数据可以快速、直接地写入,无需解压和重组整个大DC块。
- “DC尾块不封装、不压缩。”;“INSERT原理:从DC尾块新增数据,不影响已入库的数据。”
- 线性扩展的加载性能:
- 由于每个DC处理固定行数,集群的加载吞吐能力可以随着节点和数据分片的增加而线性提升。文档中提到加载速度可达 30T+/小时。
潜在权衡:
- “最后一点”延迟:当数据量不足以填满一个DC(不足65536行)时,这些数据会以未压缩的尾块形式存在,无法享受批量压缩和高效I/O的好处,直到积累够一个满DC。
二、对查询效率的影响
积极影响:
- 精准I/O,大幅减少读取量(列式存储核心优势):
DC是列级别的I/O单位。查询时,只有涉及到的列才会被读取,无关列完全不产生I/O。
“DC是基本I/O单位,只有查询所涉及到的列才产生I/O。”
- 智能索引过滤,跳过无关数据块:
每个DC都会自动生成粗粒度智能索引(记录该DC内本列的最大值、最小值、空值等)。
- 查询时,优化器可以先检查智能索引。如果查询条件(如
WHERE col > 100)与该DC的数值范围(如max=50)完全不匹配,整个DC(65536行)都可以被跳过,无需读取和解压。 “有效性:大大缩小查询和数据物化的范围,迅速定位目标数据集。”
- 向量化计算友好:
- 一次性读入一个DC(65536行)的同一列数据,内存中是一段连续、同类型的数据块。这非常适合于现代CPU的SIMD指令集进行向量化计算,大幅提升聚合、过滤等操作的性能。
潜在权衡:
点查询可能“放大”I/O:如果只查询一行数据,但这一行所在的列DC有65536行,理论上也需要读入整个DC(尽管可能通过缓存优化)。但相比行存需要读入整行所有列,列存的I/O放大代价通常小得多。
三、对压缩效率的影响
积极影响:
- 超高压缩比:
- 由于一个DC内存储的是同一列的65536个值,这些值数据类型相同、数据分布相似(尤其是排序列),冗余度极高。
列式压缩算法可以针对这种同质数据实现深度压缩,压缩比可达1:20,远高于行存储。
文档依据:“基于一列内同类型数据,实现高压缩比存储”;“压缩比可达到1:20,远远高于行存储”。
- 压缩态计算,减少I/O:
数据在磁盘上以压缩态存储。在某些查询场景下(如聚合),可以直接在压缩数据上进行部分计算,或者只需解压少量相关数据,大幅降低磁盘I/O和内存占用。
“压缩态数据使得数据处理过程中,大幅降低磁盘IO”。
- 灵活的压缩策略:
- 可以按库、表、列三级设置不同的压缩算法(0,1,3,5等),在压缩比和性能间取得平衡。
潜在权衡(由“尾块不压缩”设计引起):
- 空间与性能的临时牺牲:尾块中的数据是未压缩的,会占用更多磁盘空间,且读取时没有压缩带来的I/O节省。这是为了换取极致的写入性能而做的妥协。一旦尾块积累成满DC,就会被压缩封装,空间和读取效率随之提升。
四、总结:DC设计的核心思想
GBase 8a的DC设计体现了 “以空间换时间” 和 “批量处理” 的核心思想,专为海量数据分析(OLAP) 场景优化:
| 方面 | 设计选择 | 带来的优势 | 付出的代价 |
|---|---|---|---|
| 加载 | 批量写入(65536行/DC),尾块不压缩
| 高速批量加载,线性扩展。 | 少量数据时效率未达最优。 |
| 查询 | 列式I/O,智能索引过滤 | 精准读取,向量化计算,跳过无关数据。 | 极少数点查询有I/O放大。 |
| 压缩 | 同列数据批量压缩,尾块不压缩
| 超高压缩比,压缩态计算,节省存储与I/O。 | 尾块数据暂时无压缩收益。 |
最终效果:这种设计使得GBase 8a在数据仓库、商业智能、决策支持系统等读多写少、批量扫描、聚合分析的场景下,能够实现极致的查询性能和极高的存储经济性。它牺牲了少量场景下的最优表现,换来了在目标场景下整体效能的巨大提升。
评论
热门帖子
- 12025-12-01浏览数:182063
- 22023-05-09浏览数:24289
- 42023-09-25浏览数:17511
- 52020-05-11浏览数:16539