StarRocks产品简介

文章目录

  • 一、StarRocks概念
  • 二、StarRocks架构分类
    • 1、存算一体
    • 2、存算分离
  • 三、产品特性
  • 四、部署集群
  • 五、名词解析
    • 1、Catalogs
    • 2、数据库
    • 3、表
    • 4、物化视图
    • 5、视图
    • 6、权限系统
    • 7、存算分离架构下的存储方式

一、StarRocks概念

StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。

二、StarRocks架构分类

StarRocks 架构 整个系统仅由两种组件组成:前端和后端。
前端节点称为 FE。后端节点有两种类型,BE 和 CN (计算节点)。
当使用本地存储数据时,您需要部署 BE;当数据存储在对象存储或 HDFS 时,需要部署 CN

StarRocks 不依赖任何外部组件,简化了部署和维护。节点可以水平扩展而不影响服务正常运行。此外,StarRocks 具有元数据和服务数据副本机制,提高了数据可靠性,有效防止单点故障 (SPOF)。

StarRocks 兼容 MySQL 协议,支持标准 SQL。用户可以轻松地通过 MySQL 客户端连接到 StarRocks 实时查询分析数据。

StarRocks 支持存算一体架构 (每个 BE 节点将其数据存储在本地存储) 和存算分离架构 (所有数据存储在对象存储或 HDFS 中,每个 CN 仅在本地存储缓存)。您可以根据需要决定数据存储的位置。
StarRocks产品简介_第1张图片

1、存算一体

优势:
本地存储为实时查询提供了更低的查询延迟。

作为典型的大规模并行处理 (MPP) 数据库,StarRocks 支持存算一体架构。在存算一体架构中,BE 负责数据存储和计算。将数据存储在 BE 中使得数据可以在当前节点中计算,避免了数据传输和复制,从而提供极快的查询和分析性能。该架构支持多副本数据存储,增强了集群处理高并发查询的能力并确保数据可靠性,非常适合追求最佳查询性能的场景。
在存算一体架构中,StarRocks 由两种类型的节点组成:FE 和 BE。

FE 负责元数据管理和构建执行计划。
BE 执行查询计划并存储数据。BE 利用本地存储加速查询,并使用多副本机制确保高数据可用性。

2、存算分离

优势:
对象存储和 HDFS 提供低成本、高可靠性和可扩展性等优势。除了可以扩展存储外,还可以随时添加和删除 CN 节点。因为存储和计算分离,增删节点也无需重新平衡数据

在存算分离架构中**,BE 被“计算节点 (CN)”取代,后者仅负责数据计算任务和缓存热数据**。数据存储在低成本且可靠的远端存储系统中,如 Amazon S3、GCP、Azure Blob Storage、MinIO 等。当缓存命中时,查询性能可与存算一体架构相媲美。CN 节点可以根据需要在几秒钟内添加或删除。这种架构降低了存储成本,确保更好的资源隔离,并具有高度的弹性和可扩展性。

存算分离架构与存算一体架构一样简单。它仅由两种类型的节点组成:FE 和 CN。唯一的区别是用户必须配置后端对象存储。

三、产品特性

  • MPP 分布式执行框架
    StarRocks 采用 MPP (Massively Parallel Processing) 分布式执行框架。 一条查询请求会被拆分成多个物理计算单元,在多机并行执行。每个执行节点拥有独享的资源(CPU、内存)。MPP 执行框架能够使得单个查询请求可以充分利用所有执行节点的资源,所以单个查询的性能可以随着集群的水平扩展而不断提升。

  • 全面向量化执行引擎
    -StarRocks 的数据存储、内存中数据的组织方式,以及 SQL 算子的计算方式,都是列式实现的。

  • 存储计算分离
    -StarRocks 3.0 版本支持了全新的存算分离模式,实现了计算与存储的完全解耦、计算节点弹性扩缩容、高性能热数据缓存。存算分离模式下 StarRocks 具备灵活弹性、高性能、高可靠、低成本等特点。
    存储层利用对象存储近乎无限的容量,以及数据高可用的特性实现数据的海量存储和持久化。支持包括 AWS S3,Azure Blob Storage,Google Cloud Storage,阿里云 OSS,腾讯云 COS,火山引擎 TOS,华为云 OBS,以及各类兼容 S3 协议的对象存储,同时也支持 HDFS 存储。

  • CBO 优化器
    全新 CBO 的支持,StarRocks 能比同类产品更好地支持多表关联查询,特别是复杂的多表关联查询,让全面向量化引擎能够发挥极致的性能。

  • 可实时更新的列式存储引擎
    StarRocks 实现了列式存储引擎,数据以按列的方式进行存储。通过这样的方式,相同类型的数据连续存放。一方面,数据可以使用更加高效的编码方式,获得更高的压缩比,降低存储成本。另一方面,也降低了系统读取数据的 I/O 总量,提升了查询性能。此外,在大部分 OLAP 场景中,查询只会涉及部分列。相对于行存,列存只需要读取部分列的数据,能够极大地降低磁盘 I/O 吞吐。

  • 智能的物化视图
    StarRocks 支持用户使用物化视图(materialized view)进行查询加速和数仓分层。可以按需灵活创建和删除。

  • 数据湖分析
    StarRocks 不仅能高效的分析本地存储的数据,也可以作为计算引擎直接分析数据湖中的数据。用户可以通过 StarRocks 提供的 External Catalog,轻松查询存储在 Apache Hive、Apache Iceberg、Apache Hudi、Delta Lake 等数据湖上的数据,无需进行数据迁移。支持的存储系统包括 HDFS、S3、OSS,支持的文件格式包括 Parquet、ORC、CSV。

四、部署集群

参考官方文档: https://docs.starrocks.io/zh/docs/deployment/deployment_overview/

五、名词解析

1、Catalogs

StarRocks产品简介_第2张图片

Catalog 分为 Internal catalog 和 External catalog。
Internal catalog是内部数据目录,用于管理导入至 StarRocks 中的数据以及内部的物化视图等。
每个集群都有且只有一个名为default_catalog 的 Internal catalog,包含一个或多个数据库。

External catalog 是外部数据目录,用于连接数据湖中的数据。您可以将 StarRocks
作为查询引擎,直接查询湖上数据,无需导入数据至 StarRocks。

2、数据库

数据库是包含表、视图、物化视图等对象的集合,用于存储、管理和操作数据。

3、表

StarRocks 中的表分为两类:内部表和外部表。

内部表归属于 Internal catalog 的数据库,数据保存在 StarRocks 中。内部表由行和列构成,每一行数据是一条记录。
内部表分四种
主键表
明细表
聚合表
更新表
外部表是 External catalog 中的表,实际数据存在外部数据源中,StarRocks 只保存表对应的元数据,您可以通过外部表查询外部数据。

4、物化视图

物化视图是特殊的物理表,能够存储基于基表的预计算结果。当您对基表执行复杂查询时,StarRocks
可以自动复用物化视图中的预计算结果,实现查询透明加速、湖仓加速和数据建模等业务需求。物化视图分为同步物化视图和异步物化视图。其中异步物化视图能力更加强大,能够存储基于多个基表(内部表和外部表)的预计算结果,并且支持丰富的聚合算子。

5、视图

视图(也叫逻辑视图)是虚拟表,不实际存储数据,其中所展示的数据来自于基表生成的查询结果。每次在查询中引用某个视图时,都会运行定义该视图的查询。

6、权限系统

权限决定了哪些用户可以对哪些特定对象执行哪些特定的操作。StarRocks
采用了两种权限模型:基于用户标识的访问控制和基于角色的访问控制。您可以将权限赋予给角色然后通过角色传递权限给用户,或直接赋予权限给用户标识。

7、存算分离架构下的存储方式

StarRocks 从 3.0 版本开始引入存算分离架构,数据存储功能从原来的 BE 中抽离,数据可持久存储在更为可靠廉价的远端对象存储(如
S3)或 HDFS 上,本地磁盘只用于缓存热数据来加速查询。

你可能感兴趣的:(StarRocks,Starrocks)