上周我们在几个社群做了一个问卷,“DBA需要具备开发能力吗”,这里附上结果:
选项 | 票数 | 占比 |
---|---|---|
不需要 | 1 | 2.5 % |
需要会用Python,但不需要特别强的开发能力 | 12 | 30.0 % |
需要特别强的Python开发能力 | 3 | 7.5 % |
需要会用Go,但不需要特别强的开发能力 | 2 | 5.0 % |
需要特别强的Go开发能力 | 3 | 7.5 % |
需要会用Java,但不需要特别强的开发能力 | 2 | 5.0 % |
需要特别强的Java开发能力 | 1 | 2.5 % |
需要会用Shell,但不需要特别强的开发能力 | 9 | 22.5 % |
需要特别强的Shell开发能力 | 3 | 7.5 % |
需要C语言/C++开发能力,要能读懂MySQL/Redis等数据库的源码 | 4 | 10.0 % |
需要其他语言的开发能力(比如:PHP、Ruby) | 0 | 0 % |
虽然参与投票的不多,但大体能反映一些情况:
我们再来看一下某招聘网站 DBA 的 JD:
(一)
(二)
从上面两个截图可以看出,都要求至少掌握一门脚本语言。
那么工作中,DBA 需要开发哪些东西呢?
这里根据笔者以往的工作经验和周围一些 DBA 大佬的分享,总结出 DBA 在工作中需要开发的内容:
Python 和 Go 怎么选?
从文章开始的投票结果中,Python 目前还是占主流;但从目前的一些情况看,比如 K8s、Docker、Orchestrator、Xenon、TiDB 等 Go 的开源项目兴起,也建议 DBA 掌握 Go 语言。