starrocks

starrocks

分布式OLAP数据库系统,高效支持大数据量级的多维分析、实时分析、高并发分析等多种数据分析场景

定位
面向在线报表和分析的数据仓库系统。它采用了全面向量化技术,比同类产品平均快3-5倍。在查询性能上远超当代最快的开源数据库clickhouse

整体架构

  • FE 前端节点。多个FE组成第一层,提供FE的横向扩展和高可用。主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成
  • BE 后端节点。多个BE组成第二层,负责数据存储与管理、查询计划执行

采用列式存储、对数据以高压缩比进行压缩存储、向量化执行等先进技术,因此获得了极高的查询效率

列式存储

表中的每一列数据都会在物理上相邻存储,而不是将整个行的数据存储在一起

  • 压缩率高:由于列中的数据通常是同一类型的,因此可以应用高效的压缩算法,从而减少存储空间的需求
    • RLE:压缩列中连续相同值的情况,例如日期列
    • Bit Packing:将列中的多个值打包成一个字节,压缩稀疏列,0/1较多的列
    • Delta Encoding:将列中的值替换为前一个值与当前值之间的差值。排序或有序列的列
  • 快速扫描:非常适合执行聚合操作,因为只需扫描和加载需要的列,而不必加载整个行
  • 快速过滤:过滤操作,列式存储可以跳过不相关的列,从而减少I/O操作

向量化技术

基于列式存储

充分利用 CPU 的缓存。例如,有 10 列的一行数据和只需操作一列的查询计划。在基于行的查询处理模式中,9 列数据会不必要的占用缓存,限制了可以进入缓存的数据数量。在基于列的处理中,只会读入感兴趣的列数据,这样可以一起处理更多的值

核心思想:由列找行的实际转化推迟到查询计划的很靠后的位置进行处理

且现代CPU提供了SIMD(Single Instruction, Multiple Data)指令集,允许同时对多个数据元素执行相同的操作。向量化代码利用这些指令来执行相同操作的多个数据元素,从而减少了指令的数量和循环次数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EnndmeRedis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值