数据分析业务理解
《数据分析通识》一书的学习笔记以及一些思考和理解
由于身处数据部门,所以需要学习一些数据相关的知识。
大数据
互联网时代的到来产生了大量的数据,即大数据。这些数据有以下特点:
- 大体量,当今产生的数据变得越来越多,所以在存储这些数据的时候单台计算器已经很难承载,大多会使用分布式的存储方式来保存数据。
- 多维度,单单数据时没有价值的,需要给数据打标签、分维度。只有大量、多维度的数据才更具有分析价值。
- 高速度,既然数据量巨大所以处理数据的效率也变得很重要。
举个例子:某天大领导在讨论到公司某项目发展方向的时候,找到数据部门要一份历年项目的各种指标的统计报告。数据部门就需要在分布式数仓中去跑数据,很多数仓都是巨量的数据,可能跑一次数据就得半天到一天。另外,为了让报告更有参考价值,就需要统计出更多的关键维度和指标。最终数据部门花了一天时间产出了一份数据报告给上层。
嗯……例子有点牵强,但的确是真实案例。总之跑数据是一个很耗时的过程,但业务方要数据又总是很突然、很急。
数据处理
数据引擎的步骤:1. 数据清洗 2. 数据分析 3. 预处理 4. 数据建模 5. 结果评估
数据引擎的产出:1. API 接口 2. 可视化界面 3. 指令集
数据处理的环节
- 数据的获取与存储:一般通过日志、埋点、三方购买等方式获取数据,并存储到数据库中。存储的时候要保证数据存储标准的一致性。便于后期数据分析。
- 数据探索分析与可视化:数据可视化是认识数据的常用工具、有时候数据分析师也会用 EXCEL 来处理数据和表格形式的数据可视化。而数据的探索分析属于数据分析的专业领域了,在数据可视化的帮助下进行。
- 数据预处理:数据清洗、打标签、提升特征。尽量用更多的维度指标建立更加的数据模型。
- 分析建模:模型是一种实体与实体间的关系。
- 模型评估:通过产出来评估数据模型和分析结果的优劣。
数据分析的产出一般为:数据模型、数据分析报告。
数据服务对象
数据服务对象一般分为 C 端和 B 端用户,B 端用户的需求会比较定制化且对于探索性的数据分析并不信任,最后往往只有数据可视化大屏这种项目反而更好落地。C 端用户会产生大量的、复杂的、不可控的数据。数据分析师在分析这些数据的时候自由度更高(我理解是通过对业务的理解和数据分析的专业知识给出优化方案)。而 C 端数据分析师产出优劣的评定往往是通过一些指标达成情况来看的。
数据部门分工
书中提到的数据业务的分工
- 数据分析师
- 数据开发工程师
- 数据平台工程师
- 数据算法工程师
结合所在数据部门说说个人理解
我们部门的情况也差不多,我们部门有数据分析组、数据开发组、数据平台组、数据产品组。简单聊聊我的理解:
- 数据分析组:对接业务游戏部门、深入理解游戏业务、会用到一些数据分析工具、最终产出数据分析报告和数据系统页面需求(提供给目标部门进行数据查询)。
- 数据开发组:和数据分析配合,通过工具处理数据,最终产出需求方需要的数据内容。用的语言一般是 Java、Python。
- 数据平台组:光有数据自然是不够的,还需要构建一整套数据相关的工具、如数据查询、日志查询、调度系统、数据访问权限控制等等一系列支持。
- 数据产品组:主要是配合数据开发和数据平台开发实现数据可视化以及各种工具的前端实现。
整个流程上
- 业务部门提出数据需求,如提升游戏留存率、观察新推活动的用户付费率并提出提升付费率的方案。
- 数据分析组向数据开发提出数据需求
数据开发组进行数据处理得到目标数据,并产出 API 接口。
- 这里会用到数据平台组提供的各类工具、并会由数据平台组做一些跑数据的工作。
- 数据分析组向数据产品组提出可视化需求
数据产品组通过产品 PRD、前端开发产出数据可视化界面
- 可视化界面一般是 web 网页、也会做 Flutter 移动端页面支持。
- 数据分析组和数据开发组再根据可视化界面进行进一步的数据分析
最终产出
- 数据分析报表
- 数据分析方案
- 数据可视化网页
前端在数据部门中的定位和思考
最后,作为前端在数据处理流程中的定位,做一些思考:
首先,前端的重点工作在数据可视化和数据工具的开发。下面分开说说~
数据可视化
- 对于数据可视化,主要是 Chart、Table,所以需要找到靠谱的库,
- 找到了靠谱的第三方库,还要对这方面的组件有深入的了解,知道其原理。方便处理一些特殊可视化需求。对这类需求,无论是用复杂的配置方法实现,或者用改组件样式或者组合覆盖 DOM 等黑科技曲线救国、亦或者脱离第三方库自行实现都是个办法。
- 对于数据可视化项目,界面的美观的重要性没有特别高,但务必要保证数据呈现的清晰、准确。
- 数据可视化中另外一个经常用到的工具是数据的格式化,百分比、保留 2 位小数、千分位、汉字结尾的单位,各种各样的格式化方式。这方面可以统一写个工具函数来处理。不过尤其要注意四舍五入,这就涉及到数据的准确性了。
- 数据可视化项目的性能也很重要,首先是因为数据可视化数据量大的特点,尤其容易出现长列表渲染。并且后端查数据的速度也因此而变得很慢。长列表的问题一般就是虚拟列表和分页来解决,后端部分是用的缓存来提高查询速度。
- 数据项目长列表的问题需要尤其注意,对于 Chart 和 Table 的渲染优化一般不会忘记,但有时候可能只是一个不起眼指标的选择 select 的 option 就有成千上万条,直接让网页崩溃。
用户体验方面,主要还是要让用户感觉使用便捷、查数据快速、看数据方便、系统稳定。前端可以在使用便捷性上进行优化,尽量让用户少一些操作和等待。举一些例子:
- 设定条件查询完数据 A 在切换到查询数据 B 的页面时保留条件
- 创建条件组合功能让用户可以快速查询,避免每次进系统重复设定条件
- 有些组件操作后如果条件数据没变就避免查询,避免无效查询
- 界面交互要尽量简单明了,降低用户使用门槛
- 总之,多以业务方和数据分析师的角度去用一用自己的系统,从中找到交互优化的点。
数据工具
工具方面的要求就没那么高了,主要还是要做到便于数据相关的同事用起来方便。就比如我当时就把难用的 Mirror 编辑器换成了 VS Code 同款的编辑器,迎合了大家对于编辑器使用的习惯,大大提升了使用体验。
目前而言,前端大部分的精力还是做好数据可视化相关的工作,数据工具的内容很大一部分已交由数据平台的后端同事来做了。
最后
以上就是一些数据分析相关知识的学习,以及身处数据部门的我的一些思考和理解了。分享出来希望能对相同情况的朋友一些用处。
数据方面的新人,如有问题欢迎评论区讨论~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。