phicomm怎么做网站,网站注册域名位置,14亿人口新冠死多少,临海网站制作满打满算#xff0c;工作接近三年的时间了#xff0c;入行大数据也三年了。从开始时惊艳于大数据处理的高效#xff0c;到现在时常迷茫未来数据的出路在哪#xff0c;恍恍惚惚跨过了互联网的高峰。今天突然觉得#xff0c;该总结下过去#xff0c;思考下未来。我尽可能少… 满打满算工作接近三年的时间了入行大数据也三年了。从开始时惊艳于大数据处理的高效到现在时常迷茫未来数据的出路在哪恍恍惚惚跨过了互联网的高峰。今天突然觉得该总结下过去思考下未来。我尽可能少谈些技术但是有的时候忍不住会写几段代码不过应该无伤大雅。 -- 引子 --
往前数五年不甚至三年谁能想到互联网会是这番景象。借助疫情时期居家办公的风口钉钉、腾讯会议、ROOM、企业微信等远程办公软件蓬勃发展。腾讯的股票飙到了700大家一度猜测腾讯会不会二度拆股蚂蚁正孕育了世上最大的IPO互联网造富的神话果不其然地在延续字节凭借抖音撬开了外邦的大门成为第一款风靡海外的现象级APP。互联网真一如既往、符合认知、延续传奇的疯狂的发展着。 可能暗藏的危机在繁华的那几年就隐隐可见在那几年陆续有几个文件下发包括但不限于防止未成年人沉迷网络游戏、反垄断因为众所周知的原因经济开始下行恍惚之间“降本增效”成为热词。
囿于经济增速变缓、增长乏力、创新不足等等原因互联网巨头们开始收拢战场一股裁员潮突然袭来离职贴、求职贴随处可见大龄互联网青年成为裁员名单上的常客人人自危作为互联网从业者作为数据从业者我们该如何提升自己我们该往哪个方向发展也成为了我时常思考的问题。
以下仅代表个人看法欢迎大家讨论更欢迎大家提出自己的看法。
-- 大数据的发展 --
说数据从业者其实我更多是说大数据这个行业毕竟我就在行业里。该从哪里谈起呢这倒是不难毕竟人人都知道谷歌的三架马车。
在2003年到2006年间谷歌先后发表了三篇论文《MapReduce: Simplified Data Processing on Large Clusters》(2004)、《Bigtable: A Distributed Storage System for Structured Data》(2006)和《The Google File System》(2003)这三篇论文介绍了谷歌在海量数据上关于存储和计算的探索工作。由此技术的发展被快进到大数据时代谷歌的这三篇论文被称之为大数据领域的三架马车。
可气的是谷歌虽然发表了论文介绍了自己工作的牛逼之处但是并没有开源自己的系统。这种感觉就像是我告诉你有我有一个贼拉好看、贼拉好玩、贼拉牛逼的玩具你让我给你玩玩我不给你让我给你看看想的美所谓乱世出英雄Apache Lucene项目下的搜索引擎子项目Nutch负责人Doug Cutting发现了MapReduce这篇文章并基于这篇文章实现如今广为人知的Hadoop。此时的Hadoop还远没有如今的规模仅仅只是实现了MapReduce和GFS。2008年Hadopp成为了Aapche基金会的顶级项目。
虽然Hadoop已经给了开发者很多惊喜但是对于数据分析从业者来说依然很痛苦。2007年Facebook构建一套基于Hadoop的数据仓库系统也就是大名鼎鼎的Hive。Hive最大的贡献在于他可以让开发者通过SQL编写MapReduce作业将开发的难度大大降低。虽然时至今日Hive已经逐渐被其他OLAP工具取代但是Hive的SQL 规范已经成为事实上的标准。 此时的国内呢2007-2008年间国内开始陆续引入Hadoop07年百度开始使用Hadoop进行离线数据开发淘宝开始基于Hadoop探索阿里巴巴的大数据之路。一场繁盛的大数据时代的序幕正被缓缓拉开。后续更多的大数据工具被提出Spark、Pig、Hbase、Zookeeper、Yarn、ClickHouse等等。2014年马老板提出人类正从IT时代走向DT时代。在此期间上面也陆续出台文件大数据愈发受重视BIG DATA成为热词资本蜂拥而至甚至高校也陆续建立起了大数据学院。
-- 最好的时代、最坏的时代 --
资本就是催化剂加速行业的发展。起初数据行业是实实在在的蓝海且不说Spark会写MapReduce的WordCount就可以被认为是大数据领域的人才了倘若你了解Spark那绝对是走在前沿最靓的仔。大数据的爆火让无数前后端同学涌向大数据赛道那是最好的时代。但是那也是最坏的时代。工具不齐全文档不到位开源还存在问题导致那个时代的大数据开发者需要直面很多系统级的优化。因此各家大厂基于开源工具进行了多轮魔改增加新特性烟囱林立。
随着开源社区的发展、企业数据平台的完善数据开发的难度被极大的降低了。起初想要入门大数据Java、Scala、Python、SQLDB设计、后台系统都需要有一定了解现在呢还有什么是我SQL Boy解决不了的数据问题
public class WordCount {public static class TokenizerMapper extends MapperObject, Text, Text, IntWritable {private IntWritable one new IntWritable(1);private Text word new Text();Overridepublic void map(Object key, Text value, Context context) throws IOException, InterruptedException {StringTokenizer itr new StringTokenizer(value.toString());while (itr.hasMoreTokens()) {word.set(itr.nextToken());context.write(word, one);}}}public static class IntSumReducer extends ReducerText, IntWritable, Text, IntWritable {private IntWritable result new IntWritable();Overridepublic void reduce(Text key, IterableIntWritable value, Context context)throws IOException, InterruptedException {int count 0;for (IntWritable val: value) {count val.get();}result.set(count);context.write(key, result);}}public static void main(String[] args) throws Exception {Configuration conf new Configuration();Job job Job.getInstance(conf, word count);job.setJarByClass(WordCount.class);job.setMapperClass(TokenizerMapper.class);job.setCombinerClass(IntSumReducer.class);job.setReducerClass(IntSumReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job, new Path(args[0])); //输入文件所在路径FileOutputFormat.setOutputPath(job, new Path(args[1])); //输出文件所在路径System.exit(job.waitForCompletion(true) ? 0 : 1);}
}
Java版本WordCount
object WordCount {def main(args: Array[String]): Unit {val conf new SparkConf().setMaster(local[*]).setAppName(WordCount) val sc new SparkContext(conf)val wordpair sc.textFile(data.txt) val results wordpair.flatMap(_.split( )).map((_,1)).reduceByKey(__)results.foreach(println) //打印}
}
Spark版本WordCount
select word, count(1)
from table_name
group by word
SQL版本WordCount
看看上面三个版本的WordCount代码是不是可以感受技术发展魅力我们仿佛步入了最好的时代人人都可以进入到大数据行业。SQL的技术门槛可是比其他语言要低很多甚至很多人认为光写SQL都不能算是程序员我们凭借如此简单的工具可以拿到大数据领域的薪资多好的事情但是真的是这样的吗
工具的完善将大数据开发的难度降低到一个似乎人人可以上手的程度以阿里、腾讯为代表的大厂提供了完善的数据平台工具数据治理、数据开发都可以通过SQL解决前辈们手撸Java的时代仿佛已经一去不复返了但是这也意味着大数据从业者的平均上限被拉低了。我们不需要像后台或者前端一样去了解复杂的系统设计也不需要同算法一样深入了解算法背后的数学原理写写SQL解决问题将我们困在了数据开发的舒适区了解业务就OK了。同时公司也不希望我们花费时间用Java来解决问题写SQL全都给我写SQL我们日常学习了解的系统设计、数据开发的底层知识仿佛成为了屠龙之技毫无用处。
不仅如此随着数据保护、隐私保护相关文件的提出离数据最近的我们也变得可能失去数据。失去数据还需要我们吗同时由于大数据职业的特殊性并不是所有的公司都需要大数据处理能力的。毕竟每日TB、PB的数据也不是每个公司都有的。这意味大数据的就业面天然是窄的。我们貌似已然进入了最坏的时代不仅仅是因为增长乏力带来的裁员危机更由于平台建设的完善导致数据开发的门槛和上限被拉低。
由此我们引入了今天要讨论的第一个话题大数据还是一个值得进入的行业吗
-- 大数据能入行吗 --
谈这个话题前先谈谈大家都好奇的大数据从业的方向。从目前我观察到的来看大数据行业大致可以分为下面几类 大数据分析 / BI使用大数据工具进行数据分析绝大部分都是SQL难度大一点的会使用Python和机器学习工具 数仓开发 / 离线开发绝大部份时候在写SQL开发离线数据搭建数据仓库 实时数据开发和离线开发类似只是将离线变为实时 数据平台开发搭建数据平台这回不是写SQL了无限接近于后台开发但是需要了解大数据原理 数据引擎开发对大数据引擎进行魔改 数据应用开发写代码和写SQL一半一半一般是开发业务系统的数据逻辑部份但是需要和后台耦合因此要写代码而不仅仅是SQL
可见除了引擎和平台开发可以有一定几率让我们远离SQL其他种类的工作基本上都是和SQL终身相伴的并且随着平台的完善写SQL的时间会慢慢增加。我们每天做的最多的事情就是开会对口径这个指标怎么算这个指标怎么存维度是什么量级是什么
- 从工作的难度上来看大数据是一个性价比很高的行业。我们不需要了解复杂的系统设计不需要深挖繁杂的设计模式拥有数据思维会写SQL就足以应付90%的工作了。
- 从工作的上限上来看大数据和其他后台或者前端并无区别只要你够牛逼你依然可以成为数据架构师、成为管理层。可是难受是让你成为架构师的一定不是SQL而是数据开发中往往不太在意的系统设计。而管理我只能说骚年你相信自己是气运之子吗普通人成为基干往往已是职业的巅峰了。如果你一直是开发那数据一定是不如其他的。在公司里数据往往是提供服务的他们不像后台和前端那样直面业务也不如算法往往是业务增长的关键数据远不如他们重要。
所以你问我数据能入行吗当然能没有一个行业是不能入门的但是如果回到三年前我会希望自己走后台开发的路子。
可能有人不理解我说两个自己的事。
1如前面的文章所言我最近换工作了。从深圳转战了杭州。我发现只要这个公司在当地有一个办事处极大概率会有后台、前端和算法但是数据有没有就很难说了。
2前阵子ChatGPT很火我想自己搭一个ChatGPT服务我突然发现自己对于这种知识很匮乏但是前端和后台的同学却很轻易的就上手搭建无奈我只能自己COPY了开源的代码。
-- 入局的我们该往何处 --
其实我也迷茫。一个比较模版化的答案大致上有三个方向可以走。一个是往底层钻研了解后台的知识往架构师的路子走第二则是在业务上死磕做一个业务上独一无二的仔最后则是往算法的康庄大道上卷啊卷。 不过从目前算法的卷度上来看数据转算法无异于粪坑里点灯-找屎。从公司的发展来说其实给我们的只有一条路技术和业务两手要抓两手要强。其他人都会成为公司向社会输出的具有多年经验的技术型人才。
在公司里大龄的同事往往会思考35岁后的自己该做什么。这篇文章也无法给你指出一条明路因为我自己也不清楚。不过各位在工作之余如果还有时间的话不妨想想自己除了互联网还适合什么也许我们无法一直在互联网但是互联网思维却可以一直在。 如果你觉得文章还不错欢迎关注我的公众号数据算法笔