0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一位大数据开发工程师的两年工作经验总结

工程师人生 来源:网络整理 作者:工程师吴畏 2018-07-02 16:41 次阅读

今年广州的六月,在经历了大雨的洗礼之后,一切都变得更加明朗起来,新的工作,新的人和事。懒惰让我变得更焦虑,焦虑促使我进步,程序员的焦虑大家应该都有共同的感觉,时代的步伐太快了,在这个环境下的软件开发一定会淘汰掉那些不懂得学习,懒惰的人。

希望跟大家共勉。

今天呢,博主主要回顾这两年来,在大数据行业公司从事大数据类的前端开发的工作。最近刚刚换了一份工作,把我的经验稍作总结分享给大家,有什么建议大家在评论区踊跃。 谢谢。

今天的主题,主要是从大数据开发的角度,到大数据治理的必要性,再到图形化建模的畅想,最后在数据质量的把关,然后到大数据可视化的应用,博主总结两年的见闻,和我学习的成果,也不知理解有无偏差吧,希望大家能给出建议。

大数据开发

大数据开发,有几个阶段:

1.数据采集【原始数据】

2.数据汇聚【经过清洗合并的可用数据】

3.数据转换和映射【经过分类,提取的专项主题数据】

4.数据应用 【提供api 智能系统 应用系统等】

数据采集

数据采集有线上和线下两种方式,线上一般通过爬虫、通过抓取,或者通过已有应用系统的采集,在这个阶段,我们可以做一个大数据采集平台,依托自动爬虫(使用python或者nodejs制作爬虫软件),ETL工具、或者自定义的抽取转换引擎,从文件中、数据库中、网页中专项爬取数据,如果这一步通过自动化系统来做的话,可以很方便的管理所有的原始数据,并且从数据的开始对数据进行标签采集,可以规范开发人员的工作。并且目标数据源可以更方便的管理。

数据采集的难点在于多数据源,例如mysql、postgresql、sqlserver 、 mongodb 、sqllite。还有本地文件、excel统计文档、甚至是doc文件。如何将他们规整的、有方案的整理进我们的大数据流程中也是必不可缺的一环。

数据汇聚

数据的汇聚是大数据流程最关键的一步,你可以在这里加上数据标准化,你也可以在这里做数据清洗,数据合并,还可以在这一步将数据存档,将确认可用的数据经过可监控的流程进行整理归类,这里产出的所有数据就是整个公司的数据资产了,到了一定的量就是一笔固定资产。

数据汇聚的难点在于如何标准化数据,例如表名标准化,表的标签分类,表的用途,数据的量,是否有数据增量?,数据是否可用? 需要在业务上下很大的功夫,必要时还要引入智能化处理,例如根据内容训练结果自动打标签,自动分配推荐表名、表字段名等。还有如何从原始数据中导入数据等。

数据转换和映射

经过数据汇聚的数据资产如何提供给具体的使用方使用?在这一步,主要就是考虑数据如何应用,如何将两个?三个?数据表转换成一张能够提供服务的数据。然后定期更新增量。

经过前面的那几步,在这一步难点并不太多了,如何转换数据与如何清洗数据、标准数据无二,将两个字段的值转换成一个字段,或者根据多个可用表统计出一张图表数据等等。

数据应用

数据的应用方式很多,有对外的、有对内的,如果拥有了前期的大量数据资产,通过restful API提供给用户?或者提供流式引擎 KAFKA 给应用消费? 或者直接组成专题数据,供自己的应用查询?这里对数据资产的要求比较高,所以前期的工作做好了,这里的自由度很高。

总结:大数据开发的难点

大数据开发的难点主要是监控,怎么样规划开发人员的工作?开发人员随随便便采集了一堆垃圾数据,并且直连数据库。 短期来看,这些问题比较小,可以矫正。 但是在资产的量不断增加的时候,这就是一颗定时炸弹,随时会引爆,然后引发一系列对数据资产的影响,例如数据混乱带来的就是数据资产的价值下降,客户信任度变低。

如何监控开发人员的开发流程?

答案只能是自动化平台,只有自动化平台能够做到让开发人员感到舒心的同时,接受新的事务,抛弃手动时代。

这就是前端开发工程师在大数据行业中所占有的优势点,如何制作交互良好的可视化操作界面?如何将现有的工作流程、工作需求变成一个个的可视化操作界面? 可不可以使用智能化取代一些无脑的操作?

从一定意义上来说,大数据开发中,我个人认为前端开发工程师占据着更重要的位置,仅次于大数据开发工程师。至于后台开发,系统开发是第三位的。好的交互至关重要,如何转换数据,如何抽取数据,一定程度上,都是有先人踩过的坑,例如kettle,再例如kafka,pipeline ,解决方案众多。关键是如何交互? 怎么样变现为可视化界面? 这是一个重要的课题。

现有的各位朋友的侧重点不同,认为前端的角色都是可有可无,我觉得是错误的,后台的确很重要,但是后台的解决方案多。 前端实际的地位更重要,但是基本无开源的解决方案,如果不够重视前端开发, 面临的问题就是交互很烂,界面烂,体验差,导致开发人员的排斥,而可视化这块的知识点众多,对开发人员的素质要求更高。

大数据治理

大数据治理应该贯穿整个大数据开发流程,它有扮演着重要的角色,浅略的介绍几点:

数据血缘

数据质量审查

全平台监控

数据血缘

从数据血缘说起,数据血缘应该是大数据治理的入口,通过一张表,能够清晰看见它的来龙去脉,字段的拆分,清洗过程,表的流转,数据的量的变化,都应该从数据血缘出发,我个人认为,大数据治理整个的目标就是这个数据血缘,从数据血缘能够有监控全局的能力。

数据血缘是依托于大数据开发过程的,它包围着整个大数据开发过程,每一步开发的历史,数据导入的历史,都应该有相应的记录,数据血缘在数据资产有一定规模时,基本必不可少。

数据质量审查

数据开发中,每一个模型(表)创建的结束,都应该有一个数据质量审查的过程,在体系大的环境中,还应该在关键步骤添加审批,例如在数据转换和映射这一步,涉及到客户的数据提供,应该建立一个完善的数据质量审查制度,帮助企业第一时间发现数据存在的问题,在数据发生问题时也能第一时间看到问题的所在,并从根源解决问题,而不是盲目的通过连接数据库一遍一遍的查询sql。

全平台监控

监控呢,其实包含了很多的点,例如应用监控,数据监控,预警系统,工单系统等,对我们接管的每个数据源、数据表都需要做到实时监控,一旦发生殆机,或者发生停电,能够第一时间电话或者短信通知到具体负责人,这里可以借鉴一些自动化运维平台的经验的,监控约等于运维,好的监控提供的数据资产的保护也是很重要的。

大数据可视化

大数据可视化不仅仅是图表的展现,大数据可视化不仅仅是图表的展现,大数据可视化不仅仅是图表的展现,重要的事说三遍,大数据可视化归类的数据开发中,有一部分属于应用类,有一部分属于开发类。

在开发中,大数据可视化扮演的是可视化操作的角色, 如何通过可视化的模式建立模型? 如何通过拖拉拽,或者立体操作来实现数据质量的可操作性? 画两个表格加几个按钮实现复杂的操作流程是不现实的。

在可视化应用中,更多的也有如何转换数据,如何展示数据,图表是其中的一部分,平时更多的工作还是对数据的分析,怎么样更直观的表达数据?这需要对数据有深刻的理解,对业务有深刻的理解,才能做出合适的可视化应用。

智能的可视化平台

可视化是可以被再可视化的,例如superset,通过操作sql实现图表,有一些产品甚至能做到根据数据的内容智能分类,推荐图表类型,实时的进行可视化开发,这样的功能才是可视化现有的发展方向,我们需要大量的可视化内容来对公司发生产出,例如服装行业,销售部门:进货出货,颜色搭配对用户的影响,季节对选择的影响 生产部门:布料价格走势? 产能和效率的数据统计? 等等,每一个部门都可以有一个数据大屏,可以通过平台任意规划自己的大屏,所有人每天能够关注到自己的领域动向,这才是大数据可视化应用的具体意义。

写在最后

洋洋洒洒写了很多,对我近两年的所见所闻所学所想进行了一些总结,有些童鞋会问,不是技术么?为什么没有代码? 博主要说,代码博主要学的,要写的,但是与工作无关,代码是我个人的技能,个人傍身,实现个人想法的重要技能。 但是,代码与业务的关系不大,在工作中,懂业务的人代码写的更好,因为他知道公司想要什么。如果你业务很差,那也没关系,你代码好就行了呀,根据别人的交代干活,也是很不错的。技术和业务是相辅相成的,稍后博主总结代码的精进。

写完了,博主的焦虑一丝未少,我的代码规范性不够,目前技术栈js、java、nodejs、python 。

主业js熟练度80%吧,正在研究阮一峰的es6(看的差不多)和vuejs的源码(有点搁浅),vuejs算是中等,css和布局方面可以说还可以,另外d3.js,go.js都是处于会用,能干活。 nodejs呢,express和koa无问题,看过一些express的源代码,还写过两个中间件。

java、python都处于能做项目的程度,目前也不想抽很多精力去深入它们,就想要保持在想用能用的地步吧。

未来的几年,博主努力工作,多学学人工智能、大数据开发的知识,未来这块应该还有一些热度的吧。

最后,和大家共勉,更希望大家能给一些规划建议,三人行,必有我师焉。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1571

    浏览量

    68552
  • 大数据
    +关注

    关注

    64

    文章

    8894

    浏览量

    137497
收藏 人收藏

    评论

    相关推荐

    片ads1299菊花链模式连接下,次读取到的数据是216+1+216这种形式吗,中间多了一位额外的数据,可舍弃?

    我想问下各位工程师,在片ads1299菊花链模式连接下,次读取到的数据是216+1+216这种形式吗,中间多了
    发表于 11-18 08:38

    射频电路工程师与模拟电路工程师 的技术要求

    、定制产品的技术评审。指导和帮助PCB设计人员解决开发中遇到的问题。 岗位要求: 一年以上射频行业工作经验或硕士以上学历; 2.熟悉混频器,锁相环和波导的工作原理和关键指标; 3.熟练
    发表于 10-11 17:32

    硬件工程师工作必备书籍推荐

    硬件工程师工作必备书籍推荐
    的头像 发表于 09-24 16:07 913次阅读
    硬件<b class='flag-5'>工程师</b>找<b class='flag-5'>工作</b>必备书籍推荐

    FPGA算法工程师、逻辑工程师、原型验证工程师有什么区别?

    逻辑工程师和 FPGA 原型验证工程师工作重点和职责上存在定的区别: FPGA 算法工程师: 主要关注算法的设计和优化,以在 FPGA
    发表于 09-23 18:26

    一位架构的自述:在尚未踏入的世界成为你自己

    这是我参与创作者计划的第1篇文章    我叫艾佳,工作经验14,编程经验30。 我来自智能平台部,负责标签平台、标签圈人、标签选品、EasyData、算法
    的头像 发表于 09-23 15:25 367次阅读
    <b class='flag-5'>一位</b>架构<b class='flag-5'>师</b>的自述:在尚未踏入的世界成为你自己

    需要无刷电控硬件工程师

    需要无刷电控硬件工程师,地点东莞松山湖。最好有5-10经验,大功率电摩电控。有意私聊。
    发表于 09-11 22:51

    寻求专业工程师帮助设计USB多口充电器

    嗨, 我正在开发款USB多口充电器,现寻求一位专业工程师或产品设计的帮助。希望能够与有经验
    发表于 08-05 12:03

    嵌入式软件工程师如何提升自己?

    ,可以为自己的职业生涯打下坚实的基础,并实现个人的职业目标。愿每一位嵌入式软件工程师都能在这个充满挑战和机遇的领域中取得成功!
    发表于 06-12 11:20

    名单公布!【书籍评测活动NO.33】做了50软件开发总结出60条经验教训,每条都太扎心!

    写这本书的目的是不让你们走我“踩坑”的老路、步我的后尘。 一位经验丰富的软件工程师在读了本书的教训清单后评论说 :“每点都太扎心了,有些还不止扎过我
    发表于 05-17 14:36

    嵌入式软件工程师和硬件工程师的区别?

    和通信协议,以及熟练掌握种或多种编程语言和开发工具。 主要负责的任务和领域 嵌入式软件工程师工作涉及到各种任务,主要包括: * 系统设计:包括确定系统功能、分配资源、优化性能等。
    发表于 05-16 11:00

    为何国外工程师偏爱使用for(;;)来实现MCU死循环?

    一位工程师发现,国外工程师在给demo在做死循环时用的是for(;;),而不是常用的while(1)。这仅仅是个人习惯的问题,还是有更深层次的含义?
    发表于 04-01 11:26 662次阅读
    为何国外<b class='flag-5'>工程师</b>偏爱使用for(;;)来实现MCU死循环?

    优秀电源工程师需要哪些必备技能?

    随着电源市场的不断扩张,开关电源行业飞速发展,企业对电源工程师的需求日益增加,对电源工程师的技能要求也日渐提高,相信没有一位电源工程师会错过让自己变得更优秀的机会。作为
    发表于 01-29 11:29