信也科技 x StarRocks:打造统一销售数据平台
业务背景
原有架构及痛点
销售数据平台初期分四个子项目:
销售 APP 系统:实时消费业务库 Binlog 数据,通过 Flink 实时消费清洗,计算不同维度下的销售订单和业绩等指标,按时、按天、按月等时间维度进行实时计算,数据落到 MySQL / MongoDB 。
销售智能地图系统:为了更好的分析销售行为和跟踪销售轨迹,关注销售的订单,业绩等指标,数据经过流转和清洗完之后,除了发一份数据到 MySQL 之外,最后还要推送一份数据到 Elasticsearch 中,引入 Elasticsearch 的原因一是用到地图 GEO 函数,二是灵活地支持多种维度查询。
销售实时大盘:清洗完的数据(订单、业绩等)发送到消息中间件,然后落到 Redis、MySQL 等存储系统中供前端使用。
销售消息推送系统:数据(订单、业绩)经过清洗之后,会发一份数据到 ClickHouse 中,最后实时推送数据,以满足不同的场景。
为了快速响应业务需求,满足不同的业务场景,团队选择不同技术方案来快速满足业务需求,项目的初期很好的满足了业务需求,随着时间的推移,数据量和业务功能变的越来越复杂,同时业务口径变更和新需求的不断提出,项目的维护成本和痛点就越来越明显:
同一份数据存储多份,浪费存储资源。
新需求或需求变更所涉及的团队和数据存储,数据服务比较多,沟通成本和研发成本相应增加。
多层级组织架构下进行计算和统计分析业绩、订单、标的等指标,这些指标在不断变化的维度和不同的计算口径下给系统带来很大的挑战,很难快速响应业务需求。
多种存储引擎和多套数据服务带来巨大的运维成本和整体系统的不稳定性因素和隐患也相应增加。
OLAP 引擎选择
根据目前的业务痛点和业务本身对数据多维分析查询的要求,以及能适应公司未来在线实时查询需要,我们选择一款 OLAP 引擎要有几点要求:低延迟的毫秒级响应,数据秒级写入。
运维简单,易用性强。
复杂的场景查询。
明细数据查询。
多表关联查询性能好。
支持高并发。
对地图函数有支持。
要有物化视图的能力。
优势:
支持标准 SQL ,兼容 MySQL 协议以及分布式 Join。 水平扩展,不依赖外部组件,方便缩扩容。 支持多种聚合算子,物化视图。 MPP 架构,分片分桶的复合存储模型 。 支持高并发查询,QPS 可达千、万量级。 支持宽表和多表 Join 查询,数据查询秒级/毫秒级。
支持地图 GEO 函数。
运维简单,易用性强。
复杂的场景查询。
缺乏单列数据更新能力。
周边生态还不是很完善。
优势:
数据压缩,多核并行处理,单表性能极佳。
向量引擎,稀疏索引,适合在线查询。
支持数据复制和数据完整性。
支持地图 GEO 函数。
没有完整的事务支持以及多表 Join 不友好。
对修改或删除数据的能力支持不够,MergeTree 合并不完全。
并发能力不高。
依赖 Zookeeper ,在集群扩大时 ZK 会成为性能瓶颈。
优势:
数据压缩,多核并行处理,单表性能极佳。 支持标准 SQL ,兼容 MySQL 协议以及分布式 Join。 TiFlash 预处理加速 OLAP 分析。 TiDB 计算、存储分离,高可用模式,运维依赖于自动化运维工具,易操作。 支持高并发查询。
劣势:
强依赖 SSD ,硬件成本比较高。
OLAP 场景下查询性能相对弱一些。 不支持实时预聚合。 不支持地图 GEO 函数。
销售平台现有架构
引入StarRocks后,架构如下图所示:销售应用
基于目前销售数据我们在上层构建了各种应用,比如 APP 后端系统、实时大盘、哨兵系统、智能地图、运营推荐系统等,来满足业务方的需求。
可以看到,引入 StarRocks之后,新架构具有如下的优点:
统一数据存储计算引擎,有助于打破数据壁垒,实现数据价值最大化。
统一数据管理,降低管理复杂度,提升数据安全性。
统一数据服务计算,复用已有接口,研发效率最大化。
灵活多变的维度组合查询,快速响应业务需求。
StarRocks 运维
基于 Prometheus + Grafana 进行监控
基于日志的审计监控
SQL 慢查询,响应时间长,不规范的 SQL 会给整个平台带来不稳定的因素,另外还有些大批数据导入可能会带来短时间的 CPU 、IO 等压力,这些操作我们都需要监控到,避免带来不必要的麻烦,目前我们是通过 FileBeat 去采集 FE 上审计日志信息,然后插入 ClickHouse ,然后在 Grafana 上展示出来,对这些 SQL 进行分析和监控,以便可以更好的进行优化。
未来规划
StarRocks 作为新一代极速全场景 MPP 数据库,引入了 StarRocks 之后,实现了统一存储,统一服务,并且在多种场景下表现出色,帮我们实现了产出价值最大化。未来我们对 StarRocks 也进行了一定的规划:
根据业务场景不同,对响应时间要求不同,搭建多套 StarRocks 集群,进行物理资源隔离。
将更多的在线实时任意多维度分析业务迁移到 StarRocks ,打造统一的实时数仓平台。
数仓体系升级加速, 提升用户极速体验,探索使用StarRocks打造实时数仓和离线数仓融合和一体化建设。
打通数据接入平台和数据开发平台,完善运维监控体系,保证大数据基础服务的稳定性。
如希望了解更多详情请关注我们!
联系电话:010-53322390
商务合作:bd@starrocks.com