小红书是年轻人的生活记录、分享平台,用户可以通过短视频、图文等形式记录生活点滴,分享生活方式。在 2017 年后,随着业务类型和用户体量的爆炸式增长,各类数据分析的需求以及应用系统的数据需求快速出现,例如:商业智能分析,数据应用报表,用户行为分析、算法策略数据等。为了满足业务需求,小红书使用过多种 OLAP 数据分析系统。StarRocks 采用了全面向量化计算技术,是性能非常强悍的新一代 MPP 数据库。通过引入 StarRocks,小红书构建了全新的统一数据服务平台,大大降低了数据链路开发复杂性,提升了高并发极速查询能力。
小红书 OLAP 演进史
小红书 OLAP 演进可以分为四个阶段。第一阶段,在 2017 年之前,数据总量还不算非常大,这个阶段主要使用 AWS 的 Redshift。此阶段数仓体系还没有完全建立,很多数据需求的实现都是用短平快、烟囱式开发的方式来满足。数据 ETL、数仓模型到最后报表端展现,在 Redshift 中一站式完成。但随着业务复杂度不断提升,以及数据量的快速增长,这种模式很快遇到了瓶颈。
第二阶段,基于 Hadoop 生态构建了小红书的数仓体系,基于 Hive 和 Presto 构建数据分析平台。
第三阶段,随着数据实时性的要求越来越高,业务方对整个数据分析的性能要求也越来越高,所以在 2019 年左右引入了 ClickHouse。通过 ClickHouse 强悍的分析能力,构造了一个准实时的交互式的分析平台,来支撑公司内包括用户行为分析、实验平台等一系列的场景。
第四阶段,随着实时数仓体系的设计和建设不断的推进,越来越多内部包括外部的数据应用也对数据分析要求越来越高。除了要求超低延迟的响应要求,同时还可能有比较高的 QPS 要求,ClickHouse 在这方面就不能够很好的满足业务的需求。所以在 2020 年底的时候,我们尝试了 StarRocks,并且目前已经在公司内多个业务场景中落地推广。
业务背景
小红书的广告场景大概可以分为两类,一种是搜索广告,一种是效果广告。搜索广告主要会利用实时计算出来一些统计指标,来对广告的部分召回进行推荐。
效果广告主要是会根据用户的一些展点销的信息,统计出的实时指标,再结合一些投放的实验进行智能广告的投放。同时,广告平台会根据各种业务的统计指标,产生实时或者离线的数据报告,供广告主进行分析运营使用。
初试 StarRocks:搜索广告场景
历史架构与痛点
搜索业务场景主要包括三个方面的业务特征:第一个是要计算的特征的数量特别多,并且组合维度也非常的灵活。第