大数据技术7:基于StarRocks统一OALP实时数仓
前言: 大家对StarRocks 的了解可能不及 ClickHouse或者是远不及 ClickHouse 。但是大家可能听说过 Doris ,而 StarRocks 实际上原名叫做 Doris DB ,他相当于是一个加强版的也就是一个 Doris+ ,也就是说 Doris 所有的功能 StarRocks 都是有的,但是 StarRocks 有的这种加速的功能 Doris 目前是没有的。我们可以基于 Apache Doris 统一 OLAP 技术栈,满足庞大数据体量下的实时分析与极速查询。
1、什么是StarRocks?
StarRocks原名DorisDB,StarRocks 是 Apache Doris 的 Fork 版本。StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,可使用 MySQL 客户端和常用 BI 工具对接。同时 StarRocks 具备水平扩展,高可用、高可靠、易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。
StarRocks 架构简洁,采用了全面向量化引擎,并配备全新设计的 CBO (Cost Based Optimizer) 优化器,查询速度(尤其是多表关联查询)远超同类产品。
-
StarRocks 能很好地支持实时数据分析,并能实现对实时更新数据的高效查询。StarRocks 还支持现代化物化视图,进一步加速查询。
-
多分布式 Join极速引擎,这个分布式 Join 目前就是 ClickHouse 比较缺乏的一个功能。如果了解 spark 或者了解 presto 的话,其实都应该知道这都是有的,就是说这个其实就是做 Shuffle ,就是把不同的 Key 给 Shuffle 到同一个 bucket 里边,然后再去做 Join ,然后右边实际上是一个更加高效的一种 Join 方式也就是提前的去做好了这个 bucket 的分类,也就是说同一个 Key,两张表相同的 Key ,全部落到同一个 bucket 的范围,然后这个 bucket 的之间肯定是没有 over lap ,所以可以放心的做这个Colocate joy ,在这个 spark 里面也叫 bucket join 。
-
使用 StarRocks,用户可以灵活构建包括大宽表、星型模型、雪花模型在内的各类模型。
-
StarRocks 兼容 MySQL 协议,支持标准 SQL 语法,易于对接使用,全系统无外部依赖,高可用,易于运维管理。StarRocks 还兼容多种主流 BI 产品,包括 Tableau、Power BI、FineBI 和 Smartbi。
2、使用Doris替换ClickHouse、Kylin和Druid
这里有一家电子商务SaaS提供商,其数据系统提供实时和离线报告、客户分割和日志分析服务。最初,他们为这些不同的目的使用了不同的OLAP引擎:
-
Apache Kylin用于离线报告:该系统为超过500万个卖家提供离线报告服务。其中的大型卖家拥有超过1000万注册会员和100,000个SKU,详细信息放在平台上的400多个数据立方体中。
-
ClickHouse用于客户分割和Top-N日志查询:这需要高频更新、高QPS和复杂的SQL。
-
Apache Druid用于实时报告:卖家通过组合不同的维度提取所需的数据,这种实时报告需要快速的数据更新、快速的查询响应和系统的强大稳定性。

这三个组件都有各自的痛点:
-
Apache Kylin在固定表模式下运行良好,但每次添加维度时,需要创建一个新的数据立方体并在其中重新填充历史数据。
-
ClickHouse不适用于多表join处理,因此需要额外的解决方案来进行联合查询和多表连接查询。在高并发场景下,它的表现低于预期。
-
Apache Druid实现了幂等写入,因此它本身不支持数据更新或删除。这意味着当上游出现问题时,需要进行完整的数据替换。如果您从头到尾考虑所有数据备份和移动,这样的数据修复是一个多步骤的过程。此外,新摄入的数据在放入Druid中的段之前将无法用于查询。这意味着存在更长的时间窗口,从而导致上下游之间的数据不一致。
由于它们共同工作,这种架构可能太难以维护,因为它需要在开发、监控和维护方面了解所有这些组件。此外,每次用户扩展集群时,他们必须停止当前集群并迁移所有数据库和表,这不仅是一个巨大的任务,而且会对业务造成巨大的干扰。基于上述架构痛点,友赞对市面上的架构进行了调研与选型,希望选择一款能够简化当前复杂架构、统一 OLAP 技术栈的引擎。他们除了分析 OLAP 性能本身对于业务的帮助,还需要评估架构改造所带来的收益成本比,思考架构进行迁移和重构之后所带来的 ROI 是否符合预期。

Apache Doris填补了这些空白。
-
查询性能:Doris擅长高并发查询和JOIN连接查询,并且现在配备了倒排索引以加速日志搜索。
-
数据更新:Doris的唯一键模型支持大容量更新和高频实时写入,而重复键模型和唯一键模型支持部分列更新。它还提供数据写入的恰好一次保证,并确保基表、物化视图和副本之间的一致性。
-
维护:Doris与MySQL兼容。它支持轻松扩展和轻量级模式更改。它配备了自己的集成工具,如Flink-Doris-Connector和Spark-Doris-Connector。

3、 StarRocks和ClickHouse压测性能对比
这里比较了两个组件在SQL和连接查询方案上的性能,并计算了Apache Doris的CPU和内存消耗。
2.1 SQL查询性能
Apache Doris在16个SQL查询中的10个中表现优于ClickHouse,最大的性能差距比例接近30。总体而言,Apache Doris比ClickHouse快2~3倍。

2.2 连接查询性能
对于连接查询测试,使用了不同大小的主表和维表。
-
主表:用户活动表(40亿行)、用户属性表(250亿行)和用户属性表(960亿行)
-
维表:100万行、1000万行、5000万行、1亿行、5亿行、10亿行和25亿行。
测试包括完全连接查询和过滤连接查询。完全连接查询连接主表和维表的所有行,而过滤连接查询使用WHERE过滤器检索特定卖家ID的数据。结果如下:
主表(40亿行):
-
完全连接查询:Doris在所有维表的完全连接查询中均优于ClickHouse。随着维表变大,性能差距越来越大。最大的差距比例接近5。
-
过滤连接查询:基于卖家ID,过滤器从主表中筛选出了4100万行。对于小型维表,Doris比ClickHouse快2~3倍;对于大型维表,Doris比ClickHouse快10倍以上;对于大于1亿行的维表,ClickHouse会抛出OOM错误,而Doris则正常运行。
主表(250亿行):
-
完全连接查询:Doris在所有维表的完全连接查询中均优于ClickHouse。ClickHouse在维表大于5000万行时会产生OOM错误。
-
过滤连接查询:过滤器从主表中筛选出了5.7亿行。Doris在几秒钟内响应,而ClickHouse在连接大型维表时完成时间为几分钟,并在此过程中崩溃。
主表(960亿行):
Doris在所有查询中都表现出相对较快的性能,而ClickHouse无法执行所有查询。
在CPU和内存消耗方面,Apache Doris在所有大小的连接查询中都保持稳定的集群负载。
参考链接:
从 Clickhouse 到 Apache Doris:有赞业务场景下性能测试与迁移验证
开源大数据 OLAP 引擎最佳实践 | 学习笔记(二)-阿里云开发者社区
相关文章:
大数据技术7:基于StarRocks统一OALP实时数仓
前言: 大家对StarRocks 的了解可能不及 ClickHouse或者是远不及 ClickHouse 。但是大家可能听说过 Doris ,而 StarRocks 实际上原名叫做 Doris DB ,他相当于是一个加强版的也就是一个 Doris ,也就是说 Doris 所有的功能 StarRocks 都是有的&a…...
C# WPF上位机开发(网络程序界面开发)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 之前我们讨论过,设备之间通讯的方式很多。但是,不知道大家有没有注意,前面谈到的这些通讯方式都需要上位机电脑…...
卡码网语言基础课 | 20. 排队取奶茶
目录 一、 队列的基本认识 二、 队列的操作 2.1 引入头文件 2.2 创建队列 2.3 队列的常见操作 三、 解题 通过本次练习,将会学习到以下C知识点: 队列的基本概念(队头、队尾)和特点(先入先出)入队、出队…...
Angular 进阶之四:SSR 应用场景与局限
应用场景 内容丰富,复杂交互的动态网页,对首屏加载有要求的项目,对 seo 有要求的项目(因为服务端第一次渲染的时候,已经把关键字和标题渲染到响应的 html 中了,爬虫能够抓取到此静态内容,因此更…...
vue2 cron表达式组件
vue2 cron表达式组件 1. 先上图 2. 代码目录 3. 直接上代码 (组件代码太多,直接上压缩包,解压后直接用,压缩包再博客顶部) 4. 使用注:示例代码中使用了element-ui // HomeView.vue<template><…...
git-vscode
git-vscode ctrlshiftp 创建分支 create branch 直接切到新的分支了 切换分支 直接点左下角自己选择 vscode中配置仓库 https://blog.csdn.net/zora_55/article/details/129709251 推送tag tag作用就是在 Git 中,标记存储库历史记录中特定提交的一种方式。t…...
【C++11(三)】智能指针详解--RAII思想循环引用问题
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C 🔝🔝 C11 1. 前言2. 为什么要有智能指针?3. RAII思想…...
佳明(Garmin) fēnix 7X 增加小睡检测功能
文章目录 (一)零星小睡(二)小睡检测(三)吐槽佳明(3.1)心率检测(3.2)光线感应器(3.3)手表重量(3.4)手表续航 &a…...
二、如何保证架构的质量、架构前期准备、技术填补与崩溃预防、系统重构
1、如何保证架构的质量 -- 稳定性和健壮性 2、正确的选择是良好的开端 -- 架构前期准备 ① 架构师分类:系统架构师、应用架构师、业务架构师 3、技术填补与崩溃预防 4、系统重构...
14、SQL注入——HTTP文件头注入
文章目录 一、HTTP Header概述1.1 HTTP工作原理1.2 HTTP报文类型1.3 较重要的HTTP Header内容 二、HTTP Header注入2.1 HTTP Header注入的前提条件2.2 常见的HTTP Header注入类型 一、HTTP Header概述 1.1 HTTP工作原理 1.2 HTTP报文类型 (1)请求报文 …...
李宏毅bert记录
一、自监督学习(Self-supervised Learning) 在监督学习中,模型的输入为x,若期望输出是y,则在训练的时候需要给模型的期望输出y以判断其误差——有输入和输出标签才能训练监督学习的模型。 自监督学习在没有标注的训练…...
.Net6.0 Microsoft.AspNetCore.Http.Abstractions 2.20 已弃用
您想要升级 Microsoft.AspNetCore.Http.Abstractions 包,您需要注意以下几点: Microsoft.AspNetCore.Http.Abstractions 包在 ASP.NET Core 2.2 版本后已经被标记为过时,因为它已经被包含在 Microsoft.AspNetCore.App 框架引用中12。因此&am…...
c2-C语言--指针
1.用一级指针遍历一维数组 结论 buf[i]<>*(buf i) <> *(p i)<> p[i] #include <stdio.h>int main(){int buf[5] {10,20 ,30 ,40,50}; //buf[0] --- int // buf --&buf[0] ----int *int *p buf;//&buf[0] --- &*(buf0)printf(&quo…...
kafka入门(四):消费者
消费者 (Consumer ) 消费者 订阅 Kafka 中的主题 (Topic) ,并 拉取消息。 消费者群组( Consumer Group) 每一个消费者都有一个对应的 消费者群组。 一个群组里的消费者订阅的是同一个主题,每个消费者接收主题的一部分分区的消息…...
DFS、BFS求解leetcode图像渲染问题(Java)
目录 leetcode733题.图像渲染 DFS BFS leetcode733题.图像渲染 733. 图像渲染 - 力扣(LeetCode) 有一幅以 m x n 的二维整数数组表示的图画 image ,其中 image[i][j] 表示该图画的像素值大小。 你也被给予三个整数 sr , sc 和 newColor …...
0基础学习云计算难吗?
很多人经常会问云计算是什么?云计算能干什么?学习云计算能做什么工作?其实我们有很多人并不知道云计算是什么,小知今天来给大家讲讲学习云计算能做什么。 中国的云计算行业目前正处于快速发展阶段,随着互联网和数字化…...
【RabbitMQ高级功能详解以及常用插件实战】
文章目录 队列1 、Classic经典队列2、Quorum仲裁队列3、Stream流式队列4、如何使用不同类型的队列 二、死信队列 队列 classic经典队列,Quorum仲裁队列,Stream流式队列 1 、Classic经典队列 这是RabbitMQ最为经典的队列类型。在单机环境中,…...
开源的数据流技术,该选择Redpanda还是Apache Kafka?
本文将比较Apache Kafka和Redpanda两种开源的数据流技术,在云原生实时处理能力上的不同,以及如何在项目中做出选择。 目前,Apache Kafka不但成为了数据流处理领域事实上的标准,而且带动了同类产品的出现。Redpanda就是其中之一…...
720度vr虚拟家居展厅提升客户的参观兴致
VR虚拟展厅线上3D交互展示的优势有以下几点: 打破了场馆的展示限制,可展示危险性制品、珍贵稀有物品、超大型设备等,同时提供了更大的展示空间和更丰富的展示内容。 可提供企业真实环境的实时VR全景参观,提升潜在客户信任度。 提供…...
mysql中的DQL查询
表格为: DQL 基础查询 语法:select 查询列表 from 表名:(查询的结果是一个虚拟表格) -- 查询指定的列 SELECT NAME,birthday,phone FROM student -- 查询所有的列 * 所有的列, 查询结果是虚拟的表格&am…...
技术难题攻克指南:Retrieval-based-Voice-Conversion-WebUI常见问题全景解析
技术难题攻克指南:Retrieval-based-Voice-Conversion-WebUI常见问题全景解析 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieva…...
Legacy iOS Kit终极指南:解锁旧iOS设备的完整控制权
Legacy iOS Kit终极指南:解锁旧iOS设备的完整控制权 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit 在…...
抛开Transformer,我们还能如何理解Attention机制?
对于许多软件测试从业者而言,“Attention机制”这个词常常与Transformer、BERT、GPT这些大模型名词紧密捆绑,仿佛是深度学习“黑盒”中一个难以触及的复杂组件。然而,当我们暂时抛开Transformer这棵参天大树,回归到Attention机制本…...
避坑指南:在YOLOv5-7.0中融合BiFPN时,如何平衡P2检测头带来的精度与速度损耗?
YOLOv5-7.0中BiFPN与P2检测头的精度与速度平衡实战 当你在无人机航拍画面中寻找几毫米大小的电子元件时,或者在显微镜图像中定位细胞核位置时,传统目标检测模型的性能往往会大打折扣。这正是微小目标检测技术大显身手的场景——而YOLOv5作为工业界最受欢…...
Win10下MobSF安装避坑指南:从Python版本冲突到环境变量配置全解析
Win10下MobSF安装避坑指南:从Python版本冲突到环境变量配置全解析 移动应用安全测试已成为开发流程中不可或缺的一环。作为一款强大的开源工具,MobSF(Mobile Security Framework)因其全面的自动化分析能力备受开发者青睐。然而在…...
30分钟搞定OpenClaw:Qwen3-4B镜像云端体验与技能测试
30分钟搞定OpenClaw:Qwen3-4B镜像云端体验与技能测试 1. 为什么选择云端体验OpenClaw 上周我在本地尝试部署OpenClaw时,被各种环境依赖和配置问题折磨得够呛。正当我准备放弃时,偶然发现星图平台提供了预置OpenClaw和Qwen3-4B模型的完整镜像…...
OpenClaw本地模型对比:千问3.5-35B-A3B-FP8与开源替代方案
OpenClaw本地模型对比:千问3.5-35B-A3B-FP8与开源替代方案 1. 为什么需要本地模型对比 当我第一次尝试在OpenClaw中接入本地大模型时,面对众多开源选项感到非常困惑。每个模型都宣称自己性能优越,但实际部署后却发现资源消耗、推理速度与预…...
Termius Pro功能免费解锁指南:修改background-process.js实现永久订阅
Termius订阅机制解析与安全使用建议 Termius作为一款广受开发者欢迎的SSH客户端工具,其Pro版本提供了诸多实用功能。本文将深入探讨Termius的订阅验证机制工作原理,并从技术角度分析如何安全合规地使用该工具。 1. Termius订阅机制技术解析 Termius采用典…...
SEO_ 揭秘影响搜索引擎排名的核心SEO因素
SEO的核心因素解析:提升搜索引擎排名的关键路径 在当今数字化时代,搜索引擎优化(SEO)已经成为每个网站和企业获取有效流量的重要途径。究竟有哪些核心因素影响搜索引擎的排名呢?本文将深入探讨这些核心SEO因素&#x…...
数据库表的性能优化过程
问题背景做一个数据库表查看、标注与分析的工具软件。是数据库中表的信息(information_schema.tables);是的数据字典文档,存储在本地文件中;是对的额外标注信息,存储在另一个数据库中。每一条,最…...
