基于 StarRocks + Iceberg,TRM Labs 构建 PB 级数据分析平台实践

article/2025/7/13 1:45:40

作者:

  • Vijay Shekhawat:TRM Labs 数据平台团队核心成员,精通实时流处理、数据湖仓架构及构建安全、高吞吐的数据分析管道,在推动 PB 级数据处理能力方面发挥了关键作用。

  • Andrew Fisher:TRM Labs 资深软件工程师,擅长大规模批处理数据加载与数据湖仓方案,为应对加密欺诈提供坚实的数据基础和分析能力。

导读:开源无国界,在本期“StarRocks 全球用户精选案例”专栏中,我们将介绍区块链情报公司 TRM Labs 的数据平台演进实践。

作为一家致力于打击加密金融犯罪的技术公司,TRM Labs 为全球金融机构、加密企业与政府部门提供链上数据分析与情报支持。其平台需处理来自 30 多条区块链的 PB 级数据,并以亚秒级响应支撑每分钟超过 500 次的查询请求。

最初,TRM 构建于分布式 Postgres 与 BigQuery 之上,并通过持续优化应对业务增长。但随着本地化部署与多环境需求的兴起,现有架构面临性能与成本的双重挑战。

为此,TRM 转向开源生态,基于 Apache Iceberg 与 StarRocks 构建新一代数据湖仓架构,用于支撑面向用户的分析业务。

本文主要围绕该方案的选型思路、架构设计与性能验证展开分享,并结合真实经验探讨为何这套体系值得更多团队参考与借鉴。在本系列的下一篇中,将聚焦架构的具体落地实践,包括如何基于对象存储部署 Apache Iceberg,以及如何优化 StarRocks 以支持本地部署等多环境需求。

一、第一代数据平台

TRM 的第一代数据平台采用分布式 Postgres(Citus Data)集群,支持快速点查与小规模预聚合。当查询负载超出集群承载能力时,大型查询和临时聚合任务则转交 BigQuery 处理。

(图 1,展示了 TRM 第一代数据平台如何处理面向用户的分析,并通过 Postgres 和 BigQuery 路由查询)

二、从 BigQuery 迈向新一代开放式数据湖仓

尽管 BigQuery 多年来在客户分析场景中表现稳定,但随着平台向多环境部署(包括本地部署)扩展,其局限性日益显现。

我们需要在多个站点之间共享区块链分析数据,而 BigQuery 作为托管服务,并不适合这一需求。同时,面向用户的查询工作负载也需要全新的扩展方式。

2.1 架构转型背后的关键需求

  • 多站点部署:平台需要在多个本地环境中部署,并保持数据共享能力,这要求我们采用可在 Kubernetes 上运行的开源解决方案。

  • 可扩展性与性能:最大的面向客户的查询负载超过 115 TB,且每月增长 2~3%。相关查询通常包含复杂的多层级 Join,以及基于时间和数组的过滤条件。在高并发场景下,仅靠 BigQuery 实现 P95 延迟低于 3 秒,需要投入大量计算资源。而将这类负载迁移至分布式 Postgres,仅存储成本就非常高。

因此,我们的新一代数据平台必须兼顾数据湖的灵活性与数仓的性能与可靠性。我们基于 Apache Iceberg 构建现代化数据湖仓架构,借助其开放规范实现与多种查询与计算引擎的良好互通性。经过多轮对比测试后,我们最终选择 StarRocks 作为查询引擎。

Iceberg 与 StarRocks 的组合不仅满足了多站点部署和性能要求,也为平台的长期演进打下了坚实基础。

2.2 数据湖仓选型的优势

  • 开放标准:Apache Iceberg 支持模式演进、Time Travel 和高效元数据管理,天然适配对象存储,便于在本地多站点环境中部署,满足跨地域区块链分析数据共享的需求。

  • 高性能数据湖体验:StarRocks 具备全向量化执行引擎与高效缓存机制,提供超低延迟与高并发能力。结合 Iceberg 使用,既保留了数据湖的灵活性,也具备了数据仓库级的查询性能。

  • 查询引擎解耦:Iceberg 的开放格式带来极强的查询引擎适配能力,使平台能够灵活接入如 Trino、DuckDB、ClickHouse 等多种引擎。过去一年,我们已观察到查询引擎领域的快速进化,后续也将持续评估更优方案,保持架构的技术前沿性与成本可控性。

  • 显著的成本优化潜力:得益于 Iceberg 在对象存储上的高效布局,我们发现部分高读写负载可以从原有分布式 Postgres 集群中迁移至湖仓体系,从而显著降低对 SSD 存储的依赖。

三、为什么选择 Apache Iceberg + StarRocks

随着多环境部署(包括本地部署)成为核心需求,我们需要为面向客户的分析(customer-facing analytics)使用场景找到一个替代方案。

基于使用 BigQuery 和 Postgres 的经验,总结出以下几点关键观察:

  • 查询时尽量减少数据读取量至关重要,可通过数据压缩、聚簇与分区优化扫描效率;

  • 传统的 B-tree 索引在 PB 级别数据下效率低下;

  • 向量化 CPU 执行(如 SIMD)能显著提升查询处理速度;

  • 横向扩展能够在保持成本可控的同时,实现高并发处理能力

  • 计算与存储解耦可灵活切换或组合查询引擎,无需复制数据,即可实现最佳负载性能。

基于上述洞察,我们不再局限于传统 OLAP 存储方案(如 ClickHouse),而是开始探索更具潜力的 Data Lakehouse 架构。重点关注两个方面:存储格式的选型,以及查询引擎的选择。

3.1 存储格式

随着高吞吐区块链的不断出现,TRM 的存储需求每年呈指数级增长。为支持更多区块链接入,必须确保存储系统具备良好的性能和成本可控性。

从成本出发,首先明确了需要从 SSD 迁移到对象存储——即便是最昂贵的对象存储,其价格也仅为最便宜 SSD 的四分之一。

在确定采用对象存储后,我们对当前构建数据湖仓最主流的三种表格式进行了评估。

尽管 Delta Lake 在功能和性能上表现不错,但由于不支持分区演进,且在大规模分析与批处理场景中与 Iceberg 重叠较多,最终未被采纳。

随后测试了 Apache Hudi,即使在最佳配置下,查询性能仍比 Iceberg 慢约三倍。

综合考虑性能、生态与兼容性,我们最终选择了 Apache Iceberg:读取效率出色,社区活跃,且能良好适配各种元数据目录与查询引擎。

3.2 查询引擎

确定表格存储格式后,我们对多款支持 Iceberg 的开源查询引擎进行了基准测试,最终聚焦评估 Trino、StarRocks 和 DuckDB 三款引擎。测试结果显示,StarRocks 在多个维度上的表现始终优于其他引擎(见下方图 2)。

  • Trino:一款开源的分布式查询引擎,设计用于处理超大规模数据集的查询任务。

  • StarRocks:一款开源的高性能分析型查询引擎,支持数据湖仓内外的分析场景。

  • DuckDB:开源的内嵌式分析型 SQL 查询引擎。

(图 2,展示了三款查询引擎在 2.57 TB 区块链分析数据集上,执行查找与过滤操作的性能对比。无论配置如何,StarRocks 的响应时间始终优于其他引擎,表现最为稳定出色。)

3.3 实验结果

测试聚焦于两类核心查询场景:带过滤条件的点查(point-lookup)和复杂聚合查询。通过 JMeter 进行负载压测,评估各查询引擎在高并发下的性能稳定性。

3.3.1 点查 / 过滤的实验探索

图 2 展示了在该类负载下的测试结果:对 2.57 TB 数据集执行点查与范围查找(range lookup)操作,评估查询子集的响应性能。结果如下:

  • StarRocks:在所有配置中表现最优,启用数据缓存后响应时间最低可达 470 毫秒。

  • Trino:响应时间在 1,410 毫秒至 1,030 毫秒之间,受集群规模影响较大。

  • DuckDB:在高配单节点上表现尚可,查询时间为 2~3 秒。但由于当前对 Iceberg 表支持有限,测试在此阶段暂停。期待其未来支持谓词下推后,进行进一步评估。

3.3.2 复杂聚合的实验探索

(图 3,在复杂聚合查询场景中,Trino 与 StarRocks 在不同集群配置下的基准测试对比结果。)

在本轮测试中,数据集扩展至 2.85 TB,查询包含 SUM、COUNT、GROUP BY 等聚合操作,并叠加数组与日期范围过滤条件。测试结果如下:

  • StarRocks:在复杂聚合负载下表现出色。最大规模集群中,未启用缓存时延迟约 2 秒,启用缓存后最低降至 500 毫秒。

  • Trino:随着集群扩容,性能有所提升,但整体仍存在瓶颈,查询延迟难以突破 2.5 秒。

3.3.3 压力测试

采用 JMeter 对 Trino 与 StarRocks 在高并发场景下进行性能压力测试,结果如下:

  • StarRocks:无论是点查还是聚合负载,在高并发下均优于 Trino,启用数据缓存后性能进一步提升。

  • Trino:并发用户数增加时,性能下降明显。测试时(2024 年初)尚不支持数据湖表的缓存功能,该能力已在 Trino 版本 439 中加入,但尚未进行评估。

四、未来规划

(图5,面向用户分析场景的下一代数据平台架构)

在综合评估三种开源表格式及多款查询引擎后,我们最终选定 Apache Iceberg 与 StarRocks 作为核心组件,构建 TRM 的下一代数据平台,既满足多站点部署需求,又显著提升客户侧分析性能。

  • 数据湖仓融合,兼顾灵活性与性能:采用 Data Lakehouse 架构,融合数据湖的灵活性与数据仓库的高性能,为客户提供稳定、敏捷的分析体验。

  • Apache Iceberg:具备开放标准、强大的模式演进能力和高效的元数据管理,满足跨引擎兼容需求。

  • StarRocks:通过优化 Iceberg 表的分区与聚簇设计、合理配置集群规模并启用缓存策略,实现低延迟、高并发。这些优化带来显著收益——P95 响应时间提升 50%,查询超时减少 54%,助力达成性能目标。

  • 真实测试不可或缺:标准基准测试难以覆盖实际使用模式,唯有在真实工作负载中才能发现关键优化点。

在本系列的下一篇中,我们将聚焦架构落地实践,包括如何基于对象存储部署 Apache Iceberg,以及如何优化 StarRocks 实现多环境支持(如本地部署等)。

为便于阅读,本文删减了许多原文中对实验细节的详细描述。感兴趣的读者可参考原文了解更多信息:

From BigQuery to Lakehouse: How We Built a Petabyte-Scale Data Analytics Platform – Part 1 | TRM Blog


http://www.hkcw.cn/article/lScQQgejCn.shtml

相关文章

Python----目标检测(使用YOLO 模型进行线程安全推理和流媒体源)

一、线程安全推理 在多线程环境中运行YOLO 模型需要仔细考虑,以确保线程安全。Pythons threading 模块允许您同时运行多个线程,但在这些线程中使用YOLO 模型时,需要注意一些重要的安全问题。本页将指导您创建线程安全的YOLO 模型推理。 1.1、…

机器学习知识图谱——朴素贝叶斯算法

目录 一、图解朴素贝叶斯算法知识图谱 二、基本概念 三、核心思想 四、为什么叫“朴素”? 五、算法流程图 六、常见模型类型 七、优点 与 缺点 八、实战代码 (以文本分类为例) 九、应用举例 机器学习知识图谱——朴素贝叶斯算法 一、图解朴素贝叶斯算法知识图谱 该…

ollama+open-webui,本地部署自己的大模型

目录 一、效果预览 二、部署ollama 1.ollama说明 2.安装流程 2.1 windows系统 2.1.1下载安装包 2.1.2验证安装结果 2.1.3设置模型文件保存地址 2.1.4拉取大模型镜像 2.2linux系统 2.2.1下载并安装ollama 2.2.2设置环境变量 2.2.3拉取模型文件 三、部署open-webui…

大模型赋能:2D 写实数字人开启实时交互新时代

在数字化浪潮席卷全球的当下,人工智能技术不断突破创新,其中大模型驱动的 2D 写实数字人正成为实时交互领域的一颗新星,引领着行业变革,为人们带来前所未有的交互体验。 一、2D 写实数字人概述 2D 写实数字人是通过计算机图形学…

效率工具- git rebase 全解

一、前言 对于git rebase 一直不太了解,这几天想着提高下git提交质量,就发现了这个好用的指令,顺便记录一下,好加深记忆 贴出官方文档以便大家进一步学习 Git 二、rebase是作用 rebase 官方解释为变基,可以理解为移动你的分支根节点,维护一个更好的提交记录。rebase把你当前…

【开源】Python打造高效剪贴板历史管理器:实现跨平台生产力工具

📋【开源】Python打造高效剪贴板历史管理器:实现跨平台生产力工具 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热情源自…

π0的微调——如何基于各种开源数据集、以及私有数据集微调openpi(含我司七月的微调实践及在机械臂上的部署)

前言 25年2.4日,几个月前推出π0的公司Physical Intelligence (π)宣布正式开源π0及π0-FAST,如之前所介绍的,他们对用超过 10,000 小时的机器人数据进行了预训练 该GitHub代码仓库「 π0及π0-FAST的GitHub地址:github.com/Ph…

开源模型应用落地-qwen模型小试-Qwen3-8B-融合VLLM、MCP与Agent(七)

一、前言 随着Qwen3的开源与技术升级,其在企业中的落地场景正加速拓展至多个垂直领域。依托Agent智能体能力 和MCP协议的工具调用接口 ,Qwen3可深度融入企业业务流程,为企业提供从需求解析到自动化开发的全链路支持。 本篇将介绍如何实现Qwen3-8B模型集成MCP实现智能体交互。…

【Git】GitHub 连接失败解决方案:Failed to connect to github.com port 443 after 21090 ms: Couldn’t connect to se

文章目录 一、使用 VPN 环境下的解决方案1. 检查当前代理设置2. 配置 Git 使用代理3. 验证代理设置是否生效4. 刷新 DNS 缓存5. 重新尝试 Git 操作 二、未使用 VPN 环境下的解决方案1. 取消 Git 配置的代理2. 验证代理设置已成功移除3. 重试 Git 操作 三、总结使用 VPN 的解决方…

Java 大视界 -- Java 大数据机器学习模型在元宇宙虚拟场景智能交互中的关键技术(239)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

Digital Reengineering and Localized Implementation of the Five-Dimensional Management Cycle System

A Paradigm Shift in Intelligent Hospital Governance(Preliminary draft of the first-line cooperation project) Abstract This study pioneers a transformative approach to healthcare management through the “Technology-Management-Value” (TMV) triad model, r…

Qwen3:重磅开源,重夺开源第一!(包含详细使用教程)

1.简介 Qwen3,这是 Qwen 系列大型语言模型的最新成员。我们的旗舰模型 Qwen3-235B-A22B 在代码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等顶级模型相比,表现出极具竞争力的结果。此外&#xf…

基于 Alpine 定制单功能用途(kiosk)电脑

前言 故事回到 7 年前, 在网上冲浪的时候发现了一篇介绍使用 Ubuntu 打造 kiosk 单功能用途电脑的文章, 挺好玩的, 就翻译了一下并比葫芦画瓢先后用了 CentOS 7, ArchLinux 进行了实现. 历史文章: 翻译 - 使用Ubutnu14.04和Chrome打造单功能用途电脑(大屏展示电脑) 使用CentOS…

《汇编语言》第13章 int指令——实验13 编写、应用中断例程

(1)编写并安装 int 7ch 中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。 参数:(dh)行号,(dl)列号,(cl&a…

大模型前处理-CPU

前处理包含哪些流程 分词 tokenizationembedding CPU可以做哪些优化 分词 分词在做什么? 什么是词元化? 词元化(Tokenization)是把一段自然语言文本拆分成更小的单元(称为“词元”,即 Token&#xff0…

设备驱动与文件系统:02 键盘

操作系统中键盘驱动的讲解 在这一讲中,我将为大家讲解键盘相关内容。从上一讲开始,我们进入了操作系统第四个部分的学习,也就是操作系统对设备的驱动与管理。 上一讲我们探讨的是显示器,并且提到,一个终端设备是由显示…

工作流引擎-18-开源审批流项目之 plumdo-work 工作流,表单,报表结合的多模块系统

工作流引擎系列 工作流引擎-00-流程引擎概览 工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎,支持现实世界的流程自动化需求 工作流引擎-02-BPM OA ERP 区别和联系 工作流引擎-03-聊一聊流程引擎 工作流引擎-04-流程引擎 activiti 优…

Windows环境下Scoop包管理工具的全面指南

🧩 一、Scoop核心特性与设计理念 定位与优势 专注于开源命令行工具和便携式(Portable)应用,无需管理员权限即可安装,减少系统污染。自动管理环境变量(通过shims目录),安装后即时可用…

谷粒商城-分布式微服务项目-高级篇[三]

十五、商城业务-支付 15.1 支付宝支付 15.1.1 进入“蚂蚁金服开放平台” 支付宝开放 平台地址: 支付宝开放平台 15.1.2 下载支付宝官方 demo,进行配置和测试 开发者文档:支付宝开放平台文档中心 电脑网站支付文档:小程序文…

EchoMimicV2:迈向引人注目、简化的半身人类动画

今天介绍EchoMimicV2,EchoMimicV2是阿里蚂蚁集团推出的半身人体AI数字人项目,输入参考图片、音频、和手部姿势序列生成动画视频(对图片的规范要求比较高,图片规范的话效果还可以),感兴趣的还可以去了解一下…