大规模并行处理数据库StarRocks

在这里插入图片描述

大规模并行处理数据库StarRocks是新一代极速全场景 MPP(大规模并行处理)数据库。它充分吸收关系型 OLAP 数据库和分布式存储系统在大数据时代的优秀研究成果,在业界实践的基础上,进一步改进优化、升级架构,并增添了众多全新功能,形成了全新的企业级产品。自 2021 年 9 月正式开源。从 3.0 版本起正式支持存算分离架构,用户的存储成本能下降 80%,计算节点因无状态,可通过快速弹性、跨可用区部署等方式提高计算的可用性,并且计算资源能够进行物理隔离,按需独立弹性伸缩。在数据湖分析性能上,它不仅能够直接分析外部数据源,免除 ETL(提取、转换清洗、加载)的负担,还对开放数据湖的数据进行了大量优化,进一步提升查询效率。在物化视图方面,能够简化数据分层建模,实现透明加速查询,使对各种数据表的预先建模演变为后建模,让分析师得以创建可满足业务需求的逻辑视图。
StarRocks 的发展历程中,始终致力于解决大数据时代企业面临的数据挑战。它的出现使得全场景数据分析可以通过一个产品实现,为金融、零售、物流、制造和互联网等多个行业提供了高效的数据分析解决方案。目前,已有超过 300 家市值 10 亿美金的大企业和超过 1 万家中小企业采用 StarRocks。同时,其开源社区也在不断发展壮大,镜舟科技等企业为主导推进,众多其他企业也在为社区做出贡献。未来,StarRocks 计划继续以云原生实时湖仓为重心,在云原生、实时分析和湖仓一体等方面完成更多技术突破。

一、主要特点

极速统一分析:能同时高效支持 OLAP 多维分析、实时数据分析、高并发查询、adhoc 查询等多场景,比上一代同类型产品的分析能力快 3 至 5 倍以上。提供全新的 OLAP 多维分析体验,打破只能做大宽表的局限性,让多种数据建模模式(预计算、大宽表、星型模型和雪花模型等)都具备极速分析体验;支持数据实时更新和删除,保证极速查询性能;支持数千人同时访问,具有全新极简统一的 OLAP 架构,大大降低了使用和运维管理复杂度,提升了开发和使用效率。

  • 架构简洁:整个系统的核心只有 FE(frontend,前端节点)、BE(backend,后端节点)两类进程,不依赖任何外部组件,方便部署与维护。FE 和 BE 模块都可以在线水平扩展,元数据和数据都具有多副本机制,保证系统的高可用和容错性。
  • 列式存储:采用列式存储引擎,通过编码和压缩技术,降低读写放大。表中的数据按列存储,物理上一列数据会经过分块、编码、压缩等操作,然后持久化于非易失设备,而在逻辑上,一列数据可看成由相同类型的元素构成的数组。一行数据的所有列在各自的列数组中保持对齐,即拥有相同的数组下标(该下标称之为序号或者行号,是隐式的,不需要存储)。表中的所有行按照维度列做多重排序,排序后的位置就是该行的行号。查询时,如果指定了维度列的等值条件或者范围条件,并且这些条件中维度列可构成表维度列的前缀,则可以利用数据的有序性,使用 range-scan 快速锁定目标行。
  • 稀疏索引:使用 shortkeyindex 作为稀疏索引,表中数据每 1024 行构成一个逻辑 block,每个逻辑 block 在 shortkeyindex 表中存储一项索引,内容为表的维度列的前缀,且不超过 36 字节。通过查找 shortkeyindex 可获得逻辑块的起始行号,再查找维度列的行号索引以获得目标列的数据块,读取数据块后解压解码,就能从数据块中找到维度列前缀对应的数据项。
  • 兼容 MySQL 协议:可使用 MySQL 客户端和常用 BI 工具对接 StarRocks 来进行数据分析。
  • 支持多种数据模型和导入方式:支持多种数据模型(明细模型、聚合模型、更新模型),多种导入方式(批量和实时),可整合和接入多种现有系统(Spark、Flink、Hive、Elasticsearch)。
  • 全面向量化引擎和智能查询优化:采用全面向量化引擎,并配备全新设计的 CBO(基于成本的优化器),查询速度快,尤其是多表关联查询性能优异。
  • 实时更新:可以根据主键执行 upsert/delete 操作,在并发更新时实现高效的查询。
  • 智能实化视图:可以在数据导入过程中自动更新,并在查询执行时自动选择。
  • 直接查询数据湖中的数据:无需导入数据,可直接访问数据湖,避免数据孤岛的存在。
  • 易于维护:简单的架构使其易于部署、维护和扩展。在集群扩展或扩展时平衡资源,并在节点发生故障时自动恢复数据副本。
    StarRocks 致力于构建极速统一分析体验,满足企业用户的多种数据分析场景,适用于 OLAP 多维分析、定制报表、实时数据分析、ad-hoc 数据分析等。具体业务场景如用户行为分析、用户画像、财务报表、系统监控分析、电商数据分析、直播质量分析、物流运单分析、广告投放分析、广告主表分析、dashboard 多页面分析等。在大数据生态中,StarRocks 不依赖于某一种技术栈,能够兼容大数据平台的绝大部分技术栈。它可以拉取 HDFS、S3、OSS 中的数据,导入平面文件,或消费 Kafka 中的增量数据;对于 MySQL 或 OceanBase 等 TP 业务库,全量数据可通过 DataX、Sqoop 等工具同步,增量数据可通过 Canal 等 CDC 工具实时同步。

二、基本概念

FE(frontend):负责管理元数据,管理客户端连接,进行查询规划、查询调度等工作。FE 高可用部署,使用复制协议选主和主从同步元数据,所有的元数据修改操作由 FE leader 节点完成,FE follower 节点可执行读操作,节点数目一般采用 2n+1,可容忍 n 个节点故障。此外,FE 还有 observer 角色,主要用于扩展集群的查询并发能力,不参与选主,不会增加集群的选主压力。

  • BE(backend):负责数据存储、计算执行、compaction(数据合并)以及副本管理等工作。BE 管理 tablet 副本,tablet 是表经过分区分桶形成的子表,采用列式存储。BE 接收 FE 分发的物理执行计划并指定 BE coordinator 节点,在其调度下,与其他 BE worker 共同协作完成执行。BE 读本地的列存储引擎获取数据,并通过索引和谓词下沉快速过滤数据,后台执行 compact 任务以减少查询时的读放大。数据导入时,由 FE 指定 BE coordinator,将数据以 fanout 的形式写入到 tablet 多副本所在的 BE 上。
  • Broker:StarRocks 中和外部 HDFS/对象存储等外部数据对接的中转服务,辅助提供导入导出功能。
  • StarRocksManager:StarRocks 的管理工具,提供 StarRocks 集群管理、在线查询、故障查询、监控报警等的可视化功能。
  • Tablet:StarRocks 中表的逻辑分片,也是副本管理的基本单位,每个表根据分区和分桶机制被划分成多个 tablet 存储在不同 BE 节点上。

三、技术优势

StarRocks 数据库具有以下技术优势:

  1. 水平在线扩缩容:支持灵活地增加或减少节点,以适应不断变化的数据量和查询负载,能够轻松应对 PB 级别的数据量。
  2. 金融级高可用:采用多副本技术,确保数据的可靠性和系统的稳定性。
  3. 全面向量化引擎:极大程度地提高了查询性能,过滤操作大概有5倍左右的性能提升,聚合操作有15倍的性能提升,关联操作有大概3-4倍的性能提升。
  4. 支持主键模型(PrimaryKey 模型):让数据可以更好地实时更新,并且在大规模实时数据写入时,查询性能可以达到其他行业领先 OLAP 数据库的3-5倍。
  5. 基于代价的优化器(CBO):帮助自动优化查询计划,提高查询效率,无需手动进行复杂的 SQL 优化。
  6. 灵活的建模方式:可以通过预聚合、宽表、星型/雪花模型等多种数据模型来构建数据存储系统。
  7. 湖仓一体架构:借助 Iceberg、Hive 外表等功能,实现数据在 StarRocks 与其他数据存储之间的流动,方便进行关联查询,同时能以低成本方式长久保存数据。
  8. 多数据源联邦查询:支持拉取 Hive、MySQL、ES 等多种数据源中的数据,与 StarRocks 中的表进行关联,避免数据孤岛的存在。
  9. 实时数据处理能力:满足实时数据更新的需求,适用于实时数据分析场景,例如实时大屏展示、实时风控等。
  10. 高效的数据导入:可以从多种数据源(如 HDFS、S3、OSS、平面文件、Kafka 等)导入数据,也支持从 TP 业务库(如 MySQL、OceanBase 等)全量或增量同步数据。
  11. 分布式架构:将数据分散存储在多个节点上,提高了数据的处理能力和容错能力。

四、应用场景

  1. 实时数仓:在使用 Apache Flink+Apache Kafka/Pulsar 将数据实时处理后,StarRocks 可保证端到端的低延迟服务,实现数据的实时摄入和查询。它支持多种构建实时数仓的方法论,如微批调度、增量构建与聚合、StarRocks 视图等方式。例如,在电商大促场景中,能够实时分析销售数据、库存情况等,帮助企业快速做出决策。
  2. 客户数据平台(CDP):高效进行客群圈选。相比传统使用 ES 或 HBase 存储用户标签行为和属性的复杂链路,基于 StarRocks 的方案可利用 roaring bitmap 数据结构按位计算求交集、并集、差集等,方便圈选,还能实时摄入 Kafka 数据做实时行为分析。同时,通过 id-mapping 打通不同来源的用户身份标识。
  3. 用户画像与标签分析:涉及很多人群相关的操作,如标签圈选、根据个人 id 查询标签等,StarRocks 的 bitmap 数据类型在此场景大有用处。比如,在互联网行业,可以用于精准的用户画像构建,帮助企业更好地了解用户行为和偏好,从而实现个性化推荐、精准营销等。
  4. 运营分析:主要源于公司内部一线运营或分析人员的需求,对数据时效性要求高,且涉及多张数据报表和相关业务,还可能需要根据员工组织架构判断数据权限范围。例如,在零售行业中,用于分析各门店的运营情况,店长可查看其负责门店的数据。
  5. 高维业务指标报表:面向管理层和业务方,对聚合计算能力要求高,查询速度要快。例如,金融行业的绩效分析和指标计算,能够快速生成各类业务指标报表,助力决策制定。
  6. 自助式报表平台:为终端用户提供数据产品,数据时效性高,并发查询量较大,且每次查询数据量有限,对系统并发能力和数据实时导入有较高要求。例如,SaaS 行业面向用户的分析报表,用户可根据自身需求自助生成报表。
  7. 跨主题业务分析:适用于需要整合和分析多个不同主题业务数据的场景,打破数据孤岛,实现全面的业务洞察。
  8. 财务报表:快速处理和分析大量财务数据,生成准确的财务报表。
  9. 系统监控分析:对系统的各种性能指标、日志等数据进行实时分析,帮助及时发现和解决系统问题。例如,在互联网应用中,监控服务器的性能指标,如 CPU 利用率、内存使用情况等。
  10. 广告投放分析:分析广告投放效果,如点击率、转化率等,以便优化广告策略。例如,在广告行业中,实时分析广告投放数据,根据用户行为和兴趣精准投放广告,提高广告效果和投资回报率。
  11. 探针分析 APM(Application Performance Management):帮助监测和诊断应用程序的性能问题。
  12. dashbroad 多页面分析:支持在多个页面进行数据分析和展示。
  13. 统一分析:通过使用一套系统解决多维分析、高并发查询、预计算、实时分析、adhoc 查询等多种场景,降低系统复杂度和多技术栈开发与维护成本。例如,在企业中整合各类数据分析需求,减少不同数据分析组件的建设和维护工作。
    StarRocks 极速查询、灵活建模以及实时摄入和查询数据的能力,使其能够在各种数据分析场景中发挥重要作用,帮助企业更好地利用数据驱动业务发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值