从底层到应用,那些数据人的必备技能 整理

原文地址:https://mp.weixin.qq.com/s/PXaLRzlguzCM-lr7Hmu0Lw

大数据平台

  • 要解决的是实时、近实时和离线的大数据框架如何搭建,各数据流之间如何耦合和解耦,如何进行容灾、平台稳定、可用是需要重点考虑的。
  • 因此,在这个领域内工作,需要有强大的攻坚能力,并且还需要有快速定位和解决 bug 的能力,因为有很多工具都是开源的。
  • 如果想在这块做的很好,还需要有整个系统架构的设计能力、比较的强的抗压能力和解决问题的能力、资源收集的能力,可以打入开源社区,这样就可以随时 follow 最新的潮流和技术。

把数据存储下来,特别是很多用户行为方面的数据,对于业务的提升比较明显的,如果你能很好的刻画用户,那么对你的产品设计、市场营销、开发市场都是有帮助的。现阶段,很多公司都要做第一步:存储更多的数据。
用最廉价的成本存储数据同时能够达到容灾、扩展性高、高性能、跨域,从目前来看,分布式已经被证明是个很好的一个方式。
云端会是个很好的方向,不是每个公司都养得起这么多这么贵的大数据平台开发人员和运维人员 OPS,从事这个行业的我们要有很好的危机意识,及时贡献出自己的价值,积极主动的学习新技术、否则就可能被淘汰了。花点钱把数据托管给云服务提供商是对于创业公司或者一些传统的企业来说是个很好的思路。
这块工作最被吐槽的一点就是:Hive 速度好慢,SQL 查询好慢,集群怎么又挂掉了,hadoop版本升级后,怎么数据跑出来不对了等等。

数据仓库 -ETL

  • 这是个很重要的岗位,因为数据流程很重要,决定了数据从源头杂乱无章的状况,通过 ETL 之后变成了整齐的数据,这些整齐一致性的数据可以让你很方便地把各业务的统计结果计算出来,并且能够统一口径。
  • 据仓库人员应该要做好:
    a、数据字典的完整性,用的人都希望能够清晰的知道这个字段的逻辑是什么。
    b、核心流程的稳定性,不要让每天订单主表能够使用的时间很不稳定,有的时候很早,有的时候要中午才出来,如果不稳定就会导致使用数据的人对你很没有信心。
    c、仓库版本迭代不要过于频繁,要保持不同版本之间的兼容性。
    d、保持各业务逻辑的统一性,不要出现同样的业务逻辑,同一个组别的人统计出来的结果不同。
  • 这个岗位的技能要求是:不要成为仅仅会写 SQL 的人,要常常思考,如何进行架构设计是最合理的,你要考虑是否需要字段冗余、行存储还是列存储、字段如何扩展最有效,热数据和冷数据如何拆分等,所以需要有架构思维。技能上,除了 SQL 熟练之外,还需要知道如何写 Transform,MapReduce。也应该常常考虑自动化和工具化方面的事情,需要很好的工具或者模块的抽象能力,动手实现自动化的工具来提高整个组织效能。

数据应用的一个最关键的前提是:数据质量、数据质量、数据质量!!在每次阐述你的观点、分析结论或者用算法的时候,都需要先检查,源头数据正确性,否则任何结论都是伪命题。

数据可视化

  • 最好是能懂点前端,比如 js。数据可视化人员需要有很好的分析思维,有分析的能力,才能把可视化做好。
  • 要知道观点表达的素材顺序是:图片>表格>文字

数据分析师

  • 对数据分析师吐槽最多的是:你分析出来的不就是正常的业务逻辑吗,还需要你分析什么?或者是你分析的结论不对,跟我们的业务逻辑不符合。

如果你一直在写分析报告,给结论中,持续周而复始,没有直接在业务中体现成绩的时候,数据分析师们该醒醒了,你该想想这个是你要的岗位吗?

  • 对于数据分析师的定位:个人认为,成为优秀的数据分析师是非常难的,现在市面上也没有多少优秀的分析师。数据分析师的技能要求,除了会数据分析、提炼结论、洞察数据背后的原因之外,还需要了解业务,懂算法。
  • 优秀分析师的结论就是一个能解决问题的一揽子策略和应对措施,同时很多需求是分析师去主动发现并通过数据来挖掘出来的。
  • 对数据分析师的要求是:会写 sql 拉数据,精通业务、会数据洞察、精通算法,主动性强,要求还是很高的。

如果你一直只是忙于应付日常分析需求,热衷于写华丽的报告,那么你要记得,你很危险,因为会有一堆人在那里质疑你存在的价值,特别是小公司。因为数据人员的薪资是个不小的支出。
大部分不落地的分析都是伪分析,有一些探索性的可行性研究可以不考虑落地,但是其他的特定业务需求的分析都需要考虑落地,然后通过实践来反推你的作用,如此反复,才能慢慢的给你价值的肯定,同时提升你的分析技能,也只有这样才能证明你作为分析师、数据落地者的价值。

数据挖掘 / 算法

所以在一定合理的场景下和业务进行据理力争是必要,不要害怕让业务吐槽,更多的时候管理好他们的预期。
-对于这个岗位的技能要求来说,没有要求你一定要从零开始实现所有的算法,现在有很多现成的算法包进行调用。最基本的要求是,你要知道每个场景会用到哪个算法,比如分类场景,常用的分类算法就有 LR/RF/Xgboost/ET 等等。

  • 你还要知道每个算法的有效优化参数是什么、模型效果不好的时候怎么优化。还需要有算法的实现能力,语言方面可以用Scala/python/R/Java 等。我们常说:工具不重要,重要的是你玩工具,不是工具玩你。
  • 另外针对有监督式学习算法,算法工程师最好有很好的业务 sense,这样在 feature 设计的时候才能更有针对性,设计的 feature 才有可能有很好的先验性。

深度学习(NLP,CNN,语音识别)

  • 真正玩 DL 的人,是需要自己动手建模型,调参数,改 symbol 的,所以他们的编程能力是很强的。

总结

  • 核心就是:如何用数据创造价值,如果你没有用数据创造价值的能力,那么就只能等着被数据淹没,被数据拍死在职场上,早早到达职业的天花板。
  • 体现数据价值的层面上,越往数据应用层靠拢,对数据产生价值的要求就越高,从事这块领域的人要常常自省是否有好的商业 Sense,毕竟在工业界,没人关心你是否比传统的 baseline提高了一个百分点,他们关心的是你提高了一个百分点之后,对公司的价值是什么。
  • 而越往底层那块,倒也没有强制要求和业绩绑定在一起,更多的是从流程上进行约定,对于这块的价值体现,主要从技术层面上的创新为主,你如果解决了现存架构的问题,那么你就可以成为一个大牛,所以多学学编程吧,别太约束自己,故步自封。

你可能感兴趣的:(从底层到应用,那些数据人的必备技能 整理)