前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯 BiFang——业界首个生产级湖流一体解决方案

腾讯 BiFang——业界首个生产级湖流一体解决方案

作者头像
腾讯开源
发布于 2025-06-10 04:18:40
发布于 2025-06-10 04:18:40
1500
举报

图片
图片

BiFang,中文为毕方,中国古神话中的神鸟,象征着变革和能量,隐喻湖流一体存储引擎的先进和可靠。


大数据领域,流计算和数据湖是两个核心组件,各自具有独特的功能和优势,流计算聚焦实时数据流处理,数据湖专注海量数据存储分析。随着数据量的增长和实时分析需求的增加,将流计算与数据湖相结合的需求日益凸显,行业希望通过整合流计算与数据湖技术,逐步形成湖流一体技术范式。

腾讯天穹大数据去年发布了湖流一体的雏形系统——BSS 流批一体存储,该方案基于开源 Apache Pulsar 实现了消息队列和数据湖使用同一份数据,统一流和湖的客户端,支持数据秒级写入和查询,完成和 Apache InLong 数据集、Apache Iceberg 数据湖等生态对接。过去半年,腾讯大数据实时团队对 BSS 进一步重构和优化,系统升级为 BiFang 湖流一体存储引擎,新架构支持全增量数据查询、端到端数据实时可见,预计节省 40% 存储成本、降低 70% 运维复杂度,并且已在腾讯视频、游戏、AI 多模态管道等业务领域落地。

0 1

关于 BiFang

1.1.  系统定位

BiFang 是一个湖流一体存储引擎,通过融合消息队列和数据湖的能力,实现流批数据处理入口统一。BiFang 支持全增量数据查询、端到端数据实时可见,兼容主流的批流计算引擎,满足业务对数据实时性、一致性和灵活性的多样化需求。

1.2.  适用场景

场景1:全增量查询消息队列数据

BiFang 基于天穹 Pulsar 构建,具备消息队列完整功能,但原生的消息队列数据只支持消费,并不支持实时查询。在设计上,BiFang 通过实时组织队列数据的 Manifest,使用统一的元数据目录,实现直接查询消息队列中的数据。此外,BiFang 内置的 Offload Service 会把数据存储到长期存储的介质,消除 Pulsar 存储周期限制,实现对长周期历史数据的查询。

图片
图片

场景2:数据湖数据实时可见

Iceberg 等湖格式支持通过流式方式读取增量数据,上游组件将数据写入完成后,下游组件能及时读取、查询到最新数据,满足业务对数据新鲜度的要求。但 Iceberg 流读可见性受限于 Flink Checkpoint 和 Commit 的周期,数据延迟通常为分钟级别。在 BiFang 的设计中,通过实时融合 Pulsar Manifest + Iceberg Manifest,用户可以实时查询 Iceberg 中的数据,将数据可见性从分钟级提高到亚秒级别,实现业务数据无延迟交付。

场景3:统一湖流数据存储

BiFang 同时支持流、批处理引擎,比如 Apache Flink 和 Spark,实现“一份数据”同时具备消息队列 + 离线数仓的能力。原先使用 Lambda 架构建设的数仓,现在可以通过 BiFang 直接将离线数仓和实时消息队列二合一,数据由原来的消息队列、数仓各存一份升级为只在 BiFang 存一份。基于 BiFang 的统一数据存储,既可以做实时消费又可以做离线分析,实现存储成本预计降低 40%,运维复杂度预计降低 70%。

图片
图片

场景4:实时多维分析报表

BiFang 具备灵活的拓展能力,支持快速对接 OLAP 查询引擎。比如 BiFang 可以作为 StarRocks 外表查询,通过 BiFang 提供的全量数据无延迟查询能力,基于 StarRocks 的在线报表可以做到数据实时响应。融合 BiFang 的实时多维分析,实现了冷热数据隔离,既保证了查询性能,又降低了存储成本。

场景5:高效低成本多流拼接

BiFang 后续将支持 Kev/Value 存储,能够在流处理过程中实现数据的实时拼接。与传统的 Apache Flink 在线计算相比,BiFang 的流式处理机制能够更高效地管理数据流,减少不必要的计算步骤。BiFang 支持事务,能够避免数据丢失,确保数据的完整性和一致性。相较于 Iceberg 的多流拼接方案,BiFang 通过高效的流处理逻辑和存储机制,能够更快完成数据拼接,拼接后的数据实现亚秒级可见。

图片
图片

1.3.  业界对比

业内希望通过湖流一体,实现数据整合、简化数据治理,进一步优化现有的 Lambda、Kappa 架构,降低开发和维护成本。目前业界湖流一体技术方案都是数据分钟或者秒级可见,无法真正替代原有实时数据流业务场景,比如阿里的 Fluss 、抖音的 BTS 等。

相比较 Fluss 和 BTS,BiFang 实现湖流一体存储,实现流批入口统一,支持端到端数据支持实时可见,并且已在业务生产环境中实践。下表针对 BiFang、Fluss 和 BTS 做了更多维度的对比:

特性

腾讯 BiFang

阿里 Fluss

抖音 BTS

定位

消息队列、数据湖统一存储引擎,支持全增量一体实时数据处理

实时分析的可扩展流存储,作为数据湖实时数据层

低延迟高吞吐的流批一体存储服务

性能

实时写入和查询,全量数据亚秒级可见

秒级写入和查询

秒级写入和查询

存储方式

● Kev/Value(进行中)● 日志存储● 文件存储

● Kev/Value● 日志存储

● Kev/Value● 日志存储

消息队列

Pulsar 协议(已支持)

Kafka 协议(支持中)

Kafka 协议(支持中)

应用场景

● 查询最新/全量状态● 实时流分析● 实时/历史数据分析● 离线计算

● 查询最新状态● 实时流分析● 历史数据分析

● 实时流分析● 实时/历史数据分析● 离线计算

数据生命周期

短期 + 长期存储

短期 + 长期存储

短期 + 长期存储

引擎支持

Flink/Spark(已支持)StarRocks(进行中)

Flink/Spark(进行中)

Flink/Spark/Presto

0 2

架构原理

BiFang 是一个湖流一体存储引擎,统一消息队列和数据湖的能力,实现流数据和批数据处理架构融合。在实现过程中,BiFang 融合了 Apache Pulsar 消息队列和 Iceberg 数据湖能力,统一库表元数据目录,支持高性能批量查询和点查;通过提供批/流统一 API,简化数据写入和读取,同时支持和 Apache Flink、Apache Spark、StarRocks 等引擎快速集成。本章节将详细介绍 BiFang 的架构细节。

2.1.  整体架构

图片
图片

上图为 BiFang 整体架构图,主要包含 BiFang Client、BiFang Server、Lakehouse Storage(目前支持 Iceberg)三部分,为了实现湖流一体统一存储,BiFang Server 对 Pulsar Broker 做了升级和功能拓展,涉及模块包括:

Log Writer:负责数据持久化写入,每次 Message Batch 写入完成后,同步组织 Delta Manifest 持久化到 Manifest Store。

Offload Service:负责将数据写到 HDFS ,Offload 到 HDFS 的数据文件跟 Iceberg Manifest 中的 BiFang 逻辑文件对应。

Transaction Manager:负责协调和管理分布式事务,确保消息传递的精确一次( Exactly-Once),能够区分生产/消费侧事务。

Manifest Store:内部的 Pulsar Topic,用于实时存储 Delta Manifest,从上一次读取进度恢复,并保证一致性。

Manifest Service:负责管理实时产生的 BiFang 逻辑文件,通过读取 Delta Manifest 并组织生成逻辑文件,支持逻辑文件组织/查询/恢复。

File Service:负责数据读取,可以通过 BiFang 逻辑文件和 Offload 文件读取对应的 Ledger 实际数据,支持批量指定某个点位或者范围来获取数据。

BiFang Client:BiFang 统一的客户端,支持从消息队列中高效写入和读取流式数据(带 Schema),同时支持全增量读取。

2.2.  核心流程

图片
图片

上图为 BiFang 读写数据的核心流程,支持数据流式写入和读取,结合架构图中 BiFang 的各个模块,核心流程包括:

1.  数据经 Log Writer 以行存格式写入 BiFang Server,每次写入一批数据,都会生成 Delta Manifest 并持久化到 Menifest Store 中;

2.  Manifest Service 负责消费 Manifest Store 中的 Delta Manifest,生成 BiFang 逻辑文件,并在内存中构建 Manifest File:

● Manifest File 会定时提交到 Iceberg,完成元数据的持久化;

● Manifest Service 提供 Manifest File 查询服务,供 Iceberg 查询实时的 Manifest 信息,进而实现无延迟访问;

3.  提交到 Iceberg 的 Manifest File,由 AO(Auto Optimizer)服务统一管理和优化。AO 服务将 Manifest File 中的 BiFang 逻辑文件进行合并,通过 File Service 提供的接口,读取到 BiFang 逻辑文件对应的实际数据,并转换为 Parquet 数据文件;

4.  Offload Service 把 Pulsar Bookie 中的数据转移到长期且低成本的 HDFS 存储中,客户端读取 BiFang 逻辑文件时,可无缝切换到读取 HDFS 上的数据文件,以满足大规模历史数据查询场景的需求。

2.3.  技术优势

优势1:统一表管理与元数据治理

BiFang 统一使用 Iceberg 来表示湖流一体表,从用户视角只感知一种表,无需维护多套元数据系统。Table 相关的元数据统一放在 Iceberg 元数据,表相关操作不经过 BiFang,BiFang 根据 Hive Catalog 或者统一 Catalog 访问 Spec/Schema Change,实现元数据统一治理。

优势2:支持端到端数据实时可见

BiFang 结合 Manifest Service 提供的实时 Manifest 查询能力,扩展 Iceberg runtime 支持远端 Manifest,引入一个特殊的读取模式:支持读到 Pulsar 事务已提交、但是未提交到 Iceberg 的数据。通过这种读取模式,业务可以通过 BiFang 实时查询最新的数据,实现端到端数据实时可见。

优势3:湖流存储一体化实现成本优化

BiFang 支持行列混合存储,增量数据以行式格式(Pulsar Log)存储,历史数据自动合并为列式格式(Iceberg Parquet),结合 AO Service 实现小文件合并与存储优化。基于 BiFang 的存储一体化,行式存储保障实时写入性能,列式存储提升批量查询效率,有效消除 Lambda 架构下的双存储冗余问题,减少存储浪费。

优势4:支持 Exactly-Once 语义

BiFang 基于 Pulsar Transaction 实现生产侧事务隔离,确保数据不丢不重,实现 Exactly-Once;支持 Read Committed 隔离级别,避免脏读问题,可满足金融交易、物联网设备状态同步等高一致性场景需求,简化业务端异常处理逻辑,降低开发复杂度。

优势5:多引擎兼容与生态融合

BiFang 具备灵活的拓展能力,支持无缝集成 Apache Flink、Apache Spark、StarRocks 等主流引擎。同时支持复用 Apache Iceberg 生态,无缝对接 Iceberg 的元数据管理、版本控制与时间旅行能力。用户无需改造现有计算任务,可直接复用业务代码,实现零成本迁移。

0 3

业务实践

图片
图片

上图为腾讯视频点击&播放等数据链路经过 BiFang 改造后的对比,业务数据经过大同数据上报、InLong 数据集成等平台后,数据会统一入湖(Iceberg)。在原有的链路中,消息队列中的数据通过启动一个 Flink 实时任务实现入湖,如果该任务异常出现丢数据等情况,会通过旁路的离线链路进行对账或者补录。通过 BiFang 改造后的新链路,实现将原有消息队列、Flink 实时任务、入 Iceberg 等过程缩减为一步,实现架构上的精简;同时,由于 BiFang 对数据准确性的保障,用于数据对账或者补录的离线链路可以完全省略。除了架构精简带来的运维便利性,腾讯视频通过 BiFang 统一湖流存储还实现以下效果:

特性

实践效果

时效性

数据从分钟级到亚秒级可见

准确性

支持参数配置从 Flink 框架中获取 Watermark,复用数据流的 Watermark 策略,保障数据入湖环节数据不迟到

Exactly Once

事务保障,数据入 BiFang 可以保证不重不丢

数据对账

支持 BiFang Client、BiFang Server、数据持久化阶段全流程对账

监控告警

支持数据读写、Manifest 处理、Offload 等全维度监控告警

0 4

未来规划

BiFang 近期已在腾讯内部发布 1.0 版本,实现消息队列和数据湖基础能力的统一,完成流数据和批数据的无缝处理。为了进一步提高 BiFang 的技术能力,未来将持续优化架构、丰富内核能力、完善生态拓展等,后续 BiFang 将会发布更多技术实现细节以及对外开源,欢迎关注。具体包括:

● 架构优化:围绕提高数据读写性能和系统稳定性,比如通过 IO 请求合并优化逻辑文件读取、AO 支持 BiFang 专用行转列任务提升性能,其它包括数据降冷支持列存、优化计算和存储组件的负载均衡等;

● 核心能力:统一 Lakehouse 和 BiFang 数据生命周期,进一步细化统一存储;拓展主建表能力,包括支持点查询、支持实时 KV 和 Changelog,支持 Arrow 流式列存储格式和列裁剪等;

● 生态完善:丰富上下游生态系统,比如支持 Apache InLong 集成、StarRocks 集成,打通 Oceanus 实时平台 SQL 和画布能力,实现 BiFang 在 WeData 数据治理平台的产品化等;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯开源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯 BiFang——业界首个生产级湖流一体解决方案
BiFang,中文为毕方,中国古神话中的神鸟,象征着变革和能量,隐喻湖流一体存储引擎的先进和可靠。
腾讯大数据
2025/06/09
1290
腾讯 BiFang——业界首个生产级湖流一体解决方案
腾讯游戏广告流批一体实时湖仓建设实践
腾讯游戏广告业务对数据准确性和实时性均有诉求,因此数据开发团队分别搭建了离线及实时数仓。技术视角下,这是典型的Lambda架构,存在数据口径不一致、开发维护成本高等弊端。在降本增效的大背景下,我们针对结合计算引擎Flink与数据湖技术Iceberg建设流批一体实时湖仓做了较多的探索和实践,已经具备可落地可复制的经验。借助Flink框架支持批处理作业的能力,我们实现了将流处理层和批处理层的计算层面统一于Flink SQL,存储层面统一于Iceberg。
可君
2023/01/10
2K0
数栈在湖仓一体上的探索与实践
大数据技术的发展历程中,继数据仓库、数据湖之后,大数据平台的又一革新技术——湖仓一体近年来开始引起业内关注。市场发展催生的数据管理需求一直是数据技术革新的动力。比如数据仓库如何存储不同结构的数据?数据湖又如何避免因为缺乏治理导致的数据杂乱现象?今天的文章想跟大家具体聊聊我们的数栈如何解决这些问题。
袋鼠云数栈
2022/04/14
5470
数栈在湖仓一体上的探索与实践
尘锋信息基于 Apache Paimon 的流批一体湖仓实践
尘锋信息 (www.dustess.com) 是基于企业微信生态的一站式私域运营管理解决方案供应商,致力于成为全行业首席私域运营与管理专家,帮助企业构建数字时代私域运营管理新模式,助力企业实现高质量发展。
从大数据到人工智能
2023/05/03
4.1K1
尘锋信息基于 Apache Paimon 的流批一体湖仓实践
BDCC- 数据湖体系
数据湖是一种存储系统,底层包括不同的文件格式及湖表格式,可存储大量非结构化和半结构化的原始数据。
小小工匠
2023/04/30
6510
BDCC- 数据湖体系
基于 Flink+Iceberg 构建企业级实时数据湖
Apache Flink 是大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构。那么当 Apache Flink 遇见数据湖时,会碰撞出什么样的火花呢?本次分享主要包括以下核心内容:
Spark学习技巧
2021/03/05
2.4K0
基于 Flink+Iceberg 构建企业级实时数据湖
基于Flink+Hive构建流批一体准实时数仓
基于 Hive 的离线数仓往往是企业大数据生产系统中不可缺少的一环。Hive 数仓有很高的成熟度和稳定性,但由于它是离线的,延时很大。在一些对延时要求比较高的场景,需要另外搭建基于 Flink 的实时数仓,将链路延时降低到秒级。但是一套离线数仓加一套实时数仓的架构会带来超过两倍的资源消耗,甚至导致重复开发。
深度学习与Python
2020/09/28
2.3K0
基于Flink+Hive构建流批一体准实时数仓
湖仓一体
我理解就是各类数据爆发的公司当前数据平台架构遇到了各类各样的问题,寻求一个适配公司、平台的数据架构,一站式解决,但是大家对湖、仓本质的理解可能都不太一样,那又怎么谈湖仓一体呢。
jasong
2024/11/22
3510
数据湖|Flink + Iceberg 全场景实时数仓的建设实践
摘要:Apache Flink 是目前大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构,以 Iceberg、Hudi、Delta 为代表的解决方案应运而生,Iceberg 目前支持 Flink 通过 DataStream API /Table API 将数据写入 Iceberg 的表,并提供对 Apache Flink 1.11.x 的集成支持。
大数据技术架构
2021/08/25
4.6K0
数据湖|Flink + Iceberg  全场景实时数仓的建设实践
实时湖仓一体规模化实践:腾讯广告日志平台
1. 背景 1.1 整体架构 腾讯广告系统中的日志数据流,按照时效性可划分为实时和离线,实时日志通过消息队列供下游消费使用,离线日志需要保存下来,供下游准实时(分钟级)计算任务,离线(小时级/天级/Adhoc)分析处理和问题排查等基于日志的业务场景。因此,我们开发了一系列的日志落地处理模块,包括消息队列订阅 Subscriber,日志合并,自研 dragon 格式日志等,如下图所示: Subscriber:Spark Streaming 任务,消费实时数据,落地到 HDFS,每分钟一个目录,供下游准实时
腾讯大数据
2022/09/20
1.3K0
实时湖仓一体规模化实践:腾讯广告日志平台
干货|流批一体Hudi近实时数仓实践
传统意义上的数据集市主要处理T+1的数据。随着互联网的发展,当前越来越多的业务场景对于数据时效性提出了更高的要求,以便及时快速地进行数据分析和业务决策,比如依托实时数据情况开展实时推荐、实时风控、实时营销等。特别是各种新技术的出现、发展和日趋成熟,实时数据分析和处理也成为可能。实时的大规模数据处理成为企业数字化转型过程中需要破解的难题,也是企业当前面临的一个普遍需求。
大数据老哥
2021/08/25
6.5K0
干货|流批一体Hudi近实时数仓实践
国内首场Iceberg Meetup!腾讯云推出TC-Iceberg开放智能数据湖方案
国内首场 Apache Iceberg Meetup 在深圳成功举办,腾讯云在活动中分享了 Iceberg 在腾讯云大数据中的成功实践,并推出了 TC-Iceberg 批流一体开放智能数据湖解决方案,帮助企业高效维护数据湖架构。
腾讯QQ大数据
2025/03/10
2230
国内首场Iceberg Meetup!腾讯云推出TC-Iceberg开放智能数据湖方案
农业银行湖仓一体实时数仓建设探索实践
在数字化转型驱动下,实时化需求日益成为金融业数据应用新常态。传统离线数仓“T+N”数据供给模式,难于满足“T+0”等高时效场景需求;依托Storm、Spark Streaming、Flink等实时计算框架提供“端到端”的实时加工模式,无法沉淀实时数据资产,存在实时数据复用性低、烟囱式垂直建设等不足。
ApacheHudi
2023/11/06
1.7K0
农业银行湖仓一体实时数仓建设探索实践
Apache Amoro Meetup No.2:助力湖仓一体生产实践
随着云计算,人工智能,实时计算等技术的飞速发展,传统的数据系统,如数据仓库和数据湖,虽然各自具有独特的优势,但在实际应用中也暴露出了一些局限性。为了解决这些问题,湖仓一体(Lakehouse)作为一种新兴的数据架构应运而生,逐渐成为各行业关注的焦点。湖仓一体结合了数据湖和数据仓库的优点,旨在提供一个统一的数据平台,既能存储多样化的原始数据,又能支持高效的数据分析和处理。湖仓一体架构通过将这两者的优势结合,打破了信息孤岛,实现了数据的统一管理和高效利用。
腾讯QQ大数据
2024/12/20
1740
Apache Amoro Meetup No.2:助力湖仓一体生产实践
Lakehouse 如何重塑企业数据生态?
大数据架构经过多年的演进,传统数据仓库和数据湖的局限性日益凸显。在此背景下,湖仓一体 Lakehouse 凭借其开放性和成本效益,迅速成为当今数据平台的主流架构。然而,随着进入 Data + AI 驱动的新时代,企业对实时数据分析的需求不断增加,对半结构化和非结构化数据的处理也愈显重要。那么,应该如何高效整合多种数据源,实现实时分析与智能决策?
深度学习与Python
2025/03/21
1520
Lakehouse 如何重塑企业数据生态?
Apache Paimon要赢了?湖仓一体实时化时代全面开启!
摘要:本文整理自阿里云开源大数据平台负责人王峰(莫问)老师在5月16日 Streaming Lakehouse Meetup · Online 上的分享,主要介绍在新一代湖仓架构上如何进行实时化大数据分析。内容主要分为以下五个部分:
王知无-import_bigdata
2024/06/17
4.8K1
Apache Paimon要赢了?湖仓一体实时化时代全面开启!
腾讯主导 Apache 开源项目: InLong(应龙)数据入湖原理分析
作为业界首个一站式、全场景海量数据集成框架,Apache InLong(应龙) 提供了自动、安全、可靠和高性能的数据传输能力,方便业务快速构建基于流式的数据分析、建模和应用。目前 InLong 正广泛应用于广告、支付、社交、游戏、人工智能等各个行业领域,服务上千个业务,其中高性能场景数据规模超百万亿条/天,高可靠场景数据规模超十万亿条/天。InLong 项目定位的核心关键词是“一站式”、“全场景”和“海量数据”。对于“一站式”,我们希望屏蔽技术细节、提供完整数据集成及配套服务,实现开箱即用;对于“全场景”,我们希望提供全方位的解决方案,覆盖大数据领域常见的数据集成场景;对于“海量数据”,我们希望通过架构上的数据链路分层、全组件可扩展、自带多集群管理等优势,在百万亿条/天的基础上,稳定支持更大规模的数据量。
腾讯技术工程官方号
2024/05/15
8680
腾讯主导 Apache 开源项目: InLong(应龙)数据入湖原理分析
浅谈大数据的过去、现在和未来
相信身处于大数据领域的读者多少都能感受到,大数据技术的应用场景正在发生影响深远的变化: 随着实时计算、Kubernetes 的崛起和 HTAP、流批一体的大趋势,之前相对独立的大数据技术正逐渐和传统的在线业务融合。关于该话题,笔者早已如鲠在喉,但因拖延症又犯迟迟没有动笔,最终借最近参加多项会议收获不少感悟的契机才能克服懒惰写下这片文章。
王知无-import_bigdata
2021/07/12
8050
八年孤独,Iceberg 赢得世界
一年以后,面对 Iceberg Summit 2025 座无虚席的会场,Ryan Blue 将会回想起与同事讨论 Iceberg 原型的那个遥远的下午。
深度学习与Python
2025/06/08
1670
八年孤独,Iceberg 赢得世界
Flink+StarRocks 实时数据分析实战
摘要:本文整理自 StarRocks 社区技术布道师谢寅,在 Flink Forward Asia 2022 实时湖仓的分享。本篇内容主要分为五个部分:
857技术社区
2023/07/26
1.6K0
Flink+StarRocks 实时数据分析实战
推荐阅读
相关推荐
腾讯 BiFang——业界首个生产级湖流一体解决方案
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档