聚焦OLAP性能提升 火山引擎ByteHouse性能挑战赛圆满落幕
日前,ByteHouse举办性能挑战赛活动,吸引来自金融、泛互、消费、能源等众多行业开发者报名参与,共同探索OLAP性能提升和场景应用。
作为一款OLAP引擎,伴随字节跳动各业务的发展,ByteHouse经过数百个应用场景和数万用户锤炼,在2022年3月,部署规模已超过1万8000台,最大的集群规模在 2400 余个节点,管理总数据量超过700PB,并逐步在外部金融、泛互等场景应用和推广。为了更好支持字节内外部大规模数据和复杂场景应用,性能一直以来是ByteHouse重点打磨的产品基本功。
在之前发布的《云原生数据仓库ByteHouse性能白皮书》中,ByteHouse基于 SSB 100G、TPC-H 100G、TPC-DS 100G 数据集进行性能测试,在查询效率方面的显著成果。以TPC-H 数据集举例,在相同硬件和软件环境下, ByteHouse 查询效率高于本次基准测试产品几十倍。
此次ByteHouse性能挑战赛,邀请参赛者基于脚本和环境,对性能进行复现和挑战,进一步探索OLAP性能突破。
“无论在优化还是执行上,ByteHouse性能表现都很惊艳。ByteHouse用全局字典改变了建表逻辑,我试着把建表语句调整到标准benchmark的建表语句,除了对ssb有影响外,其他影响不大,ByteHouse性能还是很强悍的”,来自某数据库产品开发者这样介绍到。
不仅仅聚焦在技术层面的性能调优,更多来自泛互联网、能源等行业的开发者,也在探索将ByteHouse高性能特性与自身实际应用场景结合。
来自某房产APP的开发者提到,“我们公司的使用场景包括两个方面,一个是管理人员看指标数据,如果发现指标有问题,要下钻到明细,找出指标异常原因,并根据明细数据情况,再采取进一步管理动作;另一个是业务场景中的指标明细大规模查询和下载。以上场景,要求OLAP引擎同时具备明细数据查询、数据聚合能力。之前,我们也调研了Apache Kylin、ClickHouse等多款产品,在明细数据和聚合查询等能力上不太满足需求,了解到物化视图相关优化,因而关注到ByteHouse。”
基于在水利工程领域的实践,某位开发者也提出OLAP的性能优化思路,“在水利领域,对于大量的监测数据其实没有太复杂的逻辑运算,但是对动态取极值有着很多应用场景,这种需求没办法做预计算,可以对数据模型进行设计,设置出极值字段入库时进行计算落地,这种方案可以应用在OLAP性能优化上。”
经过为期一个月的赛程,参赛者们基于ByteHouse的脚本和环境,交出了一份又一份性能挑战成果,也对ByteHouse性能表示认可。据介绍,在复杂查询上,ByteHouse解决了ClickHouse缺少优化器支持的问题,从RBO(基于规则的优化能力)、CBO(基于代价的优化能力)、分布式计划生成方面推出了自研优化器,能够准确的计算出效率最大化执行路径,大幅度降低用户查询时间。除此之外,ByteHouse还从Exchange、Runtime Filter以及并行化重构等方向进行了优化。在宽表查询上,ByteHouse主要通过全局字典、Zero copy以及UncompressedCache 来进行性能提升。
卓越的性能,能够帮助企业及时处理复杂的分析查询,提高数据获取速度,减少数据分析的时间和资源消耗,快速、准确产出分析结果,助力企业人员实时掌握业务状况,并做出及时决策。结合字节跳动内部业务实践与外部落地应用,ByteHouse将继续进行性能优化,为企业决策提效。