数据人的必备技能

图片封面

根据数据应用的不一样阶段,我将从数据底层到最后应用,来谈谈那些数据人的必备技能。html

图片1

一、大数据平台前端

目前很火,数据源头,各类炫酷新技术,搭建Hadoop、Hive、Spark、Kylin、Druid、Beam~,前提是你要懂Java,不少平台都是用Java开发的。python

不少企业都把数据采集下来了,对于传统的业务数据,用传统的数据是彻底够用的,但是对于用户行为和点击行为这些数据或者不少非结构化的数据,文本、图像和文本类的,因为数据量太大,不少公司都不知道怎么进行存储。面试

这里面要解决的是实时、近实时和离线的大数据框架如何搭建,各数据流之间如何耦合和解耦,如何进行容灾、平台稳定、可用是须要重点考虑的。算法

最近两三年中,这块人才仍是很稀缺的,由于大数据概念炒做的这么厉害,不少企业都被忽悠说,咱们也来开始进入大数据行业吧。进入的前提之一就是须要把数据存储下来,特别是不少用户行为方面的数据,对于业务的提高比较明显的,若是你能很好的刻画用户,那么对你的产品设计、市场营销、开发市场都是有帮助的。现阶段,不少公司都要作第一步:存储更多的数据。这也是这块人员流动性比较高的缘由,都被高薪挖走了。数据库

和传统的SQL不一样的是,针对大数据量的非结构式数据,咱们所想的就是:用最廉价的成本存储数据同时可以达到容灾、扩展性高、高性能、跨域,从目前来看,分布式已经被证实是个很好的一个方式。编程

图片2

另外,云端会是个很好的方向,不是每一个公司都养得起这么多这么贵的大数据平台开发人员和运维人员OPS,从事这个行业的咱们要有很好的危机意识,及时贡献出本身的价值,积极主动的学习新技术、不然就可能被淘汰了。跨域

此外,花点钱把数据托管给云服务提供商是对于创业公司或者一些传统的企业来讲是个很好的思路,这样可以最快速的肯定数据对你的价值是什么,而不用采购这么多的服务器、雇佣这么多的运维人员和网站开发人员。服务器

说了以上这些,主要是想给将来会从事这块的人或者想存储数据的公司一点方向。我本身不作这块,体会不深,你们看看就行。架构

这块工做最被吐槽的一点就是:Hive速度好慢,SQL查询好慢,集群怎么又挂掉了,hadoop版本升级后,怎么数据跑出来不对了等等。

所以,在这个领域内工做,须要有强大的攻坚能力,而且还须要有快速定位和解决bug的能力,由于有不少工具都是开源的。由于是开源的,因此大家懂得,各类坑爹,甚至出现没法向下兼容的状况,因此须要强大的Java开发能力。

若是想在这块作的很好,还须要有整个系统架构的设计能力、比较的强的抗压能力和解决问题的能力、资源收集的能力,能够打入开源社区,这样就能够随时follow最新的潮流和技术。

图片3

二、数据仓库-ETL

确实作仓库的人很辛苦,单单Oncall就会让人望而却步。有不少数据库工程师,晚上睡觉的时候常常被Oncall电话吵醒,由于数据流程出问题,须要第一时间去排查,是哪一个数据源出问题,而且要当即解决,不然整个数据流程都会受到影响。

若是数据流程受到了影响,你就可能会被大领导一言不合叫到办公室说:我要的数据怎么尚未准备好,个人业务报表今天怎么没有发出来。

经过上面这个情景,咱们能够知道:这是个很重要的岗位,由于数据流程很重要,决定了数据从源头杂乱无章的情况,经过ETL以后变成了整齐的数据,这些整齐一致性的数据可让你很方便地把各业务的统计结果计算出来,而且可以统一口径。要否则就会变成有几个部门,就有几种统计结果,到时候A部门说业务增加了5%,B部门说业务涨了10%,OMG,到底信谁。

至少在如下几点上,我以为数据仓库人员应该要作好:

  • 数据字典的完整性,用的人都但愿可以清晰的知道这个字段的逻辑是什么。字段要保持很好的一致性,不要一样一个字段在不一样表里有不一样的定义。
  • 核心流程的稳定性,不要让天天订单主表可以使用的时间很不稳定,有的时候很早,有的时候要中午才出来,若是不稳定就会致使使用数据的人对你很没有信心。
  • 仓库版本迭代不要过于频繁,要保持不一样版本之间的兼容性。不要作好了仓库1.0,很快就把原来的推倒重来,变成了2.0。在数据仓库中须要考虑到延续性,主表的变更不要太频繁,不然使用的人会很是痛苦,好不容易才用习惯了1.0的表结构,没办法这么快进行切换。简单地说,要能向下兼容。
  • 保持各业务逻辑的统一性,不要出现一样的业务逻辑,同一个组别的人统计出来的结果不一样。缘由在于共同的逻辑没有落地成通用的东西,因此致使每一个人写法不一样。这点其实须要特别注意。

针对以上,这个岗位的技能要求是:不要成为仅仅会写SQL的人,如今工具都很发达,若是你的技能很单一的话,那么可替代指数是很是高的,而且你自身也没有什么成就感。这里并非说会写SQL的人很low,只是说应该多学一些技能,不然会很危险。

仓库人员应该要经常思考,如何进行架构设计是最合理的,你要考虑是否须要字段冗余、行存储仍是列存储、字段如何扩展最有效,热数据和冷数据如何拆分等,因此须要有架构思惟。

技能上,除了SQL熟练以外,还须要知道如何写Transform,MapReduce,由于有不少业务逻辑用SQL实现起来很是复杂,可是若是你会其余脚本语言,那么就能给你提供便利,让你的效率提高不少。另外好的仓库人员须要写Java或者Scala,经过写UDTF或者UDAF来提高你的效率是颇有必要的。

数据仓库人员也应该经常考虑自动化和工具化方面的事情,须要很好的工具或者模块的抽象能力,动手实现自动化的工具来提升整个组织效能。针对常常碰到的数据倾斜问题,须要很快定位问题并进行优化。

说完了数据存储这块,接下来是数据应用的几个关键职位,在此以前,我想说数据应用的一个最关键的前提是:数据质量、数据质量、数据质量!!在每次阐述你的观点、分析结论或者用算法的时候,都须要先检查,源头数据正确性,不然任何结论都是伪命题。

图片4

三、数据可视化

这是个很炫的工做,最好是能懂点前端,好比js。数据可视化人员须要有很好的分析思惟,不能为了炫技而忽视对业务的帮助程度。由于我对这个岗位客串的很少,因此没有特别深刻的感悟,不过我以为这个岗位须要有分析的能力,才能把可视化作好。

另一方面来讲,作数据应用的人都应该懂点数据可视化,要知道观点表达的素材顺序是:图片>表格>文字,一个可以用图片来阐述的机会千万别用文字来描述,由于这样更易于让别人理解。要知道,给大领导讲解事情的时候,须要把大领导设想成是个“数据白痴”,这样才能把一件事情说的比较生动。

数据可视化也能够考虑自动化和工具化方面的事情,好比用tableau、FineBI之类的BI工具替代,二者都能支持大数据和数据分析。

图片5

四、数据分析师

如今对数据分析的需求是很大的,由于你们都想着说:数据有了,可是能作些什么呢?这就须要有数据分析师,对数据进行分析和挖掘,而后作数据应用。

对数据分析师吐槽最多的是:你分析出来的不就是正常的业务逻辑吗,还须要你分析什么?或者是你分析的结论不对,跟咱们的业务逻辑不符合。特别是:ABTest的结果和当初设定的预期不相符合的时候,分析师会经常被拉过去说:分析一下,为何个人AB实验结果不显著,里面确定有缘由的。

不少时候,宝宝的内心苦啊,你说这个转化率降低了,从数据上能够看出哪一个细分渠道降低了,至于为何客户不下单,咱们得问用户,不少时候,数据上也体现不出来为何,只能告诉你现状是什么。

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

对于数据分析师的定位:我的认为,成为优秀的数据分析师是很是难的,如今市面上也没有多少优秀的分析师。数据分析师的技能要求,除了会数据分析、提炼结论、洞察数据背后的缘由以外,还须要了解业务,懂算法。

只有这样,当面对一个业务问题时,数据分析师们才能够针对问题抽丝剥茧,层层递进去解决问题,再根据定位的问题进行策略的应对,好比是先作上策略进行测试仍是应用算法进行优化,用算法用在哪一个场景上,能不能用算法来解决问题。

图片6

一个优秀的数据分析师,是个精通业务和算法的全能数据科学家,不是那个只会遵从业务的需求而进行拉数据、作报表、只作分析的闲杂人等。咱们都说分析要给出结论,优秀分析师的结论就是一个能解决问题的一揽子策略和应对措施,同时不少需求是分析师去主动发现并经过数据来挖掘出来的。

大部分不落地的分析都是伪分析,有一些探索性的可行性研究能够不考虑落地,可是其余的特定业务需求的分析都须要考虑落地,而后经过实践来反推你的做用,如此反复,才能慢慢的给你价值的确定,同时提高你的分析技能,也只有这样才能证实你做为分析师、数据落地者的价值。

图片7

五、数据挖掘算法

这块的话,通过这三年的摸爬滚打,感触蛮多的。体会比较深的吐槽主要有如下几点:

  • 一个规则搞定了,还用什么算法。
  • 你的准确率怎么这么低?!
  • 你的准确率能够到99%吗?
  • 你的推荐有价值吗?你不推荐客人也会下那个产品的订单的。
  • 帮我作个大数据预测他想要什么?

不少时候,不一样的场景对准确率的要求是不一样的,因此在必定合理的场景下和业务进行力排众议是必要,不要惧怕让业务吐槽,更多的时候管理好他们的预期。

有些场景下,推荐的价值在于『长期复购率』,因此不要每次都盯着ABTest的转化率来讲事,让客人的费力度下降也是颇有前途和前景的。一个智能的产品会让客人用起来爱不释手,虽然在这一次的转化中没有明显的差异,可是观察长期复购率才能体现价值。特别是要区分:高频和低频产品。频次比较低的产品就特别难体现出短时间价值。

对于这个岗位的技能要求来讲,没有要求你必定要从零开始实现全部的算法,如今有不少现成的算法包进行调用。最基本的要求是,你要知道每一个场景会用到哪一个算法,好比分类场景,经常使用的分类算法就有LR/RF/Xgboost/ET等等,此外,你还要知道每一个算法的有效优化参数是什么、模型效果很差的时候怎么优化。还须要有算法的实现能力,语言方面能够用Scala/python/R/Java等。咱们常说:工具不重要,重要的是你玩工具,不是工具玩你。

另外针对有监督式学习算法,算法工程师最好有很好的业务sense,这样在feature设计的时候才能更有针对性,设计的feature才有可能有很好的先验性。

图片8

六、深度学习(NLP、CNN、语言识别)

这块我没具体商用过,只是动手实践过。我的感受商业化是重点吧,特别是你们都在观望说你的chatbot颇有用啊,但是siri作了这么久,最后反响也通常。

如今客服机器人又很火,你们又在一通吐槽说,这个上下文理解的太差了,机器人的语义识别作的怎么这么差。谁作谁知道,对于中文的语义识别,难度比国外的难多了,由于中文的一种否认说法有太多种变体,你不知道咱们会说哪一种。

另外,经常有人吐槽说,你这个CNN这么复杂,我线上须要知足100ms内返回,搞的这么复杂,实时调用怎么整,确定来不及了,最后只能考虑offline预测了。经常说这话的人,是不会本身写底层代码的,不少时候我以为:不是你没有解决问题的办法,而是你没有去思考怎么解决问题,心智决定了你的产出。

总体来讲,这块对我的的综合素质要求是很高的。若是你只是想简单利用现成的Model,提取中间层的特征,而后再套用其余的机器学习模型进行预测的话,倒也能很好的解决一些现实中的公司应用,好比yelp的图片分类。

不过,严格来讲,这个不算是作深度学习的人,由于真正玩DL的人,是须要本身动手建模型,调参数,改symbol的,因此他们的编程能力是很强的,这点上,我一直都高山仰止。特别是一些创业公司,对于这个岗位的编程能力要求很高。若是你面试创业公司后没有下文了那就表示:你很优秀,可是不必定适合咱们公司,由于咱们要找的编程能力很强的人。

我的认为,在这块上须要有比较强的算法改造和优化能力,尽可能的提升算法预测的速度,同时不断的提升算法的外延性提升精度,目前整个行业也都是朝着好的方向在发展。若是有不少人看到这块行业开出来的高工资,记得和招聘上的要求核对一下,本身哪块技能须要补充。这样你才能成为人中之凤。

图片9

总结

以上说了这么多,唠叨了这么多,其实核心就是:如何用数据创造价值,若是你没有用数据创造价值的能力,那么就只能等着被数据淹没,被数据拍死在职场上,早早到达职业的天花板。

体现数据价值的层面上,越往数据应用层靠拢,对数据产生价值的要求就越高,从事这块领域的人要经常自省是否有好的商业Sense,毕竟在工业界,没人关心你是否比传统的baseline提升了一个百分点,他们关心的是你提升了一个百分点以后,对公司的价值是什么。

而越往底层那块,倒也没有强制要求和业绩绑定在一块儿,更多的是从流程上进行约定,对于这块的价值体现,主要从技术层面上的创新为主,你若是解决了现存架构的问题,那么你就能够成为一个大牛,因此多学学编程吧,别太约束本身,故步自封。

本文转自:开源技术社区

阅读原文

文件格式转换

相关文章
相关标签/搜索