资料库开发工程师


资料库开发工程师

文章插图
资料库开发工程师资料库开发工程师(Database Developer)是从事资料库管理系统(DBMS)和资料库套用软体设计研发的相关工作人员的统称,他属于软体研发工程师,但又有一部分运维工作的内容 。他主要从事软体研发的工作,但同时也要参与资料库生产环境的问题最佳化和解决 。
资料库开发工程师与传统的资料库管理员(简称DBA,也称为资料库工程师)是不同的职位 。传统的DBA主要属于运维职位,而资料库开发工程师则属于软体研发职位 。但二者也有部分工作内容重合,比如都要跟进资料库生产环境出现的故障问题,其中DBA主要负责故障处理,而资料库开发工程师主要跟进自己开发的系统模组出现的bug或性能问题 。
根据研发的内容不同,资料库开发工程师可以分为两大发展方向:资料库核心研发和资料库套用软体研发:
a) 资料库核心研发:主要负责设计和研发资料库管理系统,重点关注的是资料库管理系统内部架构的设计和实现,比如MySQL分支的开发、Oracle 10g新特性开发等;
【资料库开发工程师】b) 资料库套用软体研发:主要负责设计和研发资料库管理系统衍生的各种套用软体产品,重点关注的是资料库外部套用软体产品架构的设计和实现,比如分散式资料库、资料库中间件等 。
基本介绍中文名:资料库开发工程师
外文名:Database Developer
技能:资料库、软体研发
相关词条:资料库管理员、软体研发工程师
主要职责深入研究资料库核心相关技术,设计并实现资料库管理系统
深入了解资料库套用的业务需求,主导设计不同资料库架构的套用软体,并持续最佳化
根据业务需求设计资料库逻辑和物理模型, 开发资料库生产环境所需要的存储过程、函式、脚本等
参与资料库生产环境的问题最佳化和解决
探索、研究新的资料库架构发展方向
工作内容资料库开发工程师的日常工作是设计、开发资料库系统和资料库套用软体,因此与软体研发的过程一样,会覆盖需求、设计、编程和测试四个阶段:
    需求:深入调研用户市场需求,认清项目的套用场景,解决的问题,性能指标等,需要与资料库系统使用方反覆沟通,确定具体的需求 。
    设计:根据收集整理的需求文档设计资料库系统软体的模型和架构,划分模组分别进行概要和详细设计 。
    编程:按照模组分工和设计文档,进行编码和调试 。
    测试:将开发完成的资料库系统交给测试人员进行测试,主要使用的测试方法有黑盒测试、白盒测试、压力测试、性能测试等,测试全部通过后即可等待发布 。
当资料库系统软体完成发布后,资料库开发工程师还需要跟进具体的生产环境使用情况,参与具体问题的改进和最佳化,提供解决方案 。技能要求1. 通用基础技能要求1)精通一种常用程式语言(C/C++、JAVA、PHP等),了解主流的框架、库使用和原理2)深入了解计算机数据结构和算法设计,具备Linux作业系统基础知识3)掌握基本的网路编程知识,熟悉多执行绪编程及其技巧4)熟练掌握Linux、web server、资料库、快取相关技术的使用,了解内部实现机制为最优5)掌握资料库基本原理和知识,熟悉SQL语法规则和特点6)有开源资料库(MySQL、PostgreSQL等)研究和开发经验2. 高阶要求1)熟练掌握分散式系统理论并有着大量实践2)开源社区成员,为开源软体提交过patch3)精通Linux系统IO、锁等调优技术3. 软素质要求1)有良好的英语阅读能力,能够阅读英文资料2)自我驱动,主动的学习能力和较强的动手能力3)工作认真细緻,有责任心,勤奋踏实,善于思考问题4)有时间观念,独立性强,沟通能力好,具有团队合作精神职业发展1. 人才来源资料库开发工程师的人才来源可以分为2个方面:应届毕业生和社招 。1)应届毕业生:对于应届毕业生来说,要想成长为资料库开发工程师需要具备一些软体研发方面的技能,同时对资料库理论基础有一定了解,对于资料库管理系统有一些实践经验,再加上较好的主动性、工作认真细緻、具有团队合作精神即可;2)社招:社会招聘主要可以从软体研发和DBA两个方面来筛选人才 。对于之前从事大型分散式软体系统研发的工程师,比较容易转型为资料库开发工程师,只需要熟悉一些资料库架构和理论基础即可 。而对于DBA来说,已经拥有大量的资料库运维经验,对于资料库研发工作非常有帮助,此时再需要掌握一定的代码编写能力和分散式计算的基础,即可转型成为资料库开发工程师 。2. 职业发展方向资料库开发工程师的职业发展主要分为两条线:技术方向和管理方向 。1)技术方向:根据研究领域的不同,主要分为资料库架构师和资料库运维技术专家两个方向 。资料库架构师:熟练掌握各种资料库管理系统的架构和内部原理,能够根据实际业务需求,设计出不同的资料库套用系统架构,并在业务高速发展时,提供资料库模型设计的最佳化建议和解决方案