世界正在信息化,数据越来越多,基于数据开发的产品也越来越多,越来越多!
一般,都包括如下典型流程:
1.数据获取
2.数据转换
3.数据应用
的工作,如果按上面的数据流程来看,主要包括三种类型的工作,不同的数据PM工作偏向不同(以下分类也不是严格划分的)。
一.数据获取、清洗
要做数据产品,首先要有数据,数据来源,大概有2种方式:别人给、自己找。
别人给,当然好,但是要么得掏钱,要么会有使用限制。别人给的数据,数据质量也可能会是问题,乱码、缺字段是常有的事。
自己找,会比较麻烦,自己的系统,可以加码、埋点,地图的产品,会需要定期更新地图。数据不受自己掌控的话,看看能不能通过爬虫抓取(爬虫帮你圆大数据的梦),有很多基于爬虫的数据分析产品,用户分析、舆情分析、物价分析、量化投资等。
在数据获取和清洗环节,数据PM需要:
1.会将业务需求进行解读。
最终转化成不同的数据需求,数据PM首先要确定这些数据如何获取,确定最终的方案。
2.特别注意数据质量和数据稳定性。
上游数据质量就差的话,下游的每个环节都要浪费很多时间来处理。数据质量可以靠校验、对比,数据稳定性可以靠监控。数据的上游,需要勇于怀疑数据的质量,这是最容易出问题的环节,在这里,各种抽样、枚举、对比、假设,各种SQL、ES、Hive查询,善于对数据做各种图表分析。要比用户更早的发现问题,比工程师更快的排查问题原因。
3.评估数据的成本和收益。
数据是有成本的,量越大,质量越高,成本越高。所以,要合理的设计数据获取的策略:
走接口、FTP、还是硬盘邮寄;
数据多久更新一次,是否去重,如何去重;
热数据怎么存,存多久,冷数据怎么存;
虽然说数据越全,数据质量越高越好,但是一分钱一分货,最终的数据获取和清洗方案,需要综合考虑成本、收益、开发难度、开发排期(似乎每个产品都这样,不止是数据产品@@)。
经常需要谈数据合作,找数据找破头;
经常需要看API文档,接口查字段;
经常需要和人撕,别人的东西总是容易出问题的。
二.数据转换、数据服务
基础数据已经有了,开始要大干一场了,数据转换的环节,高端的说法,是ETL,我简单的理解为:拿到基础数据后,会根据不同的业务需求再做数据清洗,然后将数据导入各个数据转换或计算模型,并对更下游的应用提供数据服务。
这里的模型,不一定是用户画像、推荐这些,也可以是基础的筛选、排序、匹配、简单的逻辑计算。
为了让应用层拿到更高质量的数据,减少应用层的计算,这一层做有很多很多的小的计算模块,也经常做服务分层,分为基础数据服务层(业务弱相关层)、业务强相关层。
数据转换层,可以对外提供商用的计算、存储服务,还可以直接数据变现,比如ID匹配,或者直接卖数据。
在数据转换环节,数据PM特别需要和架构师深入沟通(或者工程师),数据PM的职责包括:
1.需要了解很多数据存储、计算的知识
MySQL、Hadoop、HBase、Spark、Redis、Kafka…很多很多,不需要都深入了解,但至少了解他们的功能、特点、差别,然后能更好的和工程师沟通,更好的参与方案设计。
2.全局设计能力
PM更了解业务,工程师更了解技术,两者协作,完成数据处理流程的设计或优化。但是,大公司,可能分了很多很多层,基础服务层,可能不需要PM,PM提需求就行。这部分比较虚,没什么经验的时候也没法做,做久了、思考深了,慢慢就会了(其实,这一层,和应用层的关联很大)。
3.成本收益评估、数据质量、服务稳定性
数据转换层,会消耗更多的计算资源,这里通常有着庞大的集群,所以,这里设计的好,能节省大量的资源,同样也要评估成本收益,要勇于拒绝应用层妙想天开的需求。
这一块的数据质量、服务稳定性,同样重要,对上要担心数据供应的问题,还需要对下游的数据应用负责,三明治的感觉,出问题的时候容易感觉鸭梨山大!
数据转换层,需要更强的逻辑分析能力,业务那边反应的问题,很可能是他们自己的问题,也可能是上游数据供应的问题,当然,更有可能是漫长的数据转换流程,有环节出了问题。这一层,除了要会各种SQL、ES、Hive查询,还需要熟练Excel或者SPSS,还需要熟练使用业务端的产品(故障复现很重要),还需要做好业务级指标的监控告警,最最重要的是,要提前想好各种情况的应急方案,是艰难的提供服务,还是提供有损服务,还是人工支持。
三.数据应用、数据展现
应用层,各个公司的数据应用层就丰富多彩千差万别了,有流量分析、广告分析、用户分析、销量分析、财务分析、传播分析、ERP…(额,本狗知道的有限)。但是,本狗认为用户画像、反作弊、广告投放策略、推荐、NLP等模型或策略类的产品,才算是数据PM,像BI类的产品,各种业务的指标维度,以及可视化展现(业务有多丰富,BI系统就有多么庞大),应该分类为是商业(数据分析)产品,这类的PM工作和具体的业务严重绑定,而且经常有很多定制化功能要做。
本环节的数据PM,能力偏向如下:
1.数学功底及数据分析能力
懂算法、建模、调参,是必不可少的,贝叶斯、隐马、协同过滤…捡起矩阵论、数理统计的课本,掏出机器学习、人工智能的经典,亲手撸起R、python、java,准备一大叠白纸推公式…
但是大公司,会有专门的算法工程师,PM只要能理解就行。数据分析能力也是必须的,这里更需要去解读数据,特别是异常的数据。
2.深度理解业务
用户画像、反作弊、广告投放策略、推荐、NLP这些,是和业务紧密关联的,比如广告、打车两个领域,都有反作弊。这些应用离钱更近,一点点的指标的改进,都能带来很多钱。
数据产品和商业产品、用户产品,差别很大,每天都是和数据打交道,需要深入了解各种数据分析方法、数据的存储计算。数据PM也需深入理解业务,否则就变成数据分析师或者数据科学家了。
经常发出这样的感慨:数据质量怎么这么差啊!前面的人清洗了么?尼玛清洗了过后怎么还这么差…