头图
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

今日解读:ByteHouse视角下的新一代云数仓。主要内容包括:ByteHouse简介、云数仓核心能力解析以及最佳实践。

ByteHouse简介

ByteHouse是火山引擎数智平台VeDI旗下的一款云原生数仓产品,以 ClickHouse 技术路线为基础,为用户提供极速分析体验,能够支撑实时数据分析和海量数据离线分析,具备便捷的弹性扩缩容能力,极致分析性能和丰富的企业级特性,为海量数据规模下的聚合性分析提供支撑。

分析型数据库,与数据库技术同步发展,已有四十余年历史。其在海量数据处理与聚合分析中扮演关键角色,尤其在互联网、移动互联网及AI大模型兴起后,对用户画像和行为分析的需求激增,凸显了分析型数据库的重要性。

随着数据量的爆炸性增长,对分析性能的要求水涨船高,促使分布式计算技术的成熟与应用,以应对大规模数据的处理需求。分布式技术的核心在于其横向扩展能力,通过并行计算(MPP)和share nothing架构,实现了数据处理的高效与灵活。

近十年,云计算的兴起进一步推动了分布式技术的革新,尤其是存算分离的概念,有效解决了传统架构中的瓶颈,使得分布式系统能够更好地适应云环境,实现资源的优化配置和弹性扩展。云原生理念的融入,为分布式系统的迭代和优化提供了新的路径,通过局部重构,实现了系统性能与效率的双重提升。

数据分析型数据库在历史发展中,不断吸收新技术,如分布式计算和云原生架构,以应对数据规模的不断膨胀和分析需求的日益复杂,成为现代数据处理不可或缺的基石。

ByteHouse,源于对内服务,自2017年底立项,选择ClickHouse技术路线深度优化,迅速成长为内部数据分析的核心,截止到2022年3月,ByteHouse 节点总数已经达到了18,000,最大的行为分析集群超过了2,400个节点,数据量超过700PB。

基于内部的成功实践,2019至2020年间,ByteHouse通过火山引擎公有云平台,正式向外界输出其成熟技术。旨在以ByteHouse为载体,赋能各行各业,加速数据驱动的业务创新与决策优化,助力企业实现数据价值最大化。

云数仓核心能力解析

面对云数仓与数据分析平台的挑战,企业正经历一场技术与需求的双重考验。这些挑战不仅定义了当前行业的痛点,也指明了产品演进的路径。具体而言,挑战可归纳为五个方面。

高吞吐与去重能力:数据爆炸式增长,尤其在5G和大模型(如LLM)的推动下,日志数据量激增至百亿、千亿级。如何实现高吞吐量写入,并进行去重处理,成为技术难点。例如,游戏领域需以每秒百万级的性能进行去重写入,对数据平台提出了严峻挑战。

性能与并发需求升级:数据量虽庞大,但对性能与并发性的要求却日益严苛。分析查询需达到毫秒级响应,以适应实时反馈需求,如用户行为、业务决策、广告投放的实时性要求。此外,面对数十万乃至上百万的并发用户,如何确保低时延响应,是另一大挑战。

架构复杂与数据冗余:企业规模增长,导致分析架构愈发复杂,多组件并行工作,形成“七国八制”局面,增加了数据冗余,影响数据质量和运维效率。

灵活性与弹性伸缩:传统存算耦合架构的僵化,导致资源扩容与调整困难,影响业务连续性。扩容过程中的业务中断及长耗时,与实时化、在线化的业务趋势相悖,对用户体验构成威胁。

成本控制与性能平衡:海量数据处理中,如何在保证性能体验的同时,避免成本无序增长,是企业面临的又一难题。预购资源按峰值需求配置,导致资源闲置,维护与开发成本高昂,以及被供应商锁定的风险,都增加了成本控制的复杂性。

综上所述,云数仓的未来方向需聚焦于高吞吐去重、高性能并发、简化架构、增强灵活性与成本优化。实现数据处理的高效、实时、经济,以适应快速变化的业务需求和用户期待。接下来将介绍ByteHouse的积极实践。

性能优化,OLAP领域永恒的追求

云数仓的核心能力首推性能优化,这是OLAP领域乃至所有技术追求的永恒主题,根植于人类的探索本能。面对各类场景中的性能瓶颈,ByteHouse积极应对,通过自研与增强,致力于提升处理速度与效率。无论是高吞吐写入、去重处理,还是毫秒级响应与高并发支持,ByteHouse均投入大量研发资源,针对性解决性能挑战,确保在不同业务场景下,数据处理既快又稳,满足实时分析与决策需求。

场景一:在实时高吞吐场景,如IoT领域,ByteHouse通过支持原子性、不分裂更新等特性,确保了海量数据下每秒几百万条记录的高性能写入,同时实现了落盘即更新。ByteHouse自研的uniqueMergeTree引擎进一步强化了写入性能,满足IoT实时数据写入需求。

通过自研的Flink Connector,ByteHouse与Flink无缝对接,高效处理海量数据。以游戏行业为例,一款热门游戏每秒产生220万条日志,约4GB数据,对实时吞吐能力构成严峻挑战。ByteHouse凭借上述技术,成功支撑了这一高要求场景,并展现出性能的线性增长潜力。

场景二:针对BI慢、报表慢、指标平台慢等问题,ByteHouse在预聚合功能上进行了深度优化,通过适度增强与projection技术,加速复杂查询与计算逻辑的执行,显著提升应用层性能。此外,多层级的查询缓存机制,不仅缓存数据,还能缓存复杂查询的中间结果与最终结果,极大提高了查询效率。在对接Kafka方面,增强型Kafka连接器确保了数据的高效消费,以娱乐公司为例,每天15亿记录,峰值TPS达6万,通过CDC技术,实时数据从传统的T+1时效性压缩至分钟级甚至秒级,实现了准实时报表的高效展示。

场景三:在面对离线与在线复杂分析的性能瓶颈时,ByteHouse通过自研优化器,尤其是持续迭代的CBO(Cost-Based Optimizer)与RBO(Rule-Based Optimizer),显著提升了分析效率。特别针对非等值查询、多表关联等场景进行了深度优化,同时,聚焦于影响性能的关键算子,如聚合(Agg)算子和字符串算子,实施了针对性的性能增强,有效加速了复杂分析的处理速度,满足了用户对数据分析性能的高要求。为优化大表关联场景的性能,ByteHouse引入了runtime filter技术,有效提升了处理效率,尤其在动态需求下表现显著。

同时,自研的分布式缓存方案,旨在解决存算分离架构下的性能损失,目标是在不依赖本地缓存的情况下,使性能逼近存算一体架构。智能化分布式缓存技术,ByteHouse致力于在2025 年上半年实现产品化,进一步增强数据分析性能,特别是在存算分离场景下,为用户提供更接近存算一体的高效体验。使用OLAP产品时,用户常面临计算虽快,但离线与在线分析难以一体化,尤其在ETL(Extract, Transform, Load)处理上存在短板。

ByteHouse通过引入BSP(Bulk Synchronous Parallel)模式及算子落盘技术,有效解决了这一问题。即使在复杂ETL任务,尤其是高并发的transform类型任务中,ByteHouse也能确保稳定运行,大幅减少了OLAP领域常见的OOM(Out of Memory)现象,实现了离在线一体化的高效数据处理,显著提升了用户在高负载场景下的使用体验。

场景四:在湖仓联邦分析领域,性能提升是关键。ByteHouse通过native reader技术优化对Orc和Parquet格式数据的读取,有效压缩IO访问路径,显著提升外表访问性能。正在研发的Data Fabric技术,支持多表误报能力,预期将进一步加速湖仓访问,预计今年下半年实现产品化。ByteHouse能实时识别大数据外表的schema变更,自动同步更新,确保数据一致性。更关键的是,外表读取与优化器深度集成,基于统计数据生成最优执行计划,实现算子级下推,大幅加速湖仓分析性能。在实际应用中,ByteHouse的外表读取性能相较于传统Presto+对象存储方案,展现出2到5倍甚至更高的性能提升,为用户提供了更高效的数据分析体验。

场景五:在人群分析与行为分析等垂直业务场景中,性能至关重要。ByteHouse凭借其在抖音集团内部广泛应用的优势,成为人群圈选与行为分析的强力支撑。技术层面,ByteHouse的自研BitEngine、Bitmap和Index增强技术领先于社区,为高效分析奠定基础。同时,与上层应用如增长分析平台DataFinder、行为分析平台和CDP紧密集成,深入理解业务需求,内置了如留存、路径分析和漏斗等常用分析函数,确保了最佳性能。

目前,这些分析函数已超过二三十种,有效提升了人群圈选的响应速度,即使面对十亿级用户数据,也能实现秒级响应。这一优化成果在抖音集团内部得到了充分验证,支撑了上千个活跃项目,平台日处理事件规模达到万亿级别,充分展现了ByteHouse在人群分析领域的卓越性能与处理能力。

场景五:随着大模型的兴起,如舆情分析等场景对性能的要求日益提高,尤其在处理社交媒体、短视频等产生的海量文本和音视频数据时,需在更短时间内快速识别并解决问题,防止事态恶化,性能成为关键。为应对这一挑战,向量化引擎成为核心技术。ByteHouse自主研发的Vector Search引擎,集成于其核心,不仅兼容主流算法库,还提供了比开源更丰富的算法选项。

在性能优化方面,ByteHouse实施了IO优化、计算前置、冗余消除及向量缓存等策略,有效提升了图像搜索和知识库检索场景下的检索速度,满足了大数据环境下对高效、精准信息处理的迫切需求。这一系列增强措施,使得ByteHouse在舆情分析等高负载场景中表现出色,为用户提供更快、更准确的数据分析体验。

ByteHouse的高性能与弹性优势

弹性能力是云原生数据库的关键特性,旨在解决传统存算耦合架构的扩展难题,实现成本可控与性价比提升。云原生数据库通过容器化、存算分离等技术,提供高性能与弹性支持。在存储层面,ByteHouse采用Serverless模式,基于对象存储构建,实现了低成本无限扩展。计算层面,不同于纯Service方式因单个劣质SQL拖垮整个集群,ByteHouse采取容器化计算策略,确保计算资源无状态或弱状态化,实现秒级弹性伸缩。

同时,通过计算组形式提供给用户,每个计算组以租户或应用为单位,确保资源隔离,避免资源争夺,实现应用级的性能保障与资源隔离。这种设计下,ByteHouse不仅能够提供高性能计算资源的快速调配,还保证了不同租户或应用间的资源独立,有效避免了性能劣化或资源争用,以满足云原生场景下的高并发与多租户需求,实现真正的弹性计算,为用户提供更稳定、更灵活的数据库服务。

ByteHouse通过计划内弹性与即将推出的基于workload的智能动态弹性,实现了资源的快速调整,仅需20多秒即可完成计算资源的伸缩。采用存算分离与容器化技术,重构云原生架构,为用户带来显著收益:一是,秒级弹性伸缩能力,确保资源按需分配;二是,成本优化,避免资源闲置浪费;三是,性能保障,通过计算资源隔离,确保应用稳定运行。

这一系列创新,使得ByteHouse在云原生数据库领域展现出强大竞争力。ByteHouse通过云原生架构的重构,采用存算分离与容器化技术,为用户带来了显著的收益:

弹性灵活: 计算资源基于容器化stateless形式,实现秒级弹性伸缩,而存储层面提供无限容量,按需弹性,满足业务需求波动。
高性价比: 计算资源随开随用,不使用时自动暂停,无需支付计算费用,避免资源闲置浪费。计算资源的pass化隔离确保单个查询不会导致资源消耗失控,账单可预期,基于CPU资源用量计价,而非扫描数据量,确保成本透明可控。
稳定性与性能保障: 租户级、应用级乃至SQL级的资源隔离,确保系统运行的稳定性和服务等级协议(SLA)的持续保障,性能输出稳定,为用户提供高性能与高可靠性的数据库服务。

综上所述,ByteHouse通过其云原生设计,不仅提供了灵活的资源扩展能力,还确保了成本效益与系统稳定运行,成为现代云数据库领域的佼佼者。

四个一体化

ByteHouse作为OLAP产品,相当于人体的腰部,是力量汇聚之处,需与上下游系统协同,如数据库、埋点数据、数据湖及AI数据集市等,实现数据的高效流转与处理。为达成这一目标,我们提出了“四个一体化”的理念,旨在无缝整合数据源,无论是传统的数据库系统,还是现代的数据湖或AI驱动的数据集市,ByteHouse都能实现数据的顺畅融合与处理,确保数据的实时性、一致性和可用性,满足企业级数据处理的全面需求。这一能力使得ByteHouse在复杂的企业数据环境中展现出强大的适应性和集成能力,成为数据融合与分析的枢纽。

第一个一体化,在融合能力方面,实现数据的无缝集成与处理。具体包括:

TP/AP一体化:通过CDC技术,实时捕获上游数据库变更,以秒级速度将数据同步至数据仓库,支持实时报表与仪表盘。ByteHouse不仅内置物化视图引擎,还提供可插拔的DSL数据快车插件,兼容火山引擎VeDI旗下的 DataSail、开源的 DataX、Flink、CDC等主流CDC产品,确保数据的实时同步与高效处理。
流数据一体化:针对上游埋点数据,如游戏日志、车联网或物联网传感器数据,采用streaming技术,通过内置的Kafka引擎,确保高性能消费。ByteHouse对Kafka进行了增强,以提升数据消费性能。此外,自研的ByteHouse connector for Flink和即将推出的 Connector for Spark,实现与Flink和Spark等主流流处理引擎的高效对接,充分发挥流处理的吞吐能力。
通过上述一体化策略,ByteHouse不仅增强了数据的实时性与一致性,还确保了与各种数据源的无缝集成,成为企业级数据融合与分析的强大工具。

第二个一体化聚焦于“湖仓一体化”,即在数据湖与数据仓库间实现高效读写。业界主流的湖仓构建技术路线分为两类:一是基于对象存储,将文件以开放格式存储,通过Presto等计算引擎进行处理;二是构建在Hadoop上,通过Hive、Hudi、Iceberg等类数据库技术对外提供服务。无论哪种方式,ByteHouse均能提供全面支持。

技术亮点在于,为加速湖仓交互性能,ByteHouse在优化器层面进行了增强,特别是在schema感知动态优化方面,以及在orc、parquet等开放格式文件的native reader层面进行了优化,确保湖与仓之间实现高性能数据交换,同时减少数据的冗余流动,提高整体数据处理效率。

第三个一体化强调的是AP(分析处理)与AI(人工智能)的深度融合。在这一领域,ByteHouse已展开广泛探索与实践,旨在通过AI技术深度优化数据库性能,满足复杂多变的数据处理需求,推动数据库智能化发展。主要体现在两个方向:

向量化检索:为满足以图搜图等场景需求,开发了可插拔的vector search引擎,允许用户根据应用需求动态开启或关闭高级特性,实现资源的高效利用。
AI in DB:通过AI技术增强数据库能力,使ByteHouse变得更加智能。具体包括智能查询优化,如自动构建索引、物化视图和缓存,依据查询模式自动调整;智能schema优化,自动优化排序键、分布键,以及数据压缩、低基数处理和高级统计信息的生成。这一系列AI增强功能预计于明年上半年实现产品化,进一步提升数据库的智能处理能力。

在“仓市一体化”方面,针对大型公司分析中台的复杂需求,ByteHouse通过Remote功能,实现了多集群间的数据联邦。传统方案下,多集群数据流动问题频出,而ByteHouse的remote技术,允许不同ByteHouse集群,甚至与ClickHouse(CK)之间共享数据,无需物理搬迁,简化了数据管理,提升效率。这一持续迭代与增强的方案,解决了大型企业数据分析中台在数据流动与管理上的难题,提供了更为灵活高效的数据处理能力。

通过推进TP/AP、湖仓、AP/AI以及仓市四个层面的一体化,我们正逐步实现“Zero ETL”的理念。Zero ETL并非单一工具,而是一种指导思想,促使我们重新审视并优化数据架构全链路,甚至进行局部重构。TP/AP一体化,助力数据免搬迁,提升开发敏捷性与数据仓库轻量化,使数据流动更高效。湖仓一体化大幅减少传统数据搬迁,不仅简化流程,更显著提升数据质量,解决数据在不同组件间迁移时的质量问题,让数据架构更轻盈、可靠。AP/AI一体化引入AI技术,持续迭代优化,使运维智能化,减少人力成本,确保数据库使用体验流畅、响应迅速,如同手机广告中描述的“越用越快”,ByteHouse致力于为用户提供更顺畅的使用体验。仓市一体化通过数据联邦,实现多集群间数据无缝共享,无需物理搬迁,极大简化数据管理,提升效率。

四个一体化的推进,旨在打造更轻量、高效、智能的数据架构,保障数据质量,提升运维效率,确保数据库使用体验流畅无阻,实现数据架构的全面优化与升级,这正是是ByteHouse致力于为用户带来的核心价值。

一元化数据,多元化引擎

第四个核心能力,聚焦于全场景分析,旨在规避系统间的不兼容问题,最大化数据效能。我们秉持“一元化数据,多元化引擎”的理念,确保数据效能最大化。ByteHouse的OLAP引擎是基石,经过深度优化,能支持宽表、星型模型、雪花模型等复杂分析需求,即使在泛式化建模中也表现出色。技术亮点包括流批一体、增强型预聚合等,使我们在实时数仓、用户圈选、行为分析、广告推荐等场景下表现优异。

特别介绍的高级分析引擎之一是GIS时空分析,其功能与PostGIS对齐,但性能超越十倍以上,基于ByteHouse强大的OLAP底座,叠加时空分析功能。我们投入大量研发,优化二维空间索引和数据分布,支持PostGIS常用的空间分析函数,确保全面覆盖。在抖音集团内部的电商罗盘业务中,distance和within等关键函数的性能表现显著优于同类产品,为店铺选址、基于位置的营销策略提供强有力支持,展现出卓越性能。

此外,我们还提供图分析引擎,对齐Neo4j功能,支持图算法和图数据库查询语言Cypher,适用于关系网络分析、推荐系统、欺诈检测等场景。在性能上,我们通过优化图数据存储和查询算法,实现了高效图分析能力。

通过这些多元化的高级分析引擎,ByteHouse不仅满足传统OLAP场景需求,还能在时空分析、图分析等复杂场景下,提供卓越的分析能力,助力企业最大化数据价值,提升业务决策效率。

接下来是vector向量检索,ByteHouse比开源的Weaviate更快更强。全文检索方面,比ES更省空间,性能更佳,秘诀在于高压缩比。所有高级引擎都基于SQL,用户上手零成本,只需懂SQL,就能搞定过去复杂的业务分析场景。

生态多元化

在OLAP领域,虽百花齐放,却多是存量竞争。我们渴望更多用户尝试ByteHouse,但用户迁移时,最担忧的莫过于改写成本与兼容性挑战。我们的目标是在生态多元化的道路上,实现无缝迁移,无需改写代码,保持开发与分析人员的习惯连续性,换平台不等于从零开始,让工程师们能无缝衔接,继续用他们熟悉的方式工作,无需重新学习新技术或用法,让迁移变得轻松无痛。

具体做法主要是围绕三个生态去进行迭代和提升。

在数据集成生态上,我们与开源主流组件无缝对接,无论是流处理、批处理还是调度工具,均实现良好融合。在开发生态方面,我们的SQL方言不仅兼容开源社区ClickHouse,更对MySQL生态进行了深度适配,投入大量研发资源,实现全兼容,包括MySQL方言、函数及协议,确保开发者习惯得以延续,免于改写。

在应用生态方面,我们支持社区标准驱动,确保BI工具如火山引擎DataWind、帆软、Tableau、QuickBI、SuperSet 等,无需额外配置即可直接使用。此外,我们的驱动兼容性,让不同平台间的迁移成本接近零,实现真正的无缝对接。

最佳实践

接下来介绍一些最佳实践案例。实时数仓的构建,首要追求仍是性能,尤其是高吞吐TPS、低延迟响应、高并发处理,以及实时流的多维计算能力。ByteHouse在数据集成方面,无论采用CDC(Change Data Capture)还是Message Streaming,都能无缝对接主流开源产品,提供性能提升,即使面对极端苛刻的性能要求,我们也有信心提供卓越服务。

实时数仓

实时数仓的核心在于实时计算,目前有两种技术实现:仓外计算和仓内计算。

仓外计算,即基于Flink或Spark Flink构建,ByteHouse支持通过自研的ByteHouse Connector for Flink,实现每秒百万级数据的高效消费与去重入库。此外,Flink的Look Up Join功能可实现表拼接和属性补齐等规则性计算。
仓内计算,则利用ByteHouse的物化视图能力,将计算压力转移到OLAP引擎,实现数据链路的轻量化。物化视图支持多表物化、同步刷新和规则异步刷新,适用于复杂流计算和拼接计算,使数据架构链路更简洁高效。

面对高并发查询,ByteHouse提供了Query Cache功能,可以有效处理点查和复杂查询,减少重复优化和执行计划生成的时间消耗。我们还优化了查询模板,将点查能力提升至几十万甚至百万级。例如,在游戏广告推荐系统中,我们支撑了20万QPS的点查场景,延迟控制在10毫秒内。在混合型查询场景的广告推荐中,面对3万QPS,整体响应时间压缩至5秒内,性能卓越。

在某娱乐公司实时BI场景下,通过CDC技术路线,我们轻松同步每日15亿数据量。而在某畅销游戏数据中台构建中,自研Connector实现260万TPS的日志数据高效落盘,确保数据处理的高效与安全。

这些案例展示了ByteHouse在实时数仓构建领域的强大性能和灵活应用。

企业级 OLAP 中台

转向企业级OLAP中台,作为云原生数据仓库,我们主张一元化架构支持多元化场景。企业级数据中台的核心诉求包括高性能、混合负载下的资源隔离、无损弹性以及简化架构,尤其对中小企业,期望一套架构即可支撑,避免湖与仓的复杂组合,同时控制成本。

ByteHouse的解决方案在于资源隔离,通过计算组实现不同应用构建各自的计算组,确保物理级资源隔离,避免资源争抢。我们支持读写分离,为读写繁忙的业务系统配置专属计算组,专门处理写操作,确保写操作不会影响读应用的资源保障。同时,应用级隔离建议为不同应用设定专属资源组,依据具体算力需求构建,从最小的S规格到N倍扩展,我们全面支持。在弹性方面,可依据业务属性定制弹性计划,支持触发型弹性,计划内弹性,以及正在研发的基于工作负载智能感知的弹性计划,预计明年上半年推出。

此外,我们强调无损弹性,确保弹性扩容不会影响业务连续性。对于中小企业,我们提供了一站式解决方案,无需复杂架构组合,即可满足两三百TB以下数据规模的业务需求。通过计算组的灵活配置,实现资源的有效隔离与优化,确保高性能与成本效益,让企业级OLAP中台构建更为简单高效。

接下来探讨成本优化策略,通过弹性策略实现。对于稳定运行的应用,推荐包年包月模式,以获得更优惠的费用。而对于具有明显波峰波谷特征的应用,如开发或准生产环境,建议采用按需模式,开启自动启停功能,当计算组负载低于阈值持续五分钟,系统将自动暂停,最大化节省成本。

在企业级中台构建中,我们主张一元化架构支撑多元化业务,确保高性能、资源隔离、无损弹性,同时简化架构,满足成本控制需求,尤其适用于中小企业。通过计算组的灵活配置,实现资源高效利用与成本优化。

广告推荐投放

在短剧行业,数据分析与广告投放效率的提升成为关键。ByteHouse与连山云合作,提供联合解决方案,通过RDS数据推送、Serverless Flink数据同步,以及ByteHouse的高性能查询能力,支持日均千万级查询,返回效率在一秒内,满足高频分析需求。某短剧营销商在我们的平台上实现了2000QPS的顺畅运行,同时,内置高频分析函数,开箱即用,性能最优,有效提升广告投放ROI,至少两倍以上。

综上,无论是企业级数据中台的构建,还是短剧行业的广告投放优化,ByteHouse均提供了全面、高效的解决方案。

点击跳转 火山引擎云原生数仓ByteHouse 了解更多


字节跳动数据平台
350 声望71 粉丝