Introduction To StarRocks

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

Introduction to StarRocks

2022-11
StarRocks
Product Positioning
Modern Data Infrastructure 3
StarRocks in the big data stack 4

HDFS S3 Hudi Iceberg


StarRocks community users 5
StarRocks community 6

GitHub Star 3300+


10,000+
150+
StarRocks scenario 7

⾯向客户的报表 ⾯向经营的报表 末端运营分析

⼴告主报表 管理驾驶舱 连锁⻔店分析

团⻓运营报表 实时⼤屏 营业⽹点分析

To B端运营报表 Dashboard 经纪⼈绩效分析

实时⻛控、审计 ⼀线业务⼈员绩效考核分析

实时监控

⽤户画像 订单分析

精准营销 实时库存

客群圈选 销售预测

⻛险预警 订单追踪

渠道分析 营销分析
StarRocks in the cloud 8

源代码开放 腾讯云上线SR 社区⼀周年


StarRocks 在Github开源 腾讯云跟进 StarRocks 30家公司分享了SR的使
所有核⼼代码,完全 也成为腾讯云EMR产品 ⽤经验,包括腾讯,美
open core的模式开发 线成⻓最快的产品 团,⼩红书,携程。阿⾥
云启动全托管SR服务。

2021.09 2022.03 2022.04 2022.09 2022.09 2023+

阿⾥云上线 SR AWS SaaS 发布 多云产品


阿⾥云第⼀家国内数据库 StarRocks cloud BYOC StarRocks 3.0的云原⽣
公司⽤⼀⽅产品的形式上 海外产品⾸次⾯试,是 架构会在海外多云发布
线EMR StarRocks海外战略的重
要⼀步
OLAP技术发展
From OLAP to Lakehouse
OLAP 10

• ClickHouse : 利⽤向量化技术实现单表的极致性能
• Druid:实时导⼊,实时聚合,解决实时⾼并发 • StarRocs 多表极速性能—> 统⼀OLAP
• Kylin:通过预聚合实现离线场景查询加速
• Presto : Adhoc即席查询,直接分析外部数据源
11

• 云⼚商:基于对象存储S3/OSS/COS构建的统⼀存储
• Iceberg/Hudi: ⽀持Upsert,Time travel等⾼级特性的存储
• ⽤户:能够把所有结构化、半结构、⽆结构数据存进去

• 更低的存储成本,更⾼可靠性:从HDFS 到对象存储
• 更好的Table format:⽀持ACID事务,⽀持Schema evolution
• 更好的File format:⽀持半结构化map、Struct、Json,⽀持嵌套结构。
• 统⼀的Catalog: 统⼀元数据管理、权限管理、统计信息管理、⼊湖管理

统⼀的数据管理

Single Source Of Truth


OLAP 12

• 数仓加速:基于数据湖的远程IO成本⾼,早期的数据湖格式不成熟,索引不完善,查询
性能需要提升,数据湖的底座针对吞吐优化,关注低成本和⾼可靠,不适应⾼性能需
求。
• 实时分析:基于数据湖的存储实时性不够,⽆法解决秒级实效性的问题
• ⾼并发查询:对于⾼并发查询,我们需要降低数据的扫描量,⼀种是聚合类查询需要通
过预计算的⼿段来提⾼并发,⼀种是点查需要有细粒度的数据裁剪和索引优化来提升。

湖上建OLAP的模式解决了新问题

但是带来了额外的数据管理成本
LakeHouse 13

• DataBricks提出了
Lakehouse概念,并且能够
在湖上分析达到
WareHouse的效果

• 可惜核⼼的向量化Photon
引擎并不开源
StarRocks 14

• Open Architecture
• 查询引擎可以直接查询各
类表格式和数据格式
• Catalog 元数据管理
• ⽀持HDFS和对象存储
• ⾃有存储做为实时⾼并发
场景的补充
• 物化视图透明加速,不增
加额外的管理成本

在云原⽣环境下 LakeHouse = OLAP + DLA


让数据湖分析和数仓⼀样快
让实时⾼并发的OLAP数据统⼀管理
StarRocks
How to landing
User case collection

阿⾥云 众安 携程 马蜂窝 松果出⾏

微信 理想汽车 汽车之家 滴滴 腾讯游戏

波克城市 欢聚集团 37⼿游 顺丰 京东物流 京东到家

58同城 ⼩⽶ 搜狐 ⼩红书 华⽶ 360 得物

酷家乐 DMALL 华润万家 酷开 百草味

OPPO 美团餐饮SaaS Mobivsta 贝壳

Row Data
User case — Airbnb : Metric layer — Minerva

Denormalize compute
cost is very high Background and Pain Points
Minerva 是 Airbnb 内部的统⼀指标平台
DB Exports Dimension Table
Denormalized 愿景: ”Define metrics once, use them
Wide Table
everywhere"

Logging Fact Table

超过 12,000 metrics 和 4,000 维度


3rd Party Data Dimension Table
Denormalized
Wide Table ⽀持多个数据分析场景,包括 A/B testing, data
Fact Table exploration, and report analysis.
在 Minerva v1中,都是数据加⼯好写⼊Druid
所有数据变更都需要⼩时级别的重新加⼯

Row Data Minerva Query Layer


User case — Airbnb : Metric layer — Minerva

Minerva on Demand, Powered


by StarRocks
DB Exports Dimension Table
Denormalized
Wide Table 不需要预聚合
Logging Fact Table
⾼基数场景性能更好,尤其是⾼基数的聚
3rd Party Data Dimension Table 合和去重

Fact Table
只有不到20%的数据需要预聚合以及宽表
打平,80%都直接⽤星形模型计算

提升数据freshness 降低 TCO

Row Data Minerva StarRocks


User case — Airbnb : Tableau Dashboard

StarRocks之前 使⽤Presto直连 Tableau


使⽤ StarRocks 后:
CBO⾃动给复杂查询⽣成执⾏计划
Broker Load 每天导⼊~350GB, ~400M rows prepay
100M to 100B rows table 现场Join
运营报表和管理报表,包括 booking, ordering,
cancelling, 平均延迟 < 5s
使⽤ Json 类型⽀持半结构化分析。
即将升级到 2.4 版本,准备⽤物化视图进⼀步加速
User case — Airbnb: Trust analysis

场景

• 提升Trust service 的实时效果,反欺诈部门需要⼀套新


的实时处理框架,来解决商家问题和⽀付过程的欺诈问

痛点

• 之前没有合适的解决⽅案

解决⽅案

• 使⽤Primary key来解决实时更新问题
• 从kafka同步数据 sub-minute延迟.
• 复杂多表关联 sub-second 延迟好.
• Alerting can be achieved by just running a SQL query regularly.
User case — 腾讯游戏

场景
• 400+ 游戏内数据和⽤户⾏为数据
• 运营实时数据分析

痛点
• 之前尝试过使⽤ClickHouse + Trino,但是两套系统难以融合
• 使⽤Iceberg + COS 但是查询性能不够满意
• 查询的峰⾕差异⼤,需要弹性来降低成本

解决⽅案
• StarRocks primary key来解决实时更新的问题
• 使⽤K8s operator 来解决了弹性问题
• OLAP 查询和Adhoc 查询性能都得到提升,尤其是多表查询
User case — ⼩红书 user facing analytics

Pain Points StarRocks


场景
• 20+ 应用,300+宽表,1000+写入 • 太多Flink任务,难以满足业 • 新架构,Flink专注数据处理加
任务,6000+core 务需求 工,SR负责OLAP查询,用物化视
• 峰值10000qps, 600亿单日写入 • clickhouse 并发性能不够 图简化业务逻辑
• 电商实时分析场景,广告业务, • 多套数据库运维成本高 • 统一数据,一份数据源
广告效果分析 • 解决广告平台高并发的痛点
StarRocks
Technical highlights
World-class Engineering Features 24

向量化引擎 适合更新的列存引擎
全⾯向量化,极致性能 为实时⽽设计的分析型存储引擎

CBO 优化器 数据湖分析


⾼性能多表关联 直接分析Hive / Iceberg / Hudi

智能物化视图 资源隔离
⽀持同步更新和异步更新,⾃动改写 ⽀持多租户隔离和多负载管理
25

Scan Compression Indexes Vectorized

min 100
max 200

min 500
max 800
• SIMD 指令
• Min/max 索引
• 降低IO • 4-8x 压缩率 • CPU 预取和缓存友好
• 前缀索引
• SIMD 过滤 • ⾃适应编码 • 分⽀预测优化
• ⼆级索引

IO acceleration CPU acceleration


Benchmark — SSB Flat vs other real-time OLAP

SSB is the most famous flat table benchmark for analytical databases.
StarRocks got 1.8x faster than ClickHouse, and 2.2x with bitmap index.
Benchmark report link. Testing tools download link.
CBO 27
Benchmark — TPC-DS vs Cloud data warehouse

Comparing to the famous cloud data warehouse on TPC-DS datasets.


StarRocks got around 2x faster in Scale 100 with the same hardware.
29

• 查询

• 利⽤CBO和向量化查询性能3x提升

• 元数据

• ⽀持Multi-catalog,⽆缝对接HMS/DLF/GLUE

• 湖格式

• ⽀持 Hudi's MOR/COW, Iceberg v1/v2

• 数据格式

• ⽀持标准的Parquet/Orc/CSV

• 延迟物化,IO合并

• 弹性

• ⽀持K8s 弹性部署
Benchmark — TPC-H vs Lakehouse

• TPC-H 100G benchmark


• StarRocks 外表是Trino的3.3 倍
31

• 为实时导⼊场景下查询性能优化的存储引擎
• Delete-and-insert 模式的优势
• 对⽐Merge-on-read: 避免sort merge的开销,不存在频繁写⼊下读放⼤的问题
• 对⽐ Copy-on-write: 避免过多的写放⼤
• 对⽐ Delta store: 能够充分利⽤⼆级索引
32

• 物化视图有两层含义
• “物化”通过额外的存储空间来缓存建模的中间结果,通
过复⽤计算完成的物化结果来实现加速。
• “视图”是强调逻辑语义,可以对上层提供统⼀的
schmea,屏蔽复杂性,⽅便权限管理。
• 根据数仓分层逻辑对应
• 单表物化视图 / 多表物化视图 / 外表物化视图
• ⽀持更新和删除
• ⽀持⾃动查询改写,查询加速场景不需要修改SQL可以适
配BI等⾃动⽣成SQL场景
33

• ⽀持多租户
• 资源隔离单位
• CPU / 内存 / IO线程
• 并发/Scanrows/Scanbytes
• 查询调度
• Pipeline引擎的⽤户态协程调度
• 查询分类
• ⽤户/ Role/ IP / 查询类型
StarRocks
Future Roadmap
StarRocks 3.0 LakeHouse
StarRocks 3.0 Unified Streaming & Batching
StarRocks 3.0 Cloud native
End

谢谢观看
THANKS FOR YOUR WATCHING

公众号:StarRocks

You might also like