开篇-后端工程师的开发利器

Posted qingxinziran007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开篇-后端工程师的开发利器相关的知识,希望对你有一定的参考价值。

作为一个后端工程师,平时最主要的工作其实就是数据处理,也就是经常所说的增删改查。长时间做这些冗余的工作,再加上996的常态,时常会让人感到厌烦。那么后端工程师的最终归宿是什么呢?很多后端工程师都会感到迷茫,如果想要更进一步成为所谓的架构师,你会发现架构师所做的架构设计,其实也就是照搬互联网领域常用的一些架构模式,更有甚者就是那些ppt架构师,相信很多同学都有和我一样的体会,真正能够进行模式创新的往往是一些研究院的学者,所以要想成为架构师多读书是一个必要条件,但是真正落地的你会发现其实就是后端工程师。那么作为后端工程师,就只能进行增删改查吗?倘若能够运用一些工具替代工程师的增删改查工作,后端工程师不就得到了解放。

所以理想中的后端工程师应该是这样的,当有堆积的新需求新业务到来时,工程师使用组态工具进行数据处理,进行任务调度,生成接口。这些需求也就在极短的时间内完成了。剩余的工作就只需要交给前端工程师去对接接口。就可以将一个月的工作量在一天之内完成(这是我真实的工作经历)。这样的开发利器是值得每一个工程师拥有。所谓“授人以鱼不如授人以渔”,我乐于将我多年的经验分享给所有的工程师们,带着大家一步一步的去完成这个开发利器。这个利器就是kettle。

知识体系

整本小册的知识体系将按照以下的方式进行讲解,通过从基础的kettle组件学起,夯实基础之后,进而去完成数据集成平台的开发,最后进入进阶部分,手动开发kettle插件,以适应变化的业务。

  • kettle基础部分:主要讲解一些基础组件,通过讲解输入组件,也就是数据的来源,可以将各种各样格式的文件(txt,excel,csv,xml,json,js)进行输入,还可以查询数据库的表进行数据输入,olap输入,将各种途径的、各种样式的数据解析成标准的数据格式;
    输出组件则是将经过kettle处理完成后的数据,存于不同的存储介质。如,可将存储的数据存储到excel文件中,文本文件中,数据库了,elasticsearch中等;转换组件是一个数据处理组件,比如字符串的裁剪,数据映射,去重,增加序列,排序,扁平化,行转列。通过转换组件基本可以完成大部分的数据处理工作;查询组件可以认为是获取数据源的一种动态方式,比如从rest接口中获取数据,可通过http节点,rest节点来完成,也可以从webservice接口获取数据,还可以从数据库中获取数据,更厉害的是流查询。通过查询组件以及输入组件便可以处理从任何渠道获取的任何方式的数据。脚本组件则是一种补充,对转换组件功能的补充,脚本组件支持Java代码,javascript代码,规则引擎脚本,sql脚本,正则表达式等多种脚本。使得数据处理的功能更加强大。总之,学会kettle基础部分,便可以解决业务需求中绝大多数的数据处理问题。
  • 基于kettle的数据集成平台:这个部分是将kettle基础部分的内容搬到了线上,使其成为一个在生产环境中切实可用的的数据平台。主要分为服务池,作业池,资源池,资源库,执行策略模块。 服务池,是将kettle的转换功能作为服务接口,其实就是一个服务网关,通过rest、websocket、webservice方式对外提供服务,这个功能可以支持绝大多数的前后端对接功能。作业池,是用来完成任务调度功能的,同时也是流数据处理的一种快捷方式,比如可充当消息队列的客户端(生产者和消费者)。资源池,是通过本地的方式来保存kettle文件,也就是此文件是通过pdi开发后,上传到该平台。资源库,则是通过pdi的线上功能,直接将数据存到数据库中。执行策略,是作业池的一个辅助模块,为任务执行提供quartz配置。

  • kettle进阶:这是比较高级的一个部分,是在熟练kettle的基本知识后,并能熟练使用基于kettle的数据集成平台之后,在使用过程中你会发现,有些功能是不能实现的。比如想要通过平台对接一个websocket接口,目前kettle没有这样的组件,就需要通过编写插件的方式来完善kettle的功能和平台的功能。进阶部分主要讲解如何编写自定义插件,如何完成mqtt与websocket的结合。

读者收获

相信读者通过学习整本小册后,对kettle知识有了深入的了解,在以后的工作中,无论应对任何的业务需求,只要合理的使用kettle工具,基于kettle的数据集成平台,都能达到事半功倍的效果。当然,本人能力有限,如有什么错误,我会及时纠正,并希望和广大读者共同进步。

以上是关于开篇-后端工程师的开发利器的主要内容,如果未能解决你的问题,请参考以下文章

开篇-后端工程师的开发利器

开篇-后端工程师的开发利器

前端开发(开篇)

猎头职位|python 后端开发(高级)工程师(多名)

什么是后端开发与全栈工程师

简单的后端开发工程师岗位职责