nh1

火山引擎ByteHouse:如何用ELT构建高性能离/在线一体化数仓

栏目:行业   作者:魏无忌    发布时间:2024-11-22 09:46   阅读量:15925   会员投稿

 


近日,火山引擎ByteHouse与某知名数字娱乐公司聚焦高性能离/在线一体化数仓展开合作。基于ByteHouse ELT能力,该数字娱乐公司解决了数据融合、实时分析、可扩展性和灵活性等多方面的挑战,还进一步提升了其数据处理和分析的效率。

随着数字娱乐行业的快速发展,该公司在业务扩张过程中对数据基础服务的要求日益提高。原先的数据架构存在架构复杂、数据冗余、效率瓶颈等问题,无法满足日益增长的数据处理需求。为此,该公司通过引入ByteHouse来构建一体化数仓,简化数据流程、降低维护成本,并提升数据处理的实时性和稳定性。

作为一款云原生数据仓库,ByteHouse基于ClickHouse技术路线进行了深度优化和升级,不仅具备极致的分析性能和良好的扩展能力,还支持丰富的ELT作业功能,包括fault tolerance和任务拆分等,帮助用户应对大规模数据处理和复杂查询的挑战。

据ByteHouse技术相关人员介绍,为了解决海量数据下的处理和分析需求,ByteHouse主要从提升任务并行度、任务级重试能力、大批量并行写入优化以及简化数据链路四个方面进行优化。

首先,在提升任务并行度方面,ByteHouse的BSP模式支持将查询切分为独立的阶段,并在阶段内进行并行度拓展。这一特性使得大查询的内存占用大幅降低,任务失败率也显著降低。通过对关键大表增加并行度,该公司的离线任务整体内存峰值降低了约40%,有效减少了内存溢出的风险。

其次,ByteHouse离线任务加工中的任务级重试功能,当任务运行失败时,无需整个链路重新执行,仅重试失败任务,显著提高该公司的任务执行成功率。以2024年10月15日、16日、17日的数据为例,任务的成功率在分别提高了6.6%、4.4%和2.9%,整体成功率为100%。

再次,针对该公司业务数据频繁更新的特点,ByteHouse对写入流程进行了大量优化。通过并行化最耗时的数据写入部分,并在写入过程中标记需要后续去重作业的数据,ByteHouse实现了高效的数据更新。在保持稳定的前提下,用户的十亿表插入作业运行时间从48分钟降低到13分钟,提速高达73%。

最后,在简化数据链路方面,ByteHouse在传统的MPP链路基础上增加了对复杂查询的支持,并通过BSP模式将各个阶段进行隔离,使得每个阶段和任务都更加独立,降低了任务失败的概率,并提高了资源使用的效率。

通过引入ByteHouse构建一体化数仓,该数字娱乐公司成功实现了数据加工和数据分析的整合,不仅减少了组件冗余和人力成本,还大大提高了数据的实时性和运营效率。未来,火山引擎ByteHouse将继续致力于提供更高效、更稳定的数据服务,助力更多企业实现数字化转型和升级。


ad