随着各业务场景各行业数字化转型加快,数据量呈爆炸式增长。在拥有庞大数据的同时,业务也在分析、查询与响应层面,对数据库系统性能提出了更高要求。云原生技术推动了分布式数据库系统的迭代升级,对云数仓技术而言,“写入能力、高性能查询、高并发、架构精简、成本控制”的一系列挑战,是其在发展中亟待解决的难题。 作为火山引擎数智平台 VeDI 旗下的新一代云原生数仓产品,ByteHouse能够支撑实时数据分析和海量数据离线分析,具备便捷的弹性扩缩容能力,极致分析性能和丰富的企业级特性。以 ClickHouse 技术路线为基础,从2017年内部立项开始,截止到2022年3月,ByteHouse 节点总数已经达到了18,000,最大的行为分析集群超过了2,400个节点,数据量超过700PB。 本文聚焦 ByteHouse 在实时数仓、企业级中台OLAP 以及广告投放三个领域最佳实践,拆解高并发点查、OLAP 引擎技术、以及圈选投放等能力在实际业务场景中的实现逻辑和效果,分享新一代云数仓的三大最佳实践。
实时数仓
在移动互联网庞大用户群体和高频访问需求的背景下,业务场景对数据处理的即时性和准确性提出了更高要求。与离线数仓不同,实时数仓以秒级延迟的数据生产为目标,从而能够更快地为商业决策、市场分析、用户行为研究等场景提供数据依据。 在目前的数据生产领域,构建实时数仓已成趋势,“如何让自己在数据洞察方面更具优势”成为倍受关注的焦点。性能是实时数仓领域的首要目标,核心性能需求则包括:高吞吐 TPS、低延时反馈响应、高并发以及实时流多维计算。 实时数仓核心需求实时计算
实时数仓领域的关键诉求之一是实时计算。目前,实时计算有仓外、仓内计算这两个技术实现流派。- 仓外计算
- 仓内计算
高并发点查
基于 ByteHouse QueryCache 功能可以很好支撑高性能、高并发的点查和复杂查询业务场景。ByteHouse 的增强型优化器参数则可以减少点查场景中生成执行计划的时间消耗,再叠加查询模板等技术能够轻松将点查提升到几十万甚至百万级的层面。ByteHouse不仅具备性能优势,还能在同等业务场景情况下实现更低的资源消耗,缓解成本压力,并有效保障系统稳定性。 目前,ByteHouse 的高并发点查能力已在游戏场景中顺利落地。以某游戏广告推荐系统为例,该系统需要快速响应大规模用户的同时搜索操作,并通过查询用户属性表、游戏属性表和广告属性表等信息,匹配并推荐用户可能感兴趣的游戏。该游戏公司日常 QPS 达到万级规模,而在高峰期,QPS 指标会随之增长数倍。这就导致该系统面临着不稳定和故障解决响应速度较慢的问题。 ByteHouse 则为这一问题提供了解决方案,在游戏推荐场景中,ByteHouse 很好地支持了 20 万 QPS 的点查场景,且时延达到 10 毫秒以内。在包括点查和复杂查询的混合查询型广告推荐场景中,面对高达 3 万的QPS,ByteHouse 也能够将时延压缩到 5 毫秒内,性能表现优异。 不止游戏领域,ByteHouse 的高并发点查能力也在舆情监测以及电商等场景中落地。仟传网络,是国内知名的内容社交平台整合营销企业,其旗下的舆情监测平台面临着数据实时性方面的挑战。舆情监控对数据实时性要求很高,但在该平台的原有技术方案中,提供舆情相似度检索能力的自建Elasticsearch并无法在性能与成本上完全满足需求。 在性能上,业务要求系统支持数万QPS的实时检索;在成本上,随着数据量不断增大,机器资源成本将愈加不可控。此外,数据写入和查询流程较为复杂,导致应用开发成本高。面对该企业的高并发点查难题,ByteHouse 采用多副本机制,将全量数据写入主节点,实时自动同步至多个副本,并通过网关查询实现自动负载均衡、一写多读,从而线性提高并发能力。 ByteHouse还支持通过SQL写入、查询来完成业务逻辑,简化数据处理流程,提升开发效率。此外在资源效率上,ByteHouse采用灵活的资源模型,可支持任意节点数量和副本数量变配。用户初始只需购买最小资源,后期则可随业务增长即时扩容,从而使成本更加可控。数据集成
在数据集成层面,ByteHouse 可以无缝对接主流开源产品,支持 Kafka 流、MySQL、CDC 等数据的实时同步接入,保证数据的精准一次(exact once)传输,并实时分析流入的数据,适用于实时点击流分析、实时监控等场景。通过创建并执行数据集成任务,ByteHouse 能够处理每天百亿到千亿的事件量。同时,ByteHouse 在性能方面也进行了优化提升,满足用户在各个场景中性能方面诉求。企业级 OLAP 中台
在数据平台的建设中,已有不少企业引入 OLAP 引擎,OLAP 引擎能处理大规模的数据集,并快速提供多维度的数据分析的结果,从而使营销活动数据的实时查询效率,并进一步优化精准投放表现。 在 OLAP 中台或数仓建设方面,业界目前主要有高性能、资源隔离、无损弹性、架构简洁轻快以及成本最优的五点核心诉求。而作为基于开源 ClickHouse 而构建的OLAP引擎,ByteHouse 期望通过企业级数据中台技术,以一元化架构对多元化场景的业务需求提供充分支持。 企业级OLAP中台核心需求
资源隔离
ByteHouse 通过计算组的方式来实现资源隔离,不同应用可以构建不同计算组,不同计算组之间可以做到物理级资源隔离,以此确保计算组之间的资源不会被占用。- 读写分离
- 应用隔离
无损弹性实现最优成本
弹性是 ByteHouse 的核心特性之一,ByteHouse 的秒级弹性扩缩能力让企业更加专注业务,不同企业能根据业务属性来定制弹性计划。目前可实现的是自定义设定时间触发型弹性计划,明年上半年将实现基于工作负载的智能感知型计划。 在弹性机制下, ByteHouse 可以实现按需计费、自动启停和自动弹性伸缩等策略,且在暂停期间不收取任何计算层费用,从而进一步帮助企业降低资源成本。 在某广告营销公司的落地实践中,ByteHouse 针对负载趋于稳态运行的应用,计算组会设定为包月模式,使得整体费用更加优惠。而对于负载具有明显波峰、波谷特征的应用,则会把计算组设定为按需模式,“自动启停”功能会在后台自动检测计算组的负载情况。如果处于负载较少且持续超过 5 分钟的低峰期,系统将自动暂停,从而最大限度地节省开支和费用,为企业带来最优成本的解决方案。广告推荐投放
近年来,短剧日渐流行,成为广告营销公司服务的热门场景之一。大家在看短剧时,是否会想“为什么平台会给我推送这些短剧”。实际上,这个问题的答案或多或少与 OLAP 的功能有关。移动互联网的流量红利不断消退,精细化营销模式随之跃迁为主流。从数以亿计的人群中,优选出最具潜力的目标受众,是精细营销的题中之义,也是作为基础引擎的数据仓库能力所面临的挑战。 在渐趋庞大的数据体量下,广告营销公司的数据分析能力逐渐难以跟上业务诉求,一方面,投放策略的实时调整要求数据分析和更新时效性在3s内,且并发QPS达到2000。另一方面,在营销场景中,海量数据的实时更新会导致大量数据碎片的产生,这些碎片既会拉低查询性能,还会导致存储空间的浪费。 基于上述问题,广告营销公司开始引入 OLAP 引擎技术作为解决方案。作为基于开源 ClickHouse 而构建的 OLAP 引擎,ByteHouse 具有极致分析体验、弹性扩缩容等特性,从而能够提供有效解法。ByteHouse 联合连山云、巨量引擎,搭建了一套 ”一键实时同步、极简架构、低门槛技术” 的短剧行业通用解决方案,从而实现端到端地赋能短剧行业,提升广告数据处理效率与投放ROI。 ByteHouse基于连山云搭建的短剧行业通用解决方案