QCon 全球软件开发大会(北京站)门票 9 折倒计时 4 天,点击立减 ¥880 了解详情
写点什么

HDFS+Clickhouse+Spark:从 0 到 1 实现一款轻量级大数据分析系统

2020 年 7 月 25 日

HDFS+Clickhouse+Spark:从0到1实现一款轻量级大数据分析系统

导语 | 在产品精细化运营时代,经常会遇到产品增长问题:比如指标涨跌原因分析、版本迭代效果分析、运营活动效果分析等。这一类分析问题高频且具有较高时效性要求,然而在人力资源紧张情况,传统的数据分析模式难以满足。本文尝试从 0 到 1 实现一款轻量级大数据分析系统——MVP,以解决上述痛点问题。文章作者:数据熊(笔名),腾讯云大数据分析工程师。


一、背景及问题

在产品矩阵业务中,通过仪表盘可以快速发现增长中遇到的问题。然而,如何快速洞悉问题背后的原因,是一个高频且复杂的数据分析诉求。


如果数据分析师通过人工计算分析,往往会占用 0.5-1 天时间才能找到原因。因此,人工计算分析方式,占用人力大,且数据分析效率低。



另外,产品版本迭代与业务运营活动,也需要对新版本、新功能、新活动进行快速数据分析,已验证效果。因此,在产品矩阵业务精细化运营中,存在大量的数据分析诉求,且需要快速完成。


在传统的数据分析模式下,对于每个需求,一般需要经历 3-5 天才能解决问题。除此之外,该模式还需要大量数据分析师对接需求。因此,在数据分析师人力紧缺情况下,该模式无法满足产品增长的数据分析诉求。



二、解决办法

在传统数据分析模式失效情况下,急需开拓新的数据分析模式,以快速满足产品增长的数据分析诉求。


为此,笔者和项目小团队从 0 到 1 实现一款轻量级大数据分析系统——MVP,希望通过 MVP 数据分析,驱动产品从"Minimum Viable Product" to “Most Valuable Product”。


除此之外,通过 MVP 数据分析系统,一方面希望提升数据分析效率;另一方面希望节省数据分析人力。



MVP 数据分析系统分为四个模块,在产品业务-经营指标模块,基于 AARRR 模型对产品增长指标分析,分析产品增长北极星指标;在指标异常-根因预警模块,对增长指标异动进行监控,并提供根因线索;在分析工具-增长分析模块,对用户行为进行深入分析,洞悉用户行为;在 AB-Test 实验评估模块,对业务决策方案进行实验,评估业务决策的合理性。通过四个模块,实现数据分析驱动产品精细化运营。


三、技术实现

一款轻量级大数据分析系统,至少需要从数据建模、技术选型、页面交互三方面实现。数据建模如水流,贯穿整个数据分析系统;技术选型是基础设施,支撑整个系统高效运转;页面交互是面向用户,用数据说话,对业务增长进行数据赋能。


1. 数据建模

在开发 MVP 之前,由于历史原因,现有的产品矩阵中产品与产品之间,存在数据建设分散、数据开发重复、数据隔离等问题,一个用户会存在多条信息记录。


这种数据格局,不仅会导致计算、存储、人力资源的浪费,更严重的是会很大程度影响上层数据应用的效率。因此,旧的数据模式行不通,需要开拓新的数据模式。



MVP 数据分析系统底层数据建设,一方面基于“用户(User)+事件 ID(Event)+配置(Config)”思路,对产品数据信息进行高度抽象整合,收敛产品矩阵业务数据;另一方面,基于 Key-Value 模型,生成用户大宽表,一个 User_Id 仅有一条记录信息。



2. 技术选型

在日常产品数据可视化中,通常会想到使用 MySQL 进行页面交互式数据分析,但是 MySQL 数据库承载数据能力在百万级,适合对结果型数据进行分析,对于上亿级数据是无能为力。


在复杂的数据分析场景中,通常需要基于用户画像与用户行为,对用户进行 OLAP 多维自由交叉组合分析。因此,对于百万级以上的产品业务,使用 MySQL 是无法满足 OLAP 实时分析,需要尝试新的技术选型。


为了实现实时 OLAP 分析,对业界的大数据分析平台的技术方案我们进行了调研比较。业界存储引擎主要是 HDFS 与 HBASE,计算引擎使用比较多的是 Impala,Druid,Clickhouse,Spark。Druid 系统维护成本高,无 Join 能力,且语法应用相对复杂。


从计算速度角度,Clickhouse 比 Presto 快 2 倍+,比 Impala 快 3 倍+,比 SparkSql 快约 4 倍,计算性能比较如下。




实测数据,对 2.2 亿+条 1.79GB 记录数据,进行单表聚合 0.095s,分析速度 18.95GB/s。



和 Impala 相比,Clickhouse 可以通过 JDBC 直接导入,数据导入成本低,Clickhouse 系统维护成本相对低。另外,Clickhouse 语法简单,易用性很强,对页面开发友好,可以快速开发出可视化页面。


基于上面这些因素,我们采用 HDFS+Clickhouse+Spark 技术方案。在这里,使用 Spark 补齐 Clickhouse 无法进行大规模 Join 操作短板,比如处理大规模复杂的关联分析任务。


另外,Spark 可以无缝访问 HDFS 中 Hive 表数据,无需重新导数据,应用效率高。使用 HDFS 存储历史全量用户标签与用户行为数据(占比约 80%),使用 Clickhouse 存储近期用户标签与用户行为数据(占比 20%)。



3. 页面交互

MVP 页面交互形式,80%数据分析诉求是可以直接通过页面实时分析完成,剩下约 20%复杂分析任务,是通过提交任务式分析完成。


页面实时分析秒级返回分析结果,提交任务式分析需要 5-15 分钟返回结果。经营指标体系、事件模型分析、漏斗模型分析、留存模型分析等,是通过页面实时分析完成,用户人群画像洞察、用户兴趣偏好洞察是通过提交任务式分析完成。




4. 应用效果

按照传统数据分析模式,根据“提出需求->需求评审->写需求单->数据分析->输出结果”的规范流程,数据诉求需要经历 3-5 天才能解决问题,通过 MVP 系统可以快速完成数据分析诉求,大大缩短工期,对分析效率提升明显。目前 MVP 数据分析系统已经在内部使用,近期,使用 MVP 进行数据分析任务数达到 1500+,高峰突破两千次。



从“人工数据分析 -> 工具化数据分析”的转变,对数据分析效率提升明显,更有利于数据驱动产品精细化运营。


5. 总结

本文尝试介绍从 0 到 1 实现一款轻量级大数据分析系统——MVP。目前 MVP 数据分析系统已经在内部使用,对于提升数据分析效率明显,为数据驱动产品业务增长赋能。同时,节省了数据分析师的人力投入。后期,基于产品矩阵业务,在完善现有模块情况下,还将对各个增长工具进行进一步打磨,提升 MVP 使用体验。


MVP 乘风出海,结合先悉数据平台服务产业端

MVP 作为内部系统,目前为部门在移动数据分析中节约了大量的时间成本,并沉淀了丰富的互联网分析模板与工具。在部门服务行业客户过程中,我们发现 MVP 所代表的移动数据分析解决方案,是目前传统产业数字化转型同样需要的必备工具。


为此,后续我们利用轻量级数据平台—— 先悉 作为数据底座,解决了 MVP 对外部署的底层平台问题,开发了可单独私有化交付给行业客户使用的 MVP toB 版本,帮助行业客户通过实时用户行为分析、画像洞察为驱动,优化运营策略。



先悉数据平台是一款轻量级的大数据平台产品, 有部署性价比高、运维便利、可私有化等特点,能够以“小而美”的方式满足中小规模项目的大数据应用落地 。在具体项目实践中,先悉数据平台+MVP 形成了一套优势互补的组合,目前已经开始为行业客户提供“开箱即用”的移动分析服务。


先悉功能简介:


  • 先悉具备高性能、批流一体的大数据组件,无需自行部署各类繁杂的开源组件,快速实现私有化数据平台的部署;

  • 先悉提供可视化任务流,作为数据开发平台,结合 Spark SQL 及我们提供的 SPL,在图形化界面快速开发一款数据应用;

  • 先悉自带强大可视化图表能力,可快速建立一个可视化站点,向同事、客户及领导展示您的数据指标。


先悉数据平台咨询/商务合作:Xdata_Suite@tencent.com


参考文章


[1] https://zhuanlan.zhihu.com/p/54907288


[2] https://clickhouse.tech/docs/en/sql-reference/statements/create/


本文转载自公众号云加社区(ID:QcloudCommunity)。


原文链接


https://mp.weixin.qq.com/s/3kk9oGJaoVrcWUONkYk38Q


2020 年 7 月 25 日 14:043113

评论 1 条评论

发布
用户头像
如果是免费的该多好啊
2020 年 07 月 29 日 20:27
回复
没有更多了
发现更多内容

链表实现插入排序、机器学习Top 10 算法、图数据库实战Neptune、John 易筋 ARTS 打卡 Week 24

John(易筋)

学习 ARTS 打卡计划 链表实现插入排序 图数据库实战 Neptune

架构师训练营第六周命题作业

一马行千里

极客大学架构师训练营 命题作业

技术选型(2)课后作业

ABS

第六周总结

_

极客大学架构师训练营 第六周总结

第2周作业

Steven

极客大学架构师训练营

第 5 周 这东西也有标准化答案???

Pyr0man1ac

架构师训练营 week2 课后练习

花果山

极客大学架构师训练营

架构第六周作业

Geek_Gu

极客大学架构师训练营

第二周

宇文青

第六周 技术选型 学习总结

应鹏

学习 极客大学架构师训练营

极客时间 - 架构师一期 - 第六周作业

_

极客大学架构师训练营 第六周作业

第二周作业总结

hunk

极客大学架构师训练营

week6

张兵

极客大学架构师训练营

1.请简述 CAP 原理。

张荣召

MULE 无法接收TCP报文问题分析

东风微鸣

APM

架构师训练营 - 第六周 - 作业一

行者

架构师训练营 - 第六周作业

一个节点

极客大学架构师训练营

Week2作业

幸福小子

week2学习总结

幸福小子

架构师训练营第二周学习总结

张小胖

极客大学架构师训练营

框架设计原则

笨笨程序猿

架构设计 极客大学架构师训练营 接口隔离

第六周作业

架构师训练营week06

FG佳

架构师一期

架构师系列之3 接口分离原则

桃花原记

第六周课后总结

天天向上

极客大学架构师训练营

架构师训练营第 2 期 第二周总结

月下独酌

依赖倒置原则、接口隔离原则优化类的设计

CJian

极客大学架构师训练营

【架构师训练营第 1 期 06 周】 学习总结

Bear

极客大学架构师训练营

第六周 技术选型 作业一

应鹏

极客大学架构师训练营

第 5 周 作业

Pyr0man1ac

第 6 周 作业

Pyr0man1ac

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

HDFS+Clickhouse+Spark:从0到1实现一款轻量级大数据分析系统-InfoQ