700PB 数据的数仓依然“快稳省”!ByteHouse 这本白皮书揭秘关键(内附下载链接)
12 月 10 日,《火山引擎 ByteHouse 云数仓产品白皮书》在线上发布。
在数字经济蓬勃发展的今天,企业面临着数据量爆炸性增长、数据分析需求日益复杂的双重挑战。传统的数据仓库解决方案已经难以满足企业对数据处理速度和灵活性的高要求。为了应对这些挑战,火山引擎于 2021 年正式推出 ByteHouse——专为云原生环境设计的高性能数据仓库产品。早在 2022 年初,ByteHouse 在抖音集团内部的部署规模已超过 1 万 8000 台,最大的集群规模在 2400 余个节点,管理总数据量超过 700PB,并且依然在不断增长,对外也经过游戏、汽车、泛互联网等众多行业,数百个应用场景和数万用户锤炼。
本次发布《火山引擎 ByteHouse 云数仓产品白皮书》从设计理念、产品架构、核心能力、场景优势等多维度介绍 ByteHouse 在 OLAP 领域的产品和技术先进性,以及如何实现高性能、高稳定、高安全。不仅仅聚焦 OLAP 领域,通过集成向量检索、全文检索、GIS 等功能,ByteHouse 持续拓展能力边界,并建设涵盖集成、开发、应用的上下游生态。除此之外,基于 SSB 和 TPC-DS 标准测试集,白皮书也公开了 ByteHouse 在 OLAP、ELT 等场景下的最新性能成果。在应用场景方面,白皮书则从 OLAP 中台建设、行为分析、车联网 IoT 三个场景为企业提供数据分析最佳实践参考。
据介绍,ByteHouse 云数仓版具备“快”“稳”“省”三个核心特点,不仅能保障高效处理海量数据,即时响应复杂查询,还能降低多系统的各种冗余和复杂度,提升整体稳定性,并实现资源、运维成本最优。
有多快?公布标准测试集下性能最新成果
在数据处理和分析的领域,提升查询效率始终是一项关键挑战。在选择 OLAP 引擎时,性能是重要衡量因素。高性能的 OLAP 具有快速的数据处理能力,并缩短响应时间,提供更好的用户体验,使数据分析和查询更加流畅和便捷。
SSB 和 TPC-DS 是常用于测试分析型数据库/数据仓库的数据集,被广泛应用于数据仓库领域。在白皮书中,通过采用以上数据集,ByteHouse 展示了 OLAP、ELT、湖仓一体场景中,与行业同类产品相比的性能表现。
在 OLAP 场景中,以 TPC-DS 数据集测试为例,通过将模拟生成的 1000G 数据导入测试产品,在 99 个查询中,ByteHouse 对比行业某主流开源产品 D*,整体查询性能达到该产品 1.16 倍。在 ELT 场景中,BSP 模式下 ByteHouse 对比某主流开源产品 S* ,整体查询性能达到该产品 6.05 倍。在湖仓一体场景中,ByteHouse 对比开源产品 S*,Hive Parquet 外表查询(冷读),整体查询性能达到该产品 1.18 倍。
TPC-DS 1TiB: ByteHouse 云数仓(2.2) 228s, 开源产品 D(2.1.1) 264s,超越 16%
除此之外,在 Vector 及 GIS 分析场景中,ByteHouse 对比行业同类产品也有明显性能优势。这意味着,ByteHouse 让企业在享受极致性能的同时,无需引入其他架构,就能使用文字检索、地理空间分析、向量检索能力。企业只需用一套架构就能满足多元化分析需求,节省企业资源人力成本,提升数据效能。
ByteHouse 技术专家高大月也在发布会上揭秘了性能提升的关键技术。在 OLAP 性能提升方面,ByteHouse 从 RBO(基于规则的优化能力)、CBO(基于代价的优化能力)、分布式计划生成方面推出了自研优化器,能够准确的计算出效率最大化执行路径,大幅度降低用户查询时间。同时,ByteHouse 也通过高并发点查解决索引计算繁重、点查读放大严重、执行链路冗长、锁竞争激烈等问题,进一步提升数据处理效率。
能多稳?将任务成功率提升至 100%
数据在加载进入数据仓库之前,往往要经过复杂的数据清洗和转换过程,由此需要引入外部引擎,导致架构相对复杂,而 ByteHouse 全面支持 Extract-Load-Transform (ELT)的能力,把数据加工的过程转移到 ByteHouse 内部,用户只需将数据导入,用自定义 SQL 语句进行数据转换,降低多系统的各种冗余和复杂度,提升用户体验,并进一步增长了系统稳定性。
据介绍,为了简化数据链路、提升任务并行度,ByteHouse 在传统的 MPP 调度模型之外,新增了 BSP 调度模型(Bulk Synchronous Parallel),通过各个 stage 逐层调度、数据写盘,使得每个阶段和任务都更加独立,降低了任务失败的概率,并提高了资源使用的效率。除此之外,ByteHouse 还在离线任务加工中的任务级重试功能,当作业的某个任务失败时,无需整个作业重新执行,仅重试失败任务,显著降低了重试的成本,提升了作业的成功率。针对业务数据频繁更新的特点,ByteHouse 对写入流程进行了大量优化。通过并行化最耗时的数据写入部分,并在写入过程中标记需要后续去重作业的数据,实现高效的数据更新。
ByteHouse 技术专家游致远以某数字娱乐公司举例,该公司通过引入 ByteHouse 来构建一体化数仓,从 2024 年 10 月 15 日、16 日、17 日数据来看,任务的成功率在分别提高了 6.6%、4.4%和 2.9%,整体成功率为 100%。通过对关键大表增加并行度,该公司的离线任务整体内存峰值降低了约 40%,有效减少了内存溢出的风险,整体提升了数据处理的实时性和稳定性。
开启 ByteHouse BSP 模式前后 ELT 成功率对比
如何省?打造新一代“弹性”云数仓
当下企业的业务流量往往具有很大的不确定性。例如,电商平台在 “618”“双 11” 等促销活动期间,访问量会呈爆发式增长,可能是平时的十倍甚至百倍,导致系统无法承载如此高负载而崩溃。这就要求底层数据库具备“弹性”机制,能根据流量情况自动伸缩资源,在满足业务波峰需求同时节省成本。
而弹性正是云原生架构的核心特性。ByteHouse 云原生弹性能力允许企业根据实际需求动态调整资源,只在需要的时候分配资源,实现随开随用,不使用时自动暂停,暂停期间不收取任何计算层费用,从而降低了成本。
ByteHouse 自动启停策略,帮助用户成本节约 20%+
在白皮书发布会上,ByteHouse 产品经理孔柏林介绍到,在存储层面, ByteHouse 采用 Serverless 架构,具有低成本、无限扩展的能力。在计算层面,ByteHouse 则基于 PaaS 模式,通过容器化实现无状态或弱状态,将整个计算组包装成租户和应用呈现给用户,保证租户之间不会发生资源征用冲突或性能劣化,让计算资源在秒级内实现弹性拉起和弹性扩缩容。正是由于采用计算资源采用 PaaS 方式,ByteHouse 能让用户有效避免不规范 SQL 造成的过多资源消耗,且计价模式采用资源用量(CPU)方式,确保用户对账单可预期。
以中国某知名游戏厂商为例,该厂商基于 ByteHouse 构建了一体化实时数仓平台,具备实时数据接入、实时 ETL 数据加工、实时维表关联和实时数据服务等能力,不仅能支持 20 万+QPS 高并发点查,性能提高 2 倍以上,在资源用量上,比之前架构减少了 30%成本。
立即领取《火山引擎 ByteHouse 云数仓产品白皮书》:
版权声明: 本文为 InfoQ 作者【字节跳动数据平台】的原创文章。
原文链接:【http://xie.infoq.cn/article/fba5bb2952286170939a7bf5f】。文章转载请联系作者。
评论