【火山引擎】2024云原生数据仓库ByteHouse性能白皮书(企业版)_36页_1mb
报告摘要
云原生数据仓库 ByteHouse 性能白皮书(企业版)总结
核心内容
ByteHouse 是火山引擎自主研发的云原生数据仓库产品,基于开源 ClickHouse 构建,实现了性能和功能的全面优化。它在架构上采用云原生理念,具备容器化、存储计算分离、多租户管理、读写分离等特性,显著提升了可扩展性、稳定性、可运维性、性能和资源利用率。ByteHouse 已在字节跳动内部部署超过 18000 台,单集群超过 2400 台,并在多个外部企业客户中得到广泛应用。
主要观点
- 高性能:ByteHouse 在多个标准测试集(SSB、TPC-H、TPC-DS)中表现出卓越的查询性能,某些查询性能是开源产品的 3.6 倍以上。
- 实时分析能力:通过 HaKafka Engine 和 MaterializedMySQL 引擎支持实时数据同步与消费,满足企业实时分析需求。
- 优化技术:ByteHouse 采用多种优化技术,包括智能优化算法、Runtime Filter、并行化重构、Zero copy 优化、预聚合、全局字典等,显著提升查询效率和系统性能。
- 多样化应用场景:支持实时数仓、复杂查询、宽表查询、人群圈选、行为分析、高并发场景、向量检索和 GIS 时空分析等多场景应用,适用于电商、社交、政府、金融、零售等领域。
关键信息
实时数仓
- HaKafka Engine:提供高可用 Kafka 消费引擎,支持 low-level 消费模式,保证 At-least-once 消费语义。
- Flink Connector:支持通过 Flink 将数据加载到 ByteHouse,提供 Table API & SQL 和 Flink DataStream API 两种方式。
- MaterializedMySQL 引擎:实现 MySQL Binlog 机制的实时同步,支持自定义版本字段和 UNIQUE KEY 实时删除功能。
- Upsert & 部分列更新:支持主键实时更新和部分列更新,通过设置
enable_unique_partial_update = 1实现。
复杂查询
- 自研优化器:支持 RBO、CBO、分布式计划优化和高阶优化能力,如 Join Reorder、Magic Set Placement、CTE 优化等。
- Runtime Filter:通过在 Join 的 Probe 端提前过滤数据,减少数据扫描和传输,提升查询性能。
- 并行化重构 + Bucket 表:优化 Aggregation 和 Join 的性能,减少 Final Merge 和 Shuffle,提升整体查询效率。
宽表查询
- 预聚合(物化视图):通过预计算结果加速查询,避免重复计算与聚合,提升查询性能。
- Zero copy 优化:减少数据拷贝次数,提升数据传输效率,缓解内存 IO 带宽瓶颈。
- 全局字典:使用定长整型编码值进行计算,提升 Agg、Function 和 Exchange 的效率。
- UncompressedCache 优化:提升多线程下 cache 访问效率,减少锁竞争。
人群圈选 & 用户画像
- BitEngine/BitMap:支持高效集合数据处理,提升查询速度 10-50 倍,适用于人群圈选等场景。
- Bitmap 索引:用于 Array 类型过滤,提升查询性能 4-10 倍。
行为分析
- 留存分析函数:如
retention2(),帮助分析用户留存情况。 - 漏斗分析函数:如
finderFunnel(),用于统计用户在不同阶段的转化率和路径。 - 高效支持:帮助行为分析系统接入字节跳动内部几乎所有产品线,支持高并发、大规模数据处理。
高并发场景
- Vector 向量检索:支持多种 ANN 算法(HNSW、Faiss 等),提供高性能向量相似度计算。
- GIS 时空分析:支持高性能空间查询,如
ST_DistanceSphere和ST_Within,提升位置洞察和作战地图等场景的处理能力。
标准测试集性能参照
- SSB 测试结果:在 SSB 宽表测试中,ByteHouse 的查询性能全面超越开源产品 C*,整体性能达到其 3.6 倍以上,某些查询性能提升显著。
- TPC-H & TPC-DS 测试结果:在 TPC-H 和 TPC-DS 测试中,ByteHouse 表现出良好的性能,尤其在大规模数据和复杂查询场景下。
测试环境
- 硬件环境:每个测试环境包含 3 个节点,配置为 Intel 16 核、64GB 内存、5 Gbits/s 网络带宽、ESSD 高效云盘(200GB)。
- 软件环境:使用 Linux 3.10.0-1127.19.1.el7.x86_64,CentOS 7.8.2003,ByteHouse 企业版 2.4.0.231,开源产品 C* 24.3.1.1023。
测试步骤
- 数据生成:使用 SSB 工具包生成测试数据,包括 lineorder、customer、part、supplier、dwdate 等表。
- 数据导入:通过
clickhouse-client命令将数据导入到测试表中。 - 数据查询:通过 SQL 查询测试 SSB 宽表和标准 SSB 查询,验证查询性能。
总结
ByteHouse 通过一系列优化技术,在实时数仓、复杂查询、宽表查询、人群圈选、行为分析、高并发、向量检索和 GIS 时空分析等多个场景中展现出卓越的性能。它不仅继承了 ClickHouse 的高性能,还在云原生架构下实现了更高的可扩展性和稳定性,适用于企业级大数据分析需求。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载