工作经验小结(2023.11.21)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 工作经验小结(2023.11.21)

01 前言

博主习惯每隔一段时间(或是特殊转折点)会整理一下工作的经验。距离上次经验总结2021.10.26)已经快两年了,我想这个时候也该整理一下既往工作的事项,看看这段时间积累的一些经验。

02 参与的工作

在这段时间,博主主要负责公司的数据中台的产品,主要有以下几个模块:

  • 数据汇聚:主要是离线采集(使用DataX)和实时采集(使用Flink);
  • 数据开发:主要是Dag作业(使用DolphinScheduler)和实时计算(使用Flink);
  • 数据治理:主要是编码标准这一块;
  • 管理中心:消息中心、审批中心、资源管理(引擎、工作主机);
  • 其它:监控告警以及运维等工作。

该产品应用到了比较多的项目(如:多个政府单位、高校等),对接的厂商有腾讯、华为。

为了方便回顾,根据自己的记忆整理了如下的脑图(脑图没有明确的以某种分类划分,仅做回忆):

03 细节回顾

接下来,针对如上脑图的分类,回顾一下其细节。

3.1 数据汇聚

数据汇聚主要做做了“离线”和“实时”的数据采集这两块。

3.1.1 离线采集

数据汇聚主要使用的框架是DataX,博主为了接手这一块,曾经深度去学习过DataX的源码,并开了一个专栏来记录:https://blog.csdn.net/qq_20042935/category_7492977.html

为了方便回顾,博主整理了如下的流程图:

这一块做得最多的事情是开发reader、writer和transformer,这些都是约定好的了,没啥好深入的,唯一值得有用处的地方便是可以参考其实现,以便快速对接不同的数据源。

3.1.2 实时采集

实时采集是博主初次接触到了Flink,一开始被上级负责人(后来被调去其它部门了)误导,使用了Java API的形式,限制了开发的进度,后来改为了Client模式,才得以使项目进度快速地进行。

只实现了Flink On yarn的模式,其技术实现图如下:

实时采集分为了普通模式和专家模式,普通模式其实就是为了使用户习惯离线采集的新增作业流程,专家模式就是为了使用户使用flink更加的灵活(即SQL模式)。我感觉“字段解析”这一块设计得比较人性化,可以拆分(截取)和解析(json解析)字段。

当然还有flinkconnector开发花了不少的时间(需要了解其原理),开发的connector有:

  • protobuf-connector:解决protobuf程序的问题、学习到了如何cook代码等技术,感觉这一块非常复杂,flink官网也拉了相关的feature分支,但是都没实现;
  • 自定义connector:主要是实现一个伪实时的数据源,里面开启一个定时器,“批”获取增量数据同步,同时需要考虑Checkpoint等细节问题;
  • tdsql-cdc-connector:改造mysql-cdc-connector,降级mysql版本,学习到了编码格式化插件spotless等;
  • 其它connector:如hudi、ck、kafka,直接打通了对flink的kerberos认证理解。

3.2 数据开发

数据开发我认为是接触的模块中,最为复杂的,主要负责DAG作业开发和实时作业开发(实时计算)这两块。

3.2.1 DAG作业

DAG作业主要使用的是DolphinScheduler这个框架,博主也深入过其源码,也写过相关的文章去记录:https://blog.csdn.net/qq_20042935/category_9220608.html

贴上以往整理过得一张分析Task的流程图以便后续回忆:

这也是使用DS的初体验。同时也深入过其apimasterworker的源码,并修复了很多源码的bug,进一步提高了代码的敏感度,虽然某些代码写的很烂,但依然要接受牛粪里找鲜花的触感,分析了代码其实就是分析人的思考过程

3.2.2 实时计算

实时计算是我在这个部门耗时最多的的一个模块,我主要担任了产品设计、项目管理、开发、测试、上线、运维的职责,相当累,但是也学到了很多的东西。

关于原型,我参考了几个实时计算的平台(vvp、青云、阿里云等),独自整整画了近几百张的图,对原型设计有兴趣的童鞋,可以参考我写过的专栏(https://blog.csdn.net/qq_20042935/category_9823775.html),这里截图留作纪念(这里已经做了模糊处理)

设计完不断地评审,最后还要负责项目的管理,划分项目范围并把控项目的进度时间,这里也较为巧妙的运用的项目管理的知识。有兴趣的可以参考写过相关的专栏:https://blog.csdn.net/qq_20042935/category_9446123.html

到了开发阶段才是最难的,需要参考不少优秀平台的源码,这里就不再详述了,用到了一些逆向以及远程调试的技术。这里贴下开发初期博主画的架构图仅做回忆(某些可能会有些不太对的地方,不过已经完善了):

当然还需要对接腾讯、华为的大数据平台,也做了不少的Flink客户端、认证客户端以及hadoop客户端相关的改造,这也算是一个很好的学习过程。

最后一道工序,测试、上线、运维都需要博主自己来。。。

图解K8S:

图解DevOps:

通过负责实时计算这一块,算是完整培养了自身的各方面能力了,之前学的理论也得以利用,其实还是挺感谢有这样的经历的。

3.3 数据治理

数据治理也是博主最初接触到的一个模块,当时对这块的知识还是挺模糊的,主要负责的是主数据编码规则管理这一块。博主使用了责任链模式去处理了,这里贴出一个曾经画的简单流程图:

当时也了解了一些数仓分层的概念:

这一块没有过多的参与,所以没什么技术上的认识,最多用到了不同的设计模式。

3.4 管理中心

3.4.1 审批中心

审批中心这一块没啥技术含量的,纯java对接流程中心,进行二次的去封装改造。最后各业务模块去接入。

3.4.2 消息中心

我也是主要负责消息中心这一块(除了原型),为了留作记忆,这里贴上自己画的技术流程图:

这一块很有趣,用到了不少的设计模式(如:工厂、策略等),同时也开发了对接第三方的sdk,以及spring-boot-starter的开发,也算是很纯的微服务架构代码开发吧。

3.4.3 资源管理

资源管理主要是在管理中心分配数据汇聚引擎资源、数据开发工作主机资源,给不同的项目。这一块改造有点复杂,设计改造的源码非常多。原型、开发都是有博主本人一个人做完。因为是疫情,当时也阳了,所以记忆想当时深刻。这里当时也没画图,所以此处就没得贴图用作回忆了。

3.5 其它

剩下的就是一些杂七杂八的事项了,主要是做项目上的一些支撑。

还有就是运维方面的事情,运维的事很多,所以开发也要去承担一些事项,这个过程中,我实际操作了一些云原生相关的组件(如kubernetes以及其二次封装产品kubesphere),并写过相关的专栏去记录:https://blog.csdn.net/qq_20042935/category_9220572.html

对于监控告警这一块,博主在实施的过程中,也写过相关的博客记录了,以便回顾:https://blog.csdn.net/qq_20042935/category_9220666.html

还有就是一些大数据相关的部署,如hadoop、cdh等。

04 文末

在这近两年的时间了,可以看到自己在“实时计算”这一块成长是非常快的,不仅同时担任了多个角色,也让理论得以实践。非常感谢之前带过我的大佬(虽然他已经去了别家公司高就了😁)。

博主现在应该也算是处于一个人生的 “转折点”,如何选择?何去何从?一切未知。希望自己可以清晰的认清自己,做出决策,希望未来会越来越好!

本文完!

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
6月前
|
监控 算法 C#
2023年 2月3月 工作经历
2023年 2月3月 工作经历
|
3月前
|
芯片
2023年的技术总结和工作反思
一、回顾2023年 回顾自己的2023年,还是发生了很多的变化。在大学毕业,就来到了芯翼参加工作,在这里也遇到了很多的前辈和小伙伴,收获工作的同时也收获了友情。但是,随着公司发展战略的变化,公司的人员架构也变额很多,对于我们刚毕业的大学生也变得越来越不友好,其实我也清楚这就是社会的发展现状。 其实,这不是我最终产生离职想法的结果,最终让我决定离职的是公司新来的人事主管十分的不理解我们,总是处处针对我们,这对于专心搞技术研发的我们来说,无疑是一个定时炸弹,让我们觉得自己的工作没有意义,甚至是没有成绩和结果,总是挂在嘴边的KPI考核也是越来越严格,总是觉得刚毕业的大学生的能力不行之类的,话说谁
43 1
|
7月前
|
Arthas 消息中间件 人工智能
为什么很多人工作3年,却只有1年经验?
同样是在软件开发行业工作 3 年,为什么有些人经验丰富,可以独当一面,而有些人却还和工作一年的人差不多?作者给出了自己的答案。
48298 16
|
6月前
|
程序员 测试技术 C#
2022年6月和7月的工作经历
2022年6月和7月的工作经历
|
6月前
|
缓存 算法 测试技术
2022年11月12月工作经历
2022年11月12月工作经历
|
6月前
|
算法 程序员 C#
2023年7月工作经历二
2023年7月工作经历二
|
6月前
|
安全 网络安全 C#
2022年8月的工作经历
2022年8月的工作经历
|
6月前
|
算法 C# C++
2023年4月到7月工作经历
2023年4月到7月工作经历
|
6月前
|
缓存 算法 虚拟化
2023年7月工作经历三
2023年7月工作经历三
|
9月前
|
机器学习/深度学习 安全 算法
对程序员来说,有价值的工作
对程序员来说,有价值的工作
226 1