当前位置: 首页 > 科技观察

可靠的数据开发指南

时间:2023-03-22 10:18:18 科技观察

数据开发实在是太大了有朋友找我说说数据开发的职业规划和实践指南,因为数据开发从业者的知识实在是太大了,今天正好遇到了这个机会有一个很好的聊天。先来看看InfoQ整理的图。技能树一般不会很大。如果你是大牛,无视我上面说的一切,你能搞定。但作为一名初级员工,我该从何做起呢?原下载地址。https://raw.githubusercontent.com/TeamStuQ/skill-map/master/data/designbyStuQ/png-BigData-by-StuQ.png数据开发有很多种。很多小伙伴会不会谈起数据挖掘。我不禁想到了机器学习算法。事实上,大多数数据职位不需要这样的高级知识。但是如果你掌握了更多的技能书内容,或许你就能对你的数据上下游有更强的掌控力,或许就能晋级到下一阶段。数据挖掘的技能树无论是横向还是纵向都很深,并不适合所有外行,因为深入学习真的很难,需要机器学习、深度学习、概率论、线性代数、智能优化方法等非常深层次的数学知识需要分布式一致性的各种算法和资源调度的各种理论。很多人觉得他们必须具备所有技能才能开始这份工作。两个词总结今天的文章,不一定。总而言之,每个位置都有自己的侧重点,每个位置各种技能的权重也不一样。从数据生成到使用,最基本的环节是。采集->清洗->处理->分析->决策。而在这个环节上,从前到后,需要的技能是不一样的。一般来说,后端门槛越高,复杂度越高。当然,我不是说前面不重要,每个环节都很重要,只是门槛高低而已。你可以在每个阶段都很棒。因此,数据开发的职位可以分为数据采集工程师->ETL工程师->数据开发工程师->数据算法工程师->数据分析师。从横向来看,还有数据集群运维工程师、大数据平台开发工程师、数据治理架构师、数据服务架构师、大数据系统架构师、大数据框架开发工程师等职位支撑前面的流程。方便快捷的开发实施,以及更好的维护。每个数据开发需要哪些技能?从职业发展的角度来说,总的来说就是三行,只是个人看法,大家可以看看吃下。主线1:为数据开发者提供支持的线路,姑且称之为服务支持线。数据集群运维工程师->大数据平台开发工程师->大数据系统架构师->大数据框架开发工程师主线2:为数据开发人员提供弹药,称他为数据仓库线。数据采集??工程师->ETL工程师->数据治理架构师->数据服务架构师主线3:为数据分析师提供弹药,称他为数据挖掘线。数据开发工程师->数据算法工程师->数据分析师而且往往,从主线1到主线3的过程中,越往后你会发现,数据太乱了,工具也太难用了。这时候可能会有一个跳跃帮助前面的人提升一些东西。因此,主线3的数据开发和数据算法人员经常会跳转到主线2,帮助数据仓库人员梳理数据层次和提供数据服务的方式。主线3和主线2的人发现工具平台太难用或者集群不稳定,甚至开发框架有点不适应,就会跳转到主线1协助优化平台和框架.稍微说说三条主线,以及各自技能点的区别。主线1:服务支撑线必选:Linux、Hadoop集群、Hive、Zookeeper、HBase、Ozzie、Flume可选:Impala、各种框架源语言:shell、Python建议路线:1.先学习基本的Hadoop集群维护技能,写一些shell脚本,并使用定时调度功能。2、学习使用平台工具进行监控维护,参与平台开发和工具开发。3、重构或完善现有系统架构和框架。主线2:数仓线必选:HiveQL、Spark、Hive、Flink、Kafka可选:Storm、分布式共识算法、JVM调优、MapReduce、BitTable语言:Scala、SQL、Java建议路线:1.学习Extractdatafromthe业务系统的关系数据库。2.学习使用HiveSQL清洗数据。3.学习使用Spark和Flink处理和输出数据。如果数据量过大,就要进行调优。4、学会管理数据,分层设计数据,了解数据分布,全方位监控数据质量。主干线3:数据挖掘线必修:可视化技术、SQL、统计学、概率论、智能优化、机器学习工具(Tensorflow、scikit-learn)可选:caffee、torch、OpenCV语言:Python、R建议路线:1、学习使用SQL获取所需数据并对特征进行预处理。2.使用R或Scikit-learn进行数据探索和挖掘。3、在业务层面分析数据,提取更多有用的东西。4、自己实现一些数据分析算法。谈谈数据开发的语言问题***谈谈数据从业者的语言问题。朋友总是问我,该不该学R,该不该学Scala,该不该学Python,该不该用Java。我的观点是每种语言只是它自己的工具。不要死守一种语言。每种语言都有自己的专业领域。在每个领域,你都尽量用它擅长的语言去应对。向上。(当然不是说其他??语言有一些分支可以处理一些)。Scala:Spark的实现语言是Scala,现在有些高手使用PySpark来实现一些数据处理的东西,为了兼容机器学习框架。Python:数据爬取和机器学习必备,其他语言基本都是旁支。不要认为Python运行很慢。其实那些框架都是用C++和C实现的,只是盖了个Python壳,做了很多优化,比自己写的C++快。R:有很多数据探索和数据可视化的场景是用R语言完成的。Java:Hadoop套件基本上是用Java实现的。熟悉Java可以让你更清楚自己占用的资源分布情况,瓶颈是cpu还是内存,是磁盘IO还是网络IO。建议入门的角度是从Sqoop、Hive、Spark、Hadoop、Python入手,了解最基本的数据处理过程,在后面的过程中有针对性地学习。1、使用Sqoop从关系型数据库导入Hive。这个过程可以由Ozzie安排。2.使用HiveSQL进行数据清洗3.使用Spark和SparkStreaming进行离线和在线数据处理。4.使用SparkMLLib或scikit-learn进行数据探索。【本文为专栏作家“大脚”原创稿件,转载请通过作者微信公众号“一个叫大脚的程序员”获得授权】点此查看本作者更多好文