一文速通 StarRocks 数据库:核心概念、架构与特性

Author: Xinyao Tian

概述

本文档简要梳理了 StarRocks 的基本信息。

简介 Introduction

StarRocks 是面向下个时代的,高性能的数据分析仓库。其提供了实时、多维度、高并发的数据分析能力。

StarRocks is a next-gen, high-performance analytical data warehouse that enables real-time, multi-dimensional, and highly concurrent data analysis.

特性 Features

StarRocks 具有如下功能特性 [1]:

  • 基于 MPP 架构 (Massively Parallel Processing architecture)

  • 完全向量化处理引擎 (Fully vectorized execution engine)

  • 列式存储 (columnar storage)

  • 实时更新 (real-time updates)

  • 完全可自定义的基于成本的优化器 (Fully-customized cost-based optimizer)

  • 智能物化视图 (Intelligent materialized view)

  • 丰富数据源的实时数据注入 (real-time data ingestion from a variety data sources)

  • 丰富数据源的批量数据注入 (batch data ingestion from a variety data sources)

  • 无数据迁移的数据湖分析 (Directly analyze data stored in data lakes with zero data migration)

  • 兼容 Mysql 客户端连接协议 (compatible with MySQL protocols)

  • 可扩展、高可用、易运维 (highly scalable, available, and easy to maintain)

  • 广泛应用于业界 OLAP 分析领域 (widely adopted in the industry with OLAP scenarios)

Fast-speed multi-table joins = MPP + fully vectorized engine + CBO + intelligent materialized view

架构 Architecture [2]

宏观架构

亮点:组件简单、可水平扩展、metadata 也有 replica 提供高可用 (metadata 被完整存储于每台 FE 的内存)

主要分工:

FE (ForntEnd) 负责元数据管理、客户端连接、查询计划、查询调度:

  • Leader:元数据的变更,并通过 BDE JE 协议将 metadata 同步至其他 FEs (Follower 和 Observer)

  • Follower:参与竞选并在内存中同步存储完整的 metadata

  • Observer:不参与选举的 Follower,仅作为性能扩展的 FE

BE (BackEnd) 主要负责数据存储和 SQL 执行和计算:

  • 数据存储:BEs 接受从 FEs 分配来的数据,并将数据按照指定格式写入,并生成 Index

  • SQL 执行:BEs 接收从 FEs 处理后的物理执行计划并将目标数据缓存并执行查询

数据管理架构

StarRocks 同时使用分区 (Partitioning) 和分桶 (Bucketing) 机制对数据进行管理,以增强查询的效率和并发度。

如下图所示,一张表被根据时间分为四个分区,同时第一个分区内又被分为了四个数据小块 (Data Tablet) 。每个数据小块又创建了三份备份 (Replica) 并被分别存储在不同的 BE 上。由于一张表被分解成了多个数据小块,因此 StarRocks 可以将一个 SQL 查询语句分派到多个物理节点上并行执行,从而最大化物理主机和处理器的计算能力,同时还可以提升服务的可用性。用户可以轻松地按需扩展物理主机从而获得更高的并发性能。

亮点:No Need for manual data redistribution (StarRocks 会自动根据新加入或删除的物理节点进行数据小块再分配,而不需要手动进行数据均衡。StarRocks 默认的 Replica 数量为 3)

常见应用场景 Scenarios

StarRocks 基于上述的架构和功能特性可以为我们在如下场景中解决诸多问题。

OLAP multi-dimensional analytics

StarRocks 的 MPP 架构配合向量执行引擎可以让用户在不同的 schemas 之间进行选择并开发多维度分析报告。主要的应用场景包括:

  • 用户行为分析 (User behavior analysis)

  • 用户画像、用户标签、标签分析 (User profiling, user tagging, label analysis)

  • 高纬度指标分析报告 (High-dimensional metrics report)

  • 自助数据仪表板 (Self-service dashboard)

  • 服务异常探测和分析 (Service anomaly probing and analysis)

  • 跨场景分析 (Cross-theme analysis)

  • 金融数据分析 (Financial Data analysis)

  • 系统监测分析 (System monitoring analysis)

Real-time analytics

StarRocks 使用主键表来进行实时更新。在 StarRocks 的 TB 级数据库的数据改变可以被在数秒内得到同步并用于搭建实时数据仓库。主要的应用场景包括:

  • 在线促销分析 (Online promotion analysis)

  • 物流跟踪和分析 (Logistics tracking and analysis)

  • 金融领域的性能分析和指标计算 (Performance analysis and metrics computation for the financial industry)

  • 在线直播的质量分析 (Quality analysis for livestreaming)

  • 广告放置位置分析 (Ad placement analysis)

  • 驾驶舱管理 (Cockpit management)

  • 应用性能管理 (Application Performance Management (APM))

High-concurrency analytics

StarRocks 借助高效的数据分布,灵活的 Index 和智能化物化视图来促进面向用户的高并发分析。主要的应用场景包括:

  • 广告商报告分析 (Advertiser report analysis)

  • 零售业渠道分析 (Channel analysis for the retail industry)

  • Saas 面向用户分析 (User-facing analysis for SaaS)

  • 多表仪表板分析 (Multi-tabbed dashboard analysis)

Unified analytics

StarRocks 提供了一致性的数据分析体验。

  • 一个系统提供了应对多种分析场景的能力,显著降低系统复杂度和总体采购成本 (TCO)

  • 提供了统一的数据湖和数据仓库接口。

核心机制与技术 Core Mechnism and Tech

StarRocks 使用了许多先进的技术为用户在大数据集的场景提供侵略如火般的实时分析体验。其核心技术如下所示,在此处暂不做原理的解释和说明。详情请参考 [3]。

  • MPP 架构 (MPP Framework): StarRocks 并行处理大规模数据的核心理论依据

  • 完全向量化的执行引擎 (Fully Vectorized Execution Engine)

  • 基于成本的优化器 (Cost-based Optimizer)

  • 实时的,可更新的列式存储引擎 (Real-time, updatable columnar storage engine)

  • 智能的物化视图 (Intelligent materialized view): 物化视图自动更新 (无需手动操作和人工介入) 且自动进行查询优化

  • 数据湖直连分析 (Data lake analytics): 通过 Catalog 达成湖仓直连无需转换或导数

References

  • [1] StarRocks DB 简介: https://docs.starrocks.io/en-us/latest/introduction/StarRocks_intro

  • [2] StarRocks 架构: https://docs.starrocks.io/en-us/latest/introduction/what_is_starrocks

  • [3] StarRocks 特性: https://docs.starrocks.io/en-us/latest/introduction/Features

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/155670.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型

从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型 一、重写config文件二、开始训练三、ncnn部署 从零开始的目标检测和关键点检测(一):用labelme标注数据集 从零开始的目标检测和关键点检测…

【深度学习】pytorch——快速入门

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ pytorch快速入门 简介张量(Tensor)操作创建张量向量拷贝张量维度张量加法函数名后面带下划线 _ 的函数索引和切片Tensor和Numpy的数组之间的转换张量(tensor)与标量…

分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测

分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测 目录 分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双…

纯css实现手机端loading

纯css实现手机端loading <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"wid…

css画一条虚线,用到background-image:linear-gradient线性渐变的属性

CSS实现虚线的方法_css 虚线_saltlike的博客-CSDN博客 渐变属性(background-image)全解析_background-image linear_大聪明码农徐的博客-CSDN博客 Background:linear-gradient()详解_background: linear-gradient_小白白中之白的博客-CSDN博客 注意&#xff1a; 必须要写高…

【C++的OpenCV】第十四课-OpenCV基础强化(三):单通道Mat元素的访问之data和step属性

&#x1f389;&#x1f389;&#x1f389; 欢迎来到小白 p i a o 的学习空间&#xff01; \color{red}{欢迎来到小白piao的学习空间&#xff01;} 欢迎来到小白piao的学习空间&#xff01;&#x1f389;&#x1f389;&#x1f389; &#x1f496; C\Python所有的入门技术皆在 我…

UI自动化测试 | Jenkins配置优化

前一段时间帮助团队搭建了UI自动化环境&#xff0c;这里将Jenkins环境的一些配置分享给大家。 背景&#xff1a; 团队下半年的目标之一是实现自动化测试&#xff0c;这里要吐槽一下&#xff0c;之前开发的测试平台了&#xff0c;最初的目的是用来做接口自动化测试和性能测试&a…

Python自动化运维监控——批量监听页面发邮件(自由配置ini文件+smtplib)

一、程序样式 1.listen.ini配置文件 2.监控页面 3.日志 二、核心点 smtplib库&#xff1a;这里使用了smtp.qq.com与smtp.163.com两个发送邮件的地址&#xff0c;使用邮箱用户名与授权码来实现登录&#xff0c;端口都使用465&#xff0c;最后抛出异常&#xff0c;finally里…

oracle (9)Storage Relationship Strut

Storage & Relationship Strut 存储和关系支柱 目标&#xff1a; 描述数据库的逻辑结构列出段类型其用途列出控制块空间使用的关键字获取存储结构信息 一、基础知识 1、数据库逻辑结构图 2、Types of Segments 段的类型 3、Storage Clause Precedence 存储条款的优先顺序 …

【数据挖掘 | 数据预处理】缺失值处理 重复值处理 文本处理 确定不来看看?

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

HarmonyOS开发:开源一个刷新加载组件

前言 系统Api中提供了下拉刷新组件Refresh&#xff0c;使用起来也是非常的好用&#xff0c;但是风格和日常的开发&#xff0c;有着巨大的出入&#xff0c;效果如下&#xff1a; 显然上面的效果是很难满足我们实际的需求的&#xff0c;奈何也没有提供的属性可以更改&#xff0c;…

MySQL-Galera-Cluster集群详细介绍

目录 一、什么是Mysql集群&#xff1f;1.单节点mysql存在的常见问题2.mysql集群介绍3.Mysql集群的优点和风险 二、Mysql集群的一些疑问1.mysql的AB复制和Galera Cluster有什么区别&#xff1f;2.什么情况下适用AB复制&#xff0c;什么情况下使用Galera cluster&#xff1f;3.可…