进入互联网数据分析岗位需要明白的一些事

我是宋骁,职场新人,在互联网程序化广告行业做数据分析。

数据分析的尴尬

经历了形形色色的面试之后,我进入一家互联网广告投放公司的做数据分析工作。在这个行业,数据分析是非常重要的一环。但数分并不要求高度技术型、研究型的人才。它所要求的知识是高度实践性的,这些知识在学校很难讲授。

数据分析处于一个尴尬的位置,存在信息不对称问题。一般认为数据分析的对口专业是统计学,但实际上统计课本知识在行业中很少用到。一般的统计学课本,即使是结合软件的,很少聚焦于数据分析与实际业务相结合的案例。互联网行业的数据分析几乎不会遇到“根据样本推断总体”的情况,因为你会遇到的大部分是“总体”数据。此外,统计学着重方法本身,而忽略了偏向开发的数据库知识、SQL优化、Shell脚本技巧等。在这一块,希望刚入职场的毕业生不要过于校园中所学的知识。而是在实际工作中动手去学。

推荐大家使用Kaggle竞赛练习数分代码与业务相结合的能力。Kaggle的竞赛数据来自于真实的生产环境。每一场竞赛都能帮你体验到前沿的业界应用。比方说程序化广告这块的可以看看CTR预估竞赛。此外,近年数据分析型的竞赛开始出现,逐渐改善了预测性竞赛只手遮天的情形。

数据分析的时效性

数据分析能在互联网公司扮演什么样的角色呢?我在学校使用R做过学术性质的数据分析。对于SQL和数据库并没有过多的了解,那时我认为所谓的数据分析不过是帮忙取数、保存成csv文件发给需要看数据的人。要知道学术性的数据分析和工业界的应用存在本质性的区别。一般而言,传统的统计性数据分析,你只能采集到一份数据,然后将数据进行清理,并最终喂给模型。你的最终结论往往来自一次分析。

工业界的数据则往往是动态更新的,更新的频率常常以小时甚至分钟计。这样我们可以实时监控最新的业务情况。这种时效性确保了数据分析的价值。回忆一下电影《夺冠》2016年里约奥运会中国女排迎战巴西队的桥段。实时的数据分析为郎平指导最后的战术决策做出了参考。在这种业务场景下,30秒的数据延迟可能直接导致冠军归属的不同。

工业界需要将分析的整个过程封装和产品化。也就是说,数据分析师要帮助非技术人员不使用代码进行数据分析。这时需要做的就不仅仅是图片和表格了。而是动态的交互应用————仪表盘。是的,数据分析师的重要工作是编写仪表盘程序。这也决定了在数据查询的准确性之外,SQL的执行效率同样重要。大部分的数据查询最好能在10秒之内出结果。仪表盘程序每次运行都能读入最新数据,这保证了数据监测的实时性。

在我所在的这种中型互联网公司中,每天需要处理海量数据。在缺乏特别高性能解决方案的情况下,直接从大表中查数据是非常慢的。此时对SQL的优化特别重要。对于无法优化的情况,需要编写shell脚本查询出一个中间表。然后剩下的任务都在中间表中查询。例如,我在工作中曾遇到表太大运行超过一分钟的情况。于是设定shell脚本每天运行一次,将每天最新的数据写入到一个中间数据库中去。这样查询经过聚合后的、并经过筛选的数据就会快得多。

在Python中,构建仪表盘的工具叫Streamlit;在R语言中,它叫Shiny App,但它们都无法连接大型数据库。因此,大公司可能有自己开发的仪表盘构建系统。我司基于SQL和Beetl进行仪表盘开发。这个系统允许我们通过MySQL和Doris在千万级别上的数据库中进行高性能查询。

当然,数据分析师还需要承担一部分的探索性分析工作。比如业务方面检测到最近的营业额下降,需要从数据中找原因等。这种工作没有固定的解法。对数据分析岗位来说,对业务的理解非常重要,因为数据分析师往往是沟通业务和技术方的桥梁。

总结

数据分析师的主要工作是编写仪表盘以及一部分的探索性数据分析。前者是为了保证数据分析的时效性,后者是为了和业务逻辑相结合找出问题背后的原因。

数据分析是一个注重实践大于理论的岗位。需要更强的动手能力而不是理论知识。刚毕业的小伙伴可能会因为崇拜技术而忽视业务逻辑,希望承担算法或建模这种高大上的工作(且不说算法工程师其实大部分时间也花在数据上)。实际上精通一两个核心技术是最适合的,而不是广泛涉猎各种编程语言等造成“技术过剩”。希望将要进入互联网企业做数分岗位的小伙伴们注意这一点。

posted @ 2020-10-25 10:54  illmatic  阅读(129)  评论(0编辑  收藏  举报