小红书 x DorisDB:实现数据服务平台统一化,简化数据链路,提升高并发极速查询能力
- Redshift无法在不影响线上查询性能的前提下弹性扩展,一旦涉及到扩容,就会涉及到数据重分布,从而影响集群的性能以及可用性。
- ETL任务严重影响集群可用性。在Redshift中同时进行ETL任务的时候,会大量抢占资源,从而影响数据分析的效率,导致查询超时甚至因为集群负载过大后整个集群崩溃不可用。
- 没有良好的存算分离,数据存储容量存在瓶颈,无法满足随业务而快速增长的数据量存储需求。
小红书数据分析体系架构
- 很强的单表查询性能,适合基于大宽表的灵活即席查询。
- 包含丰富的MergeTree Family,支持预聚合。
- 非常适合大规模日志明细数据写入分析。
- 不支持真正的删除与更新。
- Join方式不是很友好。
- 并发能力比较低。
- MergeTree合并不完全。
单表查询和多表查询性能都很强,可以同时较好支持宽表查询场景和复杂多表查询。 支持高并发查询。 支持实时数据微批ETL处理。 流式和批量数据写入都能都比较强。 兼容MySQL协议和标准SQL。
周边生态比较不完善。 部分SQL语法不支持。
支持更新/删除。 兼顾了OLTP的需求。 支持Flink ExactlyOnce语意,支持幂等。
查询性能弱,无法较好支持OLAP查询场景。 不支持实时预聚合。 TiFlash暂时不支持所有的SQL写法以及函数。
DorisDB在广告数据中心的应用实践
业务场景概述
原有解决方案
- 前端用户广告展示信息事件流和后端算法推荐流双流关联并去重,完善广告信息。
- 接入反作弊,清除作弊事件。
- 按不同业务场景需求汇总结果写入不同的数据库组件中。
- 数据逻辑没有很好做归拢合并,维护工作量大,新需求无法快速响应。
- Clickhouse的并发能力不足以及扩容复杂度在可见未来会成为整体广告系统瓶颈。
- 因为Flink层逻辑散落,由大量小的Flink任务构成,因此导致整个架构无法满足高可用要求,只要任何一个任务出现问题,都会影响线上业务。
基于DorisDB的解决方案
- 能支撑大吞吐量的数据写入要求。
- 可以支持多维度组合的灵活查询,TP99在100ms以下。
- 有实时汇总上卷的能力,提高查询性能,支持qps达到上万的要求。
- 通过Binlog实时同步MySQL的数据,并及时对数据进行封装。
- 比较好的支持多表关联。
- 结构清晰,Flink专注于数据的清洗,业务逻辑计算从Flink迁到DorisDB内实现,DorisDB就是数据业务逻辑的终点。
- 可以维护统一的数据口径,一份数据输入,一套广告统计口径输出。
- 在底层实现DorisDB主备双活,更好的支持高QPS场景。
- 广告曝光点击流写入聚合模型,按照业务所需要的维度,如广告主、广告类型、创意,广告单元,搜索词,地域,用户属性等设计聚合的所有维度,根据所需要的指标进行聚合。
- 广告侧后端有很多的线上MySQL,通过DorisDB更新模型接入MySQL进行实时的表更新。
- 在Hadoop离线数仓中还定期统计了一些数据报告同步到DorisDB中,这些数据使用了DorisDB的明细模型。
数据导入
实时的数据导入分为两种:
- 有ETL处理需求的,会利用Flink进行ETL逻辑转化,使用Flink DorisDB Connector写入DorisDB。
- 在实时数仓公共层的,配置Routine Load任务,将数据10s一个batch写入DorisDB表中。
- 在DorisDB提供的原生的Broker Load基础上在小红书数仓的调度平台上封装了导数模版,通过界面化配置的方式,将离线数仓的表导入到DorisDB中。
数据查询
在我们的查询场景中,广告主业务查询服务对查询并发度要求很高。DorisDB采用的是MPP查询架构,底层数据按照Range和Hash两级分片,非常适合广告主业务的查询场景。
内部做的线上查询压测结果,每个FE能到2000左右的QPS,整个集群能提供上万的QPS,TP99的查询在100毫秒以下。
系统运维
广告数据中心是非常核心的一个线上服务,因此对高可用及灵活扩容能力有非常高的要求。DorisDB支持fe/be多副本,没有单节点问题,当有节点故障的时候也可以保证整个集群的高可用。另外,DorisDB在大数据规模下可以进行在线弹性扩展,在扩容时无需下线,不会影响到在线业务,这个能力也是我们非常需要的。
总结
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。