加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 大数据 > 正文

从底层到实践,那些数据人的必备技能

发布时间:2021-06-09 13:23:10 所属栏目:大数据 来源:互联网
导读:1、大数据平台 目前很火,数据源头,各种炫酷新技术,搭建Hadoop、Hive、Spark、Kylin、Druid、Beam~,前提是你要懂Java,很多平台都是用Java开发的。 目前很多

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

 

目前很多企业都把数据采集下来了,对于传统的业务数据,用传统的数据是完全够用的,可是对于用户行为和点击行为这些数据或者很多非结构化的数据,文本、图像和文本类的,由于数据量太大,很多公司都不知道怎么进行存储。

 

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

 

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

 

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

 

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

 

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

 

说了以上这些,主要是想给未来会从事这块的人或者想存储数据的公司一点方向。我自己不做这块,体会不深,大家看看就行。

 

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

 

因此,在这个领域内工作,需要有强大的攻坚能力,并且还需要有快速定位和解决bug的能力,因为有很多工具都是开源的。因为是开源的,所以你们懂得,各种坑爹,甚至出现无法向下兼容的情况,所以需要强大的Java开发能力。

 

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

 

2、数据仓库-ETL

 

确实做仓库的人很辛苦,单单Oncall就会让人望而却步。有很多数据库工程师,晚上睡觉的时候经常被Oncall电话吵醒,因为数据流程出问题,需要第一时间去排查,是哪个数据源出问题,并且要立即解决,否则整个数据流程都会受到影响。

 

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

 

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

 

至少在以下几点上,我觉得数据仓库人员应该要做好:

 

a、数据字典的完整性,用的人都希望能够清晰的知道这个字段的逻辑是什么。字段要保持很好的一致性,不要同样一个字段在不同表里有不同的定义。

 

b、核心流程的稳定性,不要让每天订单主表能够使用的时间很不稳定,有的时候很早,有的时候要中午才出来,如果不稳定就会导致使用数据的人对你很没有信心。

 

c、仓库版本迭代不要过于频繁,要保持不同版本之间的兼容性。不要做好了仓库1.0,很快就把原来的推倒重来,变成了2.0。在数据仓库中需要考虑到延续性,主表的变动不要太频繁,否则使用的人会非常痛苦,好不容易才用习惯了1.0的表结构,没办法这么快进行切换。简单地说,要能向下兼容。

 

d、保持各业务逻辑的统一性,不要出现同样的业务逻辑,同一个组别的人统计出来的结果不同。原因在于共同的逻辑没有落地成通用的东西,所以导致每个人写法不同。这点其实需要特别注意。

 

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

 

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

 

技能上,除了SQL熟练之外,还需要知道如何写Transform,MapReduce,因为有很多业务逻辑用SQL实现起来非常复杂,但是如果你会其他脚本语言,那么就能给你提供便利,让你的效率提升很多。另外好的仓库人员需要写Java或者Scala,通过写UDTF或者UDAF来提升你的效率是很有必要的。

 

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

 

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

从底层到实践,那些数据人的必备技能

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读