有大半年没有来MSSQL板块了,看到一些很熟悉的ID都升星了,在此一并恭喜啦!!呵呵 
写了一篇心得和大家共勉,并散分。 
-------------------------------------------------------------- 
这几天泡在“三十而立”那个板块,看到很多朋友(从20岁以下到35岁以上,呵呵)都有很多感触或者迷惑。 
所谓“人无远虑,必有近忧”,如果等到了30岁还不知道自己想干什么,能干什么,那也许是一种遗憾或者悲哀。 
在MSSQL这个板块也偶尔看到一些朋友问关于发展方向和重点等方面的问题。 
我不敢说自己的数据库专业知识有多强,毕竟这个世界很大,牛人极多。 
只是想把自己在数据库这个方向上亲身做过的,遇到和看得到一些职位大致总结一下, 
这些职位都是实实在在的贴在招聘各种网站上的,我也有机会和一些职位上的朋友或同事工作过。 
希望对大家确定自己的职业方向和重点有一点帮助。 
如果总结得不准确或者有误,请各位高手指正。只有通过讨论和交流才能共同提高。 
如果不介意的话,也欢迎大家回帖时不妨透露下自己的方向,或者目标吧。:) 
自己先带个头:98年本科毕业,使用过dBase, Foxpro, Informix, Sybase, DB2, MySQL, MSSQL, Oracle, 
对Windows和Unix(hp-ux, aix, solaris, linux)都还可以(但比专门的系统管理员还差不少,呵呵), 
前面3,5年主要在Unix和Windows上主要从事数据库应用开发,后来又读了2年书, 
后面这几年逐渐转到DBA这个方向上,现在做的最多的是SQL Server,也涉及DB2和Oracle。 
----------------------------------------------------------------------- 
数据库方向上的九种职业。(除了那些数据库研发等太过专业的方向) 
前面四种的重点是设计和应用,侧重于软件和数据逻辑层面。 
后面五种的重点是运营和维护,侧重与硬件和数据物理层面。 
不过这些职位不是孤立,反而是互相交叉的,只是侧重点不同。 
说实在的,这些职位没有好与不好之分,每个方向都可以做得很好, 
全凭个人的兴趣和目标,但是因为有些职位需求相对少,有机会接触的人不多, 
结果就物以稀罕为贵,市场需求决定价值,呵呵。 
前面四种: 
数据库应用开发 (application development) 
    除了基本的SQL方面的知识,还要对开发流程,软件工程,各种框架和开发工具等等 
    数据库应用开发这个方向上的机会最多,职位最多,薪水一般 
数据建模专家 (data modeler) 
    除了基本的SQL方面的知识,非常熟悉数据库原理,数据建模 
    负责将用户对数据的需求转化为数据库物理设计和物理设计 
    这个方向上在大公司(金融,保险,研究,软件开发商等)有专门职位, 
    在中小公司则可能由程序员承担。 
商业智能专家 (business intelligence - BI) 
    主要从商业应用,最终用户的角度去从数据中获得有用的信息, 
      涉及OLAP (online analytical processing) 
      需要使用SSRS, cognos, crystal report等报表工具,或者其他一些数据挖掘,统计方面的软件工具 
      这个方面我不熟悉,不敢乱说(以免被拍砖,呵呵) 
数据构架师 (Data Architect) 
    主要从全局上制定和控制关于数据库在逻辑这一层的大方向, 
    也包括数据可用性,扩展性等长期性战略, 
    协调数据库的应用开发,建模,DBA之间的工作。 
    这个方向上在大公司(金融,保险,研究,软件开发商等)有专门职位, 
    在中小公司或者没有这个职位,或者由开发人员,DBA负责。 
前面五种: 
数据库管理员 (database administrator - DBA) 
    数据库的安装,配置,调优,备份/恢复,监控,自动化等, 
    协助应用开发(有些职位还要求优化SQL,写存储过程和函数等) 
    这个方向上的职位相对少一些,但一般有点规模的公司还是会有这样的职位 
数据仓库专家 (data warehouse - DW) 
    应付超大规模的数据,历史数据的存储,管理和使用, 
    和商业智能关系密切,很多时候BI和DW是放在一个大类里面的, 
    但是我觉得DW更侧重于硬件和物理层上的管理和优化。 
存储工程师 (storage engineer) 
    专门负责提供数据存储方案,使用各种存储技术满足数据访问和存储需求, 
    和DBA的工作关系比较密切。 
    对高可用性有严格要求(比如通信,金融,数据中心等)的公司通常有这种职位, 
    这种职位也非常少。 
性能优化工程师 (performance engineer) 
    专长数据库的性能调试和优化,为用户提供解决性能瓶颈方面的问题。 
    我知道至少IBM, 微软和Oracle都有专门的数据库性能实验室(database performance lab), 
    也有专门的性能优化工程师,负责为其数据库产品和关键应用提供这方面的技术支持。 
    对数据库性能有严格要求的公司(比如金融行业)可能会有这种职位。 
    因为针对性很强,甚至要求对多种数据库非常熟悉,所以职位极少。 
高级数据库管理员 (senior DBA) 
    在DBA的基础上,还涉及上面3种职位的部分工作,具体包括下面这些: 
    对应用系统的数据(布局,访问模式,增长模式,存储要求等)比较熟悉。 
    对性能优化非常熟悉,可以发现并优化从SQL到硬件I/O,网络等各个层面上的瓶颈 
    对于存储技术相对熟悉,可能代替存储工程师的一些工作, 
    对数据库的高可用性技术非常熟悉(比如MSSQL的集群,ORACLE RAC/FailSafe, IBM的DPF, HADR等) 
    对大规模数据库有效进行物理扩展(比如表分区)或者逻辑扩展(比如数据库分区,联合数据库等) 
    熟悉各种数据复制技术,比如单向,双向,点对点复制技术,以满足应用要求。 
    灾难数据恢复过程的建立,测试和执行 
    这种职位一般只在对数据库要求非常高并且规模非常大(比如金融,电信,数据中心等)的公司需要, 
    而且这种公司一般有一个专门独立负责数据库的部门或组。 
    这种职位非常少。 
感触: 
1) DBA的路不算太好走,我花了10年时间从开发做到DBA,走了些弯路,深刻理解“目标”的重要性 
2) SQL Server可以随便装一个玩玩,但也可以玩的很大很复杂,呵呵(这一点我很佩服微软) 
3) SQL Server的大规模部署是有的,在性能要求苛刻的OLTP应用上可以和ORACLE,DB2有得一比, 
不过,Oracle在高可用性和扩展性上的确有一些优势,而且市场做得极好,但配置和管理也相对复杂。 
但在超大数据仓库方面,DB2和Teradata很强,Oracle和MSSQL还需要再努力,不过这是基本构架上的问题。

没有评论:
发表评论