从 Snowflake 到 StarRocks + Iceberg:Fanatics 在 6PB 规模下实现 90% 成本优化!

导读:

开源无国界。在本期「StarRocks 全球用户精选案例」中,我们走进全球领先的数字化体育平台——Fanatics。

作为各大体育联盟(如 NFL、NBA、MLB)的官方合作伙伴,Fanatics 运营着 900 多家在线商店,服务全球超 1 亿用户。在这些业务背后,Fanatics 每天需要处理约 10 亿条事件数据,涵盖 800 多种事件类型。从个性化推荐到实时库存决策,高效的数据处理能力已成为其核心业务线的底层支撑。

本文将详细介绍 Fanatics 如何将原本分散的技术栈,整合为基于 StarRocks 与 Apache Iceberg 构建的统一、开放的 Lakehouse 架构。该架构在 PB 级数据规模下,为数百名内部用户提供了亚秒级的仪表盘查询体验,在显著压降成本的同时,大幅提升了数据分析与业务迭代的效率。

随着数字化体验不断向个性化与数据驱动演进,企业对数据分析能力的要求也在持续提高:既要提供快速、可自助的分析能力,又不能显著增加成本或架构复杂度。然而,当历史数据与实时数据分散在不同系统时,这种平衡往往很难实现。

原有架构与挑战

Fanatics 原有的数据架构由多个计算引擎和存储层组成:

  • 数据仓库:Amazon Redshift 与 Snowflake

  • 数据湖:存储在 S3 上,通过 Athena 查询(查询延迟通常超过 30 秒)

  • 实时分析层:Druid,用于支撑实时仪表盘

这种多系统并行的架构逐渐带来了性能瓶颈、成本上升以及运维复杂度增加等问题:

  • Athena 的交互式查询性能难以满足实时场景需求(中位延迟通常超过 30 秒)。

  • 跨数据仓库的 Join 操作难以实现,团队不得不维护多份冗余数据副本。

  • Druid 难以支持更复杂的分析需求,例如事实表之间的 Join、主键更新以及点查询等。

  • 由于不同系统承担重叠的工作负载,且数据归属分散,数据仓库和数据传输成本持续上升。

  • 不同工具和团队之间缺乏统一的数据治理机制,也缺少清晰的数据归属与责任划分。

  • 强制反规范化:由于底层引擎在 Join 能力上的限制,数据在写入前往往需要提前进行反规范化处理。这不仅导致数据在多个系统中重复存储,还需要构建复杂且成本高昂的数据预处理与数据管道。

技术选型与方案评估

Fanatics 在选型初期评估过 ClickHouse 在内的多种 OLAP 引擎,但在多表 Join 和运维集成方面,这些引擎仍难以完全满足需求。

最终,他们选择了 StarRocks:高性能且功能完善的查询引擎、对 AWS Glue Catalog 的原生支持,以及支持自动查询改写的异步物化视图,使其能够更好地支撑统一的分析平台。

新一代数据架构

为解决原有架构的问题,Fanatics 构建了一套现代 Lakehouse 架构,整体技术栈包括:

  • 存储层: 以 S3 作为数据源(Source of Truth),并采用 Apache Iceberg 开放表格式;

  • 计算层: 选用 StarRocks 作为高性能查询与分析服务引擎;

  • 元数据管理: 统一接入 AWS Glue Catalog;

  • 转换与应用: 通过 dbt Core 进行数据建模,并利用 Superset 和基于 Bedrock 的 Text-to-SQL 智能体实现数据可视化与自助访问。

数据导入与表设计

Fanatics 支持多种 StarRocks 数据导入模式:

在表结构设计上,Fanatics 会根据实际的查询工作负载进行优化:

  • Primary Key :用于需要快速查询并支持实时更新的场景

  • Duplicate Key :用于高吞吐的追加写入(append-only)数据

  • Tablet 大小经过优化(约 1 GB),同时通过 tenant-aware 分区设计,避免数据倾斜以及产生大量小文件

性能优化

为了进一步提升查询速度和并发能力,Fanatics 采取了以下优化手段:

  • 异步物化视图 (AMV): 针对高频访问的业务场景,通过精细化配置刷新窗口和分区对齐,并利用自动改写功能,避免了手动重写 SQL 的麻烦。

  • 结合 EXPLAIN 和 ANALYZE 工具验证执行计划,确保分区裁剪(Pruning)和谓词下推(Pushdown)生效,提升查询效率。

  • 持续监控并优化 Colocate Join 和 Shuffle Join,最大限度减少节点间的 I/O 开销。

  • 针对高基数指标(High-cardinality metrics)配置多级聚合。

缓存与存储

Fanatics 在性能优化上采取了分层治理的策略:

  • 大部分查询直接访问 Iceberg 原表。通过开启 Data Cache,将热点数据块缓存在本地。

  • 仅当原表查询性能无法满足业务需求时,才会针对性地引入异步物化视图。

  • 目前 StarRocks 部署在基于 EBS 存储的 EC2 集群上(存算一体架构),未来计划向存算分离架构演进,以实现更灵活的弹性扩缩容。

收益

  • 成功替代了 Apache Druid 处理实时仪表盘业务。在大幅降低成本的同时,实现了在同一平台上兼顾 Join 、主键(PK)更新及高性能点查的能力。

  • 随着业务场景的整合迁移,Snowflake 的使用量下降了 95%,相关成本缩减了约 90%。

  • 针对 Iceberg 的即时查询(Ad-hoc)速度比原有的 Athena 快了 10 倍。

  • 单个 StarRocks 集群目前承载着数千张表及物化视图,支持通过统一查询层访问 PB 级的 Iceberg 数据。

  • 过去需要数天甚至数周才能完成配置的仪表盘,现在仅需几分钟即可上线。

未来规划

  • 深化 AI 应用: 探索跨数据集的对话式分析(Conversational Analytics)

  • 基于现有平台广泛接入 Streamlit,快速构建并交付轻量级数据应用。

  • 提高自动化程度: 实现新数据库与表资产的“无感接入” (Touchless Onboarding)

  • 强化灾备能力: 完善集群元数据的备份与恢复机制。

  • 以 StarRocks 为统一服务底座,整合并标准化公司的 BI 工具。

StarRocks+Apache Iceberg

Fanatics 的实践证明,通过将开放表格式与高性能查询引擎相结合,大型企业能够有效简化架构、压降成本,并大幅提升数据洞察的交付效率。

通过构建“流批一体”的统一技术栈,Fanatics 实现了对实时与历史数据的协同分析,不仅提升了运行效率,也让架构更加灵活可控。

如想进一步学习与交流,欢迎添加小助手,加入 StarRocks 社区群,与更多开发者共同探索交流。

推荐阅读:StarRocks全球用户精选案例

相关推荐

从“扫文件”到“找数据行”:StarRocks 支持 Paimon Global Index

一条 SQL,结合业务条件过滤与向量检索。

StarRocks的博客 177

StarRocks × Lance:打造极致性能的多模态湖仓

解析 Lance 接入架构、分布式检索与延迟物化设计。

StarRocks的博客 317

StarRocks + Paimon 多模态数据湖检索

本文将介绍 StarRocks 和 Paimon 在这个技术点上的整体思路、技术配合,以及在阿里集团和阿里云上的落地实践,最后回到雨夜加塞这个场景,完整走一遍从发现问题到验证改进的闭环。

StarRocks的博客 418

StarRocks × Fluss:用 SQL 衔接实时与历史数据

通过 Fluss Catalog 与冷热数据合读,StarRocks 将实时数据与 Paimon 历史数据接入统一 SQL 查询,减少数据进入分析的等待。

StarRocks的博客 301

StarRocks 接入 Paimon C++:让湖上查询进入原生执行链路

在不改变 Paimon 表语义和现有 SQL 使用方式的前提下,StarRocks 通过 Paimon C++ 减少跨语言调用与数据转换,使测试场景下的湖上查询获得约 1.4~3.4 倍加速。

StarRocks的博客 362

StarRocks 全面支持 Paimon 2.0:构建多模态统一分析与检索

StarRocks 与 Paimon 2.0 将多模态数据管理、索引检索与关系分析连接起来,让湖上的不同数据访问路径进入同一套 SQL 执行架构。

StarRocks的博客 272

当大模型调用进入执行引擎:StarRocks AI Function 全新能力解析

StarRocks 将模型调用纳入 SQL 与查询治理体系,让生成、抽取和向量化等任务在数据库内高效协同执行

StarRocks的博客 357

StarRocks 如何查询 Paimon 半结构化数据?Variant、Shredding 与 SQL 实践

作者:王日宇(霁谦)StarRocks Committer;阿里云技术专家order_idevent_timeamount等结构相对稳定的业务字段;商品属性、营销信息、客户端参数等持续变化的扩展字段。前一类字段适合使用明确的 Schema 进行管理,后一类字段则常以 JSON Payload 的形式保存,以适应不断变化的数据结构。

StarRocks的博客 393

AI 能写 SQL,但它真的理解数据吗?镜舟 Semantic View 如何补齐语义缺口

TABLES (METRICS (这一定义中有三点值得注意。1. 一旦通过声明表之间的关系,后续查询便不再需要手动编写 Join。2. SYNONYMS 和主要提供给语言模型使用,而不是提供给数据库引擎计算。用户说“purchase year”或“year”时,对应buy_year;用户说“gear brand”“brand”或“make”时,对应品牌维度;用户提到“float”或“Handing”时,模型可以参考样例值,将其识别为具体的数据取值。

StarRocks的博客 366

分链路差异化设计的DSP准实时数仓|钛动科技基于 Flink + Paimon +StarRocks 实践

本文整理自赵阳在 Flink Forward Asia 2026 的分享,将介绍钛动科技如何基于 StarRocks、Flink 与 Paimon,对 DSP 准实时数仓进行分链路差异化设计,在 9.6 PB 数据规模下兼顾数据新鲜度、查询性能、存储成本与故障隔离。

StarRocks的博客 388

StarRocks × Fluss × Paimon:流湖仓分析与 ETL 闭环

在传统数据架构中,一份数据从业务系统产生,到最终支撑分析、风控、报表及对外服务,往往需要经过多套系统、多份存储和多次口径对齐。随着业务对秒级数据新鲜度、运维效率及湖仓能力提出更高要求,传统架构的局限也愈发明显。本文整理自段彦在 Flink Forward Asia 2026 的分享,将介绍 StarRocks、Fluss 与 Paimon 如何构建流湖仓分析与 ETL 闭环,实现实时与历史数据统一查询,并通过 Native 读写能力完成湖上数据加工与结果回流。

StarRocks的博客 406

StarRocks 存算分离架构下的大规模实时导入优化实践

存算分离架构能够显著降低存储成本并提升系统弹性,但随着实时数据规模不断增长,对象存储请求、小文件、Compaction 以及 Publish 等环节逐渐成为大规模实时导入的性能瓶颈。针对这些挑战,StarRocks 围绕文件合并、大 Tablet、Tablet 内并行和主键索引优化等关键技术进行了系统性优化,并在多个生产场景中取得了显著效果。本文整理自王衍波在 Flink Forward Asia 2026 的分享,将介绍这些优化的设计思路、实现方式及实践案例。

StarRocks的博客 328

基于 Fluss、Paimon 与 StarRocks 构建淘天集团湖流一体数据链路

本文整理自淘天集团朱奥在 Flink Forward Asia 2026 的分享,介绍了 Fluss、Paimon 与 StarRocks 构建湖流一体架构的实践:Fluss 负责秒级实时数据,Paimon 沉淀历史数据,StarRocks 提供统一分析入口,实现秒级至历史数据的一体化分析。目前,该方案已实现开发效率提升 50% 以上、实时链路成本降低 80% 以上。

StarRocks的博客 396

从数据湖到多模态湖仓:基于 StarRocks 与 Paimon 构建 AI 时代的统一分析检索架构

经过融合后,Demo 中排名最靠前的是 C27、C03 和 C08——这三个片段的共同特点是:既被标签或全文侧召回,也被向量侧召回,说明它们同时满足"标签判断正确"和"视觉语义相似"两个条件,因此可以作为 Top3 高置信结果。它不是单纯的 SQL 分析,也不是单纯的向量检索,而是标量过滤、向量 ANN、全文匹配和融合重排共同参与的混合检索。一次业务查询往往需要先在 OLAP 中过滤标签,再在向量库中做相似度检索,再在全文系统中做关键词匹配,最后由应用层将三路结果拼接、Join 或重排。

StarRocks的博客 365

从 6000+ Commit 中识别升级风险:一个 StarRocks AI 升级扫描工具的实现

所有分析都建立在完整源码上下文之上,而不是依赖 GitHub API 返回的 PR Diff。只有结合类定义、调用关系和模块依赖,才能准确评估升级风险。并非所有 Commit 都需要同等程度的关注。通过 Tier 分类机制,将分析资源集中在最有可能产生兼容性影响的变更上,在分析深度与效率之间取得平衡。由 Scanner 负责确定性的数据收集和风险识别,由 AI Agent 负责调用链追踪、影响分析和风险评估,两者协同完成升级风险分析。风险评估不仅关注版本变更本身,还结合用户实际的fe.conf。

StarRocks的博客 358

StarRocks 4.1:让 Iceberg 查询加速与数据新鲜度兼得

与传统全量刷新方式不同,增量物化视图只需处理新增或变更的数据,无需重复扫描和计算全部历史数据,即可持续发挥查询加速效果。归根结底,传统刷新机制的成本与数据规模紧密相关。对于 Lakehouse 而言,这意味着既保留了 Iceberg 的开放性和跨引擎互操作性,又获得了更接近传统数仓的体验:可预测的性能、低延迟查询,以及始终保持最新的数据。无论分区内实际发生了多少数据变更,系统都需要重新计算整个分区,包括其中未发生变化的数据,因此刷新成本会随着表规模增长而增加。而在后续刷新阶段,增量刷新仅处理变更数据,

StarRocks的博客 333

StarRocks x Fluss x Paimon 湖流一体方案:构建秒级响应、湖流一体的实时数据引擎

StarRocks x Fluss x Paimon 湖流一体方案通过将 Apache Fluss(面向分析场景的实时流存储)与 Apache Paimon(高性能湖格式表)深度融合,以 StarRocks 作为统一查询入口,构建了一套具备秒级新鲜度、十倍成本降低、一份数据一次查询的全新实时数据引擎。本文将介绍该方案的核心架构、技术优势、查询模式以及实现原理。

StarRocks的博客 412

StarRocks 4.1:聚焦生产实践,持续降低运维复杂度

高性能分析一直是 StarRocks 的核心优势,但性能本身并不足以保障生产环境的稳定运行。数据分布策略需要在建表阶段提前确定,当数据规模增长或访问模式发生变化时,容易出现数据倾斜、热点 Tablet 等问题。单个大型租户可能将大量流量集中到少数几个 Tablet 上,从而引发一系列性能和稳定性问题,而问题根因往往难以排查。一旦数据分布设计不合理,往往需要重新导入数据、调整表结构,或同时进行两者。如何选择合适的 Colocation、Bucket 数量和分布键,往往依赖于对系统内部机制的深入理解。

StarRocks的博客 374

StarRocks 全模态能力导读:连接内容理解、混合检索与业务分析

当图片、视频和文档经过模型理解并转化为描述、标签和向量,StarRocks 如何将内容处理、混合检索与业务分析连接起来?

StarRocks的博客 388

StarRocks × Iceberg:联邦查询实践解析

从 Iceberg Catalog 接入到冷热数据分层,了解 StarRocks 如何构建统一的联邦查询架构。

StarRocks的博客 418

AutoMQ x StarRocks: 英国美容健康领导者 Fresha 如何构建现代化实时分析数据栈

Fresha是全球领先的美容健康SaaS平台,服务数十万商家。随着业务增长,其原有数据架构面临瓶颈:消息层采用Amazon MSK托管Kafka,存算耦合导致高成本、弹性不足;分析层依赖PostgreSQL和Snowflake,实时性差且影响OLTP性能。经过评估,团队在一年内完成架构升级: 消息层:采用云原生Kafka方案AutoMQ,通过S3存储分离和WAL设计,存储成本降低17-20倍,实现秒级扩缩容,并兼容原有Kafka生态,一周内完成近1000个Topic的无缝迁移。 分析层:引入StarRock

StarRocks的博客 312

告别重复踩坑:我们开源了一款专为数据库排障打造的 AI Skill

作者: 景丹 镜舟科技 DBA 团队负责人 Peter Pang, StarRocks Contributor

StarRocks的博客 502

白天查数、凌晨跑批:聚水潭如何基于 StarRocks 将资源利用率提升 3x

从空间解耦、时间复用到成本精细化,看聚水潭如何完成弹性架构三阶段演进

StarRocks的博客 609

KaptureCX 大规模实时分析架构演进:基于 RisingWave 与 StarRocks 的最佳实践

KaptureCX通过重构数据架构实现业务分析性能飞跃。针对电商、医疗等领域的客户支持平台特性,其原有ClickHouse方案在处理高频工单状态更新(日均数百万次)和多表关联查询时面临严重瓶颈。通过迁移至StarRocks主键模型解决Upsert问题,利用Colocate Joins优化复杂查询,结合RisingWave+Kafka构建实时CDC管道,最终将查询响应从数十分钟降至毫秒级,报表交付周期从数周缩短至1天,并为AI代理数据平面奠定基础。该案例展示了现代实时数据栈在应对高频更新、复杂关联场景时的卓越

StarRocks的博客 574

StarRocks FE 内存异常排查实战:从监控到根因定位(附真实案例)

本文重点聚焦 **FE JVM Heap** 内存问题,覆盖监控配置、日志分析、工具使用与典型案例。文中案例均已脱敏处理,讨论版本以 **3.5 及之前版本**为主。堆外内存(Direct Memory / Native Memory)、工具崩溃、操作系统层面问题不作为重点展开,但会补充 2 个堆外内存相关实战案例。

StarRocks的博客 528

StarRocks FE 内存异常排查实战:从监控到根因定位(附真实案例)

文章摘要:传统数据库设计难以应对AI Agents的高频并发查询需求。StarRocks通过五大创新方案解决这一挑战:1)自愈合查询优化应对AI生成SQL的不确定性;2)实现秒级数据时效与查询性能平衡;3)分层架构支撑爆发式查询并发;4)开放数据访问支持多源异构查询;5)语义理解确保业务准确性。其向量化引擎、MPP分布式架构和智能缓存机制可支持数万QPS的并发压力,同时通过持续学习机制不断优化查询性能,成为AI时代数据分析的理想引擎。

StarRocks的博客 427

从 SQL 到自然语言,下一代 Lakehouse 为何必须「AI 优先」

下一代 AI-first Lakehouse 的构建是一个系统性工程,需要从数据处理、存储引擎、计算架构、Agent 支持以及平台生态进行全方位升级。核心目标是打破结构化与非结构化数据的壁垒,将 AI 能力从应用层下沉至内核层,构建真正面向 AI 时代的新一代数据平台。

StarRocks的博客 422

StarRocks I/O 模型揭秘(一):查询是如何被拆解与调度的?

从整体视角来看,StarRocks 的 I/O 执行链路通过 Morsel、Scan Operator、ChunkSource、ScanTask 与 ChunkBuffer 等组件的协同配合,构建了一套从数据调度、任务拆分到异步执行与结果消费的完整闭环。数据被以更细粒度拆分为可调度单元,通过动态队列实现负载均衡;扫描任务以异步方式下沉到 IO 线程池执行;读取结果再通过缓冲机制与计算链路解耦,从而实现高并发、低阻塞的数据处理流程。

StarRocks的博客 479

从 Presto 到 StarRocks:作业帮架构升级实践

作业帮的 Presto 主要承载即席查询场景,天级查询规模在 2000~5000 次,但均值耗时在分钟级,整体性能偏慢;同时由于与 Yarn、HDFS 混部,高峰期宿主机 CPU 经常打满,资源争抢严重,查询体验波动明显。

StarRocks的博客 530

广告投流第一战:如何用 StarRocks 搞定“起量监控”与“素材优选”?

广告投放的本质是在不确定性中快速迭代决策。每一次的数据分析都应该转化为可执行策略,通过引入 StarRocks,在流量获取阶段把起量监控变成实时智能决策引擎,让 CTR 与 eCPM 真正跑赢竞品。向量召回 + 实时监控,把测试周期从“天”压缩到“分钟级”,大幅减少试错预算,提升 CTR。2. 运营效率倍增:秒级监控 + 异常预警 + 精准人群分析,让团队从“拉数”中解放,专注策略与创意迭代。下期预告:广告投流第二战——如何利用 StarRocks 解决“转化归因”与“ROI 实时计算”难题?敬请期待。

StarRocks的博客 445
上一篇: StarRocks + Paimon: 构建 Lakehouse Native 数据引擎
下一篇: 广告投流第一战:如何用 StarRocks 搞定“起量监控”与“素材优选”?
StarRocks_labs
StarRocks_labs 优快云官方账号 优快云官方账号
博客等级 码龄4年 1197粉丝 308原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值