
小红书是年轻人的生活记录、 平台,用户可以通过短视频、图文等形式记录生活点滴, 生活方式。在2017年后,随着业务类型和用户体量的 式增长,各类数据分析的需求以及应用系统的数据需求快速出现,例如:商业智能分析,数据应用报表,用户行为分析、算法策略数据等。小红书大数据团队逐步引入了多种OLAP分析引擎来更好的满足需求。DorisDB采用了全面向量化的计算技术,是性能非常强悍的新一代MPP数据库。通过引入DorisDB,小红书构建了全新的统一数据服务平台,大大降低了数据链路开发复杂性,提升了高并发极速查询能力。
一、OLAP引擎在小红书的演进史
一阶段,在2017年之前,数据总量还不是特别大,这个阶段使用AWS的Redshift,此时数仓体系还没有完全建立,很多数据需求的实现都是用短平快、烟囱式开发的方式来满足。数据ETL、数仓模型到 后报表端展现,在Redshift中一站式完成。
但随着业务复杂度不断提升,以及数据量的快速增长,这种模式很快遇到了瓶颈。主要有以下问题:
·Redshift无法在不影响线上查询性能的前提下弹性扩展,一旦涉及到扩容,就会涉及到数据重分布,从而影响集群的性能以及可用性。
·ETL任务严重影响集群可用性。在Redshift中同时进行ETL任务的时候,会大量抢占资源,从而影响数据分析的效率,导致查询超时甚至因为集群负载过大后整个集群崩溃不可用。
·没有良好的存算分离,数据存储容量存在瓶颈,无法满足随业务而快速增长的数据量存储需求。
二阶段,随着数据仓库在Hadoop/Hive体系上搭建和完善,ETL任务全部转移至Hadoop集群,这个阶段使用Presto完成OLAP分析。Presto天然和Hive共享元数据信息,且共同使用物理数据存储,即插即用。大量的对数仓表的灵活查询使用Presto完成。
三阶段,业务实时性增强,对查询性能的要求不断升高,同时许多数据应用产生。这个阶段引入了ClickHouse,用来建设性能更强悍,响应时间更短的数据分析平台以满足实时性要求。
四阶段,小红书大数据团队进行了实时数仓的整体设计和搭建,同时为统一对各业务团队提供数据接口而构建了数据服务平台,外接了多个内部或者To B服务的应用系统。既需要做低延时的复杂查询,同时对并发量也有很高的要求。这个阶段我们又根据场景引入了DorisDB,以满足以上各类需求。
二、小红书数据分析体系架构
1、小红书OLAP体系现状
小红书的整个数据分析体系,由数据采集、数据存储加工/数据共享和应用层组成。
1)数据采集
服务器日志或者App日志通过Flume收集埋点日志,数据同时分发到离线存储S3和实时存储kafka;线上业务数据库通过Canal实时采集MySQL binlog等信息。
2)数据存储加工
离线数据处理:利用Hive/Spark高可扩展的批处理能力承担所有的离线数仓的ETL和数据模型加工的工作。
实时数据处理:Flink完成实时侧数据的ETL(包括维度丰富,双流Join,实时汇总);离线表通过调度平台同步到ClickHouse/DorisDB,Flink实现了ClickHouse和DorisDB的sink connector,落地到DorisDB或ClickHouse。
3)数据共享
数据共享层的主要提供对外服务的底层数据存储,离线或者实时的数据写入相关的数据库组件中,面向多种服务,不同场景提供查询能力。
数据共享层主要有TiDB/Hbase/ClickHouse/DorisDB。通过DorisDB和ClickHouse提供的高速OLAP查询能力,在应用侧承接了报表平台,提供即席分析的平台,对开发侧提供数据接口,以及实现多个数据产品(比如流量分析平台,用户标签平台)。
4)应用层
应用层主要为面向管理和运营人员的报表,具有并发、延迟、需求更新频繁等要求,面向数据分析师的即席查询,要求支持复杂sql处理、海量数据查询等能力。
2、各OLAP分析工具选型比较
#FormatImgID_1#
1)Clickhouse:
优点:
·很强的单表查询性能,适合基于大宽表的灵活即席查询。
·包含丰富的MergeTree Family,支持预聚合。
·非常适合大规模日志明细数据写入分析。
缺点:
·不支持真正的删除与更新。
·Join方式不是很友好。
·并发能力比较低。
·MergeTree合并不完全。
2)DorisDB:
优点:
·单表查询和多表查询性能都很强,可以同时较好支持宽表查询场景和复杂多表查询。
支持高并发查询。
·支持实时数据微批ETL处理。
·流式和批量数据写入都能都比较强。
·兼容MySQL协议和标准SQL。
缺点:
·周边生态比较不完善。
·部分SQL语法不支持。
3)TiDB/TiFlash:
优点:
·支持更新/删除。
·兼顾了OLTP的需求。
·支持Flink ExactlyOnce语意,支持幂等。
缺点:
·查询性能弱,无法较好支持OLAP查询场景。
·不支持实时预聚合。
·TiFlash暂时不支持所有的SQL写法以及函数。
三、DorisDB在广告数据中心的应用实践
1、业务场景概述
版权声明:本文为原创文章,版权归 头条123 所有,欢迎 本文,转载请保留出处!