数据仓库服务(DWS)作为企业级分析型数据库,其底层架构在数据处理与存储支持方面融合了分布式计算、列式存储、智能压缩等关键技术,为海量数据的高效分析与实时查询提供了坚实基础。
一、分布式数据处理架构
DWS采用无共享(Shared-Nothing)的MPP(大规模并行处理)架构,数据按分布键均匀打散到多个数据节点(DN),每个节点独立处理本地数据,通过协调节点(CN)进行查询解析、计划生成与任务调度。这种架构使得查询能够并行化执行,充分利用集群的计算资源。底层数据处理流程包括:
- 查询解析与优化:CN接收到SQL后,进行语法解析、语义分析,并基于代价模型生成分布式执行计划,决定数据重分布策略与连接顺序。
- 并行执行引擎:执行计划被分解为多个片段(Fragment),下发到各DN并行执行。算子如Scan、Join、Aggregate均支持流水线并行,减少中间结果落盘。
- 数据重分布与交换:在跨节点Join或聚合时,通过Stream算子进行数据重分布(Redistribute)或广播(Broadcast),确保计算本地化。
- 向量化执行:DWS引入向量化引擎,以批处理方式处理数据(如一次处理1024行),减少函数调用开销,提升CPU缓存命中率,显著加速分析查询。
二、列式存储与压缩技术
DWS底层采用列式存储引擎,将表数据按列连续存储,而非按行。这种设计对分析场景极为友好:
- 高效I/O:查询仅读取涉及的列,避免无用列的数据扫描,降低I/O放大。
- 高压缩比:同列数据类型一致,易于压缩。DWS支持多种压缩算法(如LZ4、Zlib、Delta编码),并根据数据类型自动选择最优策略,压缩比可达5-10倍,大幅降低存储成本与I/O带宽。
- 稀疏索引与Min/Max过滤:每个列存文件块(通常为1MB-1GB)记录元数据(如最小值、最大值),查询时通过谓词下推跳过不满足条件的块,减少扫描数据量20%-90%。
- PAX混合存储:对于点查场景,DWS也支持行存表,并可通过PAX(Partition Attributes Across)格式在同一文件内按微分区混合存储,兼顾OLTP与OLAP负载。
三、存储支持服务
DWS的存储层设计兼顾性能、可靠性与弹性:
- 多副本机制:数据默认采用多副本(通常3副本)存储于不同节点,确保节点故障时数据不丢失,且读操作可并行从多个副本读取,提升吞吐。
- 可扩展存储:支持本地NVMe SSD与对象存储(OBS)的分层存储。热数据存放于本地高速盘,冷数据自动下沉至OBS,通过缓存加速访问,实现存储成本与性能的平衡。
- 自动Vacuum与Compaction:针对列存表的更新与删除,DWS采用标记删除与后台合并机制,定期清理无效数据,维持存储效率与查询性能。
- 数据持久化与恢复:基于WAL(预写日志)与检查点机制,保证事务的ACID特性。结合物理备份与逻辑备份,支持时间点恢复(PITR)。
四、
DWS数据库底层通过MPP并行架构、列式压缩存储、向量化执行与多级存储服务,构建了高性能、高可靠、易扩展的数据处理与存储支持体系,能够满足企业海量数据实时分析与混合负载的需求,为数据仓库场景提供强有力的底层支撑。