技术开发 频道

专访:SQL Server 2008企业应用进行时

  【IT168专稿】微软作为全球最大的软件公司,如今已被人们看作一个技术和人才交相辉映的时代象征,对微软每次发布的产品,用户都充满了期待。而作为微软的核心研发部门——微软研发集团也总是充满了神秘的色彩,而如今,微软全球资深副总裁对记者表示:“要将中国的研发团队打造成为世界级团队”,令人振奋的消息!伟大的软件产品要靠传大的团队来铸就,让我们走近微软研发团队,听他们讲讲微软幕后的故事。研发故事会共访问到了4个团队的项目经理,本次采访的是微软中国研发集团服务器与开发事业部SQL Server团队的项目经理林默。

  主持人:各位网友大家好,欢迎收看IT168视频访谈节目,我是IT168技术频道编辑胡铭娅,提起SQL Server从1.0版本到2008版本已经经历了8个版本的历程了,据了解明年还会发布SQL Server 2008 R2的版本,新产品肯定是会带来很多新的特性,而且据我所知,微软中国研发集团服务器与开发工具事业部项目团队也参与了这个项目的开发,我们请来了事业部的项目经理林默到我们的直播间,为我们来谈谈SQL Server的新产品的新特性,以及在研发当中的一些有趣的故事。林默你好。

  林默:林默:主持人好,各位网友大家好,我是林默,我是微软中国研发集团服务器与开发事业部的一个项目经理,我自己是在1998年加入微软,1998年至2005年在全球技术支持中SQL部门任部门经理。 2005年后加入了SQL的研发团队。
 

  主持人:我刚才提到了SQL Server已经经历了8个版本的发展历程,能不能给我们简单的介绍一下这8个版本的情况呢?

  林默:我想很多朋友可能都没有听说过SQL Server1.0、4.2这些版本,因为这些版本确实非常非常的古老,最早SQL Server其实从sybase那边购买过来,所以1.0还有4.2其实都是基于OS2的操作系统,那么也就是没有UI界面的。然后直到SQL Server6.0、6.5以后,我们才有真正基于Windows的一个数据库SQL Server,到SQL Server7.0的时候,那么美国总部大概有三十几位工程师,他们一起重新评估了SQL Server6.5,觉得6.5可能更适合与中小型企业,不大适合于大型应用和数据的平台,所以他们重写了整个的引擎,包括了关系引擎、数据引擎、存储引擎,然后才发布了SQL Server 7.0。所以从严格意义上来讲,7.0是一个划时代的产品,完全跟原来的sybase划清界线。到SQL Server 2000大家都比较熟悉,因为2000我觉得是一个非常稳定,也是非常成熟的一个产品,那么2000年我们还第一次引入的OLAP,一个BI的商业智能的一个平台,这是第一次引入这个平台,然后到了SQL Server 2005的时候我们加了更多的商业智能的一些工具平台,比如说Reporting Service报表服务,还有就是 Integration Services (SSIS)集成服,然后还有Data Mining 数据挖掘,那么接下来才是SQL Server 2008。

  主持人:看来SQL Server2008的发展还是经历了一个漫长的过程,我们微软中国研发团队SQL Server的研发团队,目前是什么样的一个状态?

  林默:SQL Server在中国的研发团队严格意义上来讲是在2007年6月份正式成立的,然后一共有5个部门,其中的2个部门是在北京,3个部门在上海,在北京的部门有做群集服务的Cluster,还有一个部门做一些本地化的工作,现在他们在做云计算方面的工作。上海有3个部门,最早的一个部门我们叫Data program duality,做开发的朋友可能都会比较熟悉,比如用到连接SQL Server的一些组件,像ODBC、ADO等就是他们部门在制作,现在他们也开始做XML的一些东西,还有一个部门就是SSIS,他们做数据传输的这一块,剩下一个部门就是我所在的那个部门,我们是做管理工具方面的,负责一些升级方面的一些应用,我自己正在负责一个项目叫扩展事件Extended Events。

  主持人:目前,企业的数据越来越复杂,不再只是单纯的关系型数据,能否请您谈谈微软如何看待这些数据类型的变化带来的挑战与机遇?微软如何应对?

  林默:我们都知道所有的数据,不仅仅是关系型的数据,其实企业中存在大量的非关系型数据,微软很早就意识到这一点,并且已经投入了很多研发的力量。举个例子,SQL Server 2005年的时候我们就第一次引入了XML的一个数据类型,这样的话你可以在SQL Server就直接开发XML的一些应用,非常方便。到了SQL Server 2008,就有更多的亮点了,其中一个是Spatial Data的数据类型叫空间数据,那么我们知道我们关系型数据库都是两维的,但是我们现实生活中却有很多三维的应用,三维的空间,那么原来的两维的数据库很难表达这种三维的应用,所以到SQL Server2008我们第一次引入了Spatial 的一个数据类型,空间数据类型,那这样子的话,在很多GPS的应用,还有一些房地产,还有一些关于空间的应用方面的话就非常方便。我觉得还有一个值得一提的是,叫File Stream这个数据类型,中文名称叫文件流,因为我们知道在生活中我们有很多多媒体的数据,比如说我以前一个项目叫中国的气象卫星他们拍摄了很多照片,这些照片可能几十兆几百兆的数据量,如果你直接用SQL Server本身的数据类型去存储这么大的数据量的话就非常的差,比较好的方式你就用文件系统,存成一个文件,然后再用文件系统的方式去调用。但是如果你存成一个文件系统的话,那么你的应用程序就非常难写,因为你没办法用SQL Server里面的一些T-SQL应用程序去开发这些东西,2008版本里面我们就引进了一个数据类型叫Varbinary Max,它的存储方式是以文件系统的存储来存储的,但是你又可以用T-SQL的一些应用来调用这些数据类型,所以就非常方便,还也更多的像成文检索,我想大家可能已经比较熟悉了,SQL Server在这方面的应用已经非常非常的成熟,包括还有一些Text Mining这种技术。

  主持人:SQL Server的愿景是什么?

  林默:我要加一点,就是SQL Server的愿景,在SQL Server的愿景里面已经含有这条,我们的愿景就是把SQL Server做一成一个数据平台,这个平台能够涵盖所有的数据类型,不仅仅是关系型数据库,这也是我们的一个开发愿景。

  主持人:也就是微软的SQL数据库将来会支持所有的数据类型,这是一个很大的改变,在数据库领域,海量数据的并发处理和数据灾备的要求越来越高,尤其是针对企业主数据,SQL Server 2008针对这方面有什么样的改进?

  林默:SQL Server本身设计的时候已经考虑了海量数据的处理,早在SQL Server 2005的时候我们已经有很多像TB级的用户,关于海量数据的处理,其实我觉得有一个组织比较好,就是一个叫做TBCC的,非官方、非商业化的这么一个组织,他们发布了一些数据库的性能数据,里面有一个数据就是SQL Server在每分钟已经能够处理几百万条事务,在现实世界中很少有应用能达到这个级别,意味着SQL Server已经能够处理世界上绝大部分的应用程序,那么再说到灾备、容错这方面的话,SQL Server本身已经有很多应用在里面,还有用的比较多的是集群服务,叫SQL Server Cluster,那么这个集群服务就是有两个机器他们共享一个硬盘,然后一个机器失败了,然后就可以切换到另外一个机器上。

  主持人:这会涉及到SQL Server虚拟化吗?

  林默:也不是虚拟化,就是一个集群,两个机器共享一个硬盘空间,但是这个方式的话有两个缺点,一个缺点就是如果硬盘坏掉的话,就没办法了,因为本身我从一台机器切换到另外一台机器,是基于我们有一个共同的硬盘,共同的数据,硬盘坏掉的话就没办法做到容错,第二个的话,它改变时效的切换时间比较长,根据你的应用的话可能是几分钟,有可能更长可能半个小时,那么对于企业来说,很多时候这种切换的话,如果到半个小时才能够把SQL Server重新跑起来的话,那就意味着很大的损失,SQL Server 2008里面我给大家介绍一个新的容错的机制,叫数据库镜像,然后它的原理就是说我这边有个数据库,然后我在另外一个SQL Server上面我对这个数据库做了一个镜像,那么如果我这个数据库失败了以后,就马上就可以切换到另外一个SQL Server的数据库上面。这样有两个好处,一个你即使SQL Server的硬盘坏掉了,也没关系,因为另外一台SQL Server还可以用,我们可以直接用它的数据,另外一个是它的时效切换非常的快,我见过的比较快的可能就是5秒钟,有可能长一点十几秒钟,或者一两分钟,那么这样子对企业这种需求的话,对SQL Server失败以后马上起来这种需求比较强的话,我觉得这是非常好的解决方案。

  主持人:非常好,其实这对企业来说是一个非常好的方案,那我了解到SQL Server 2008 R2现在MSDN上好象也有相关的一些资料,我看这款产品好象是改进了一些BI方面的特性,能不能给我们简单的介绍一下。

  林默:R2最大的改进还是在BI跟数据管理方面,我跟大家主要讲一下BI的管理。SQL Server的商业智能方面的应用,作为一个平台它已经无论从功能方面还是市场占有率方面一直是名列前茅,那么R2最大的改进,就是它弥补了一个专业的IT人员和最终的商业智能程序的应用人员之间的差距,为什么呢?因为在原先的设计里面,IT专业人员专门负责建模,抄写数据,然后把BI的应用跑起来,然后最终的应用人员是考虑到我怎么用你,就是IT人员已经做好了,然后来使用,这样其实是有一个差距在里面。

  主持人:两个人群当中肯定是有差距的。

  林默:对,因为做IT没办法理解到最终用户想用什么,然后最终用户想用的又没办法帮我做到,所以R2最大的改进其实就是集成了我们BI的平台跟Office还有SharePoint在集成方面提供了很大的便利,那这样子的话我作为最终的用户我可以用我非常熟悉的SQL就能够建模,就能够抄取数据,就能够定制我自己的报表就可以做很多商业智能放了应用,最后我还能把它发布到SharePoint上面,让其他人一起来分享我BI的一些应用。

  主持人:真是非常好的特性,那我在Teched上看到关于做SQL Server扩展事件,就是Extended Events讲座课程,那我想请您谈一下关于扩展事件这一块的亮点。

  林默:扩展事件我们叫Extended Events,是SQL Server下一代排错跟踪的一个框架系统,用来取代以前的SQL Trace,那么它的最主要的优点是在于它是一个轻量级的跟踪系统,就是它对服务器的性能的冲击非常小,它可以定制,另外一个就是说它可以深入到系统很深的内部去获取当系统出现问题时候的信息,这个是原来没办法做到的,我可以搜集很多调用的对帐,然后也可以搜集存储的数据,因为我们开发一个应用程序,如果我有一个错误出来的话,那么很难单单凭这个错误找到原因,那么更多的时候是错误是由不相关的事件引起的,比如硬盘、硬件,所以说Extended Events就是扩展事件能够搜集到很多你可能是不相关的一些事件,然后用来做综合的处理。我觉得最大的好处就是它里面可以把这种解决方案模板化,比如说我是IT的专业人员,我对SQL Server非常熟,但是你不熟,那这样子的话,你碰到一些什么思索方面的问题,那这时候我就可以创建一个扩展事件的一个模板,然后把这个模板给你,然后你拿到这个模板就可以搜集数据,然后按照我给你的方式你就可以解决问题,所以大家可想而知,就是说有很多的IT的专业人员他们可能针对不同的错误,不同的领域,他们可能生产了自己的模板,然后这个模板最终用户可以使用做各种各样的SQL Server的排错的问题。

  主持人:这是非常好的一个功能,也解决了很多以前SQL Trace的局限性,您是在微软中国研发集团负责这个相关的一些项目的,能不能给我们介绍一些在研发过程当中发生的一些故事?

  林默:其实我到SQL Server研发部门也才三四年的时间,我的感触还是蛮深的,基本上我觉得跟我以前想象中怎么开发一个程序有很大的不一样,以前我想开发一个程序了不起,就是我们程序员写写代码,然后更了不起有一些测试人员帮我测试一下。当我开始做SQL Server这个研发的时候,其实碰到了一个最大的问题而不在于开发跟测试,而是在于你怎么定位SQL Server,就是说你想要在SQL Server做什么,就是所谓的一个主题问题,那么我们在计蚜下一版本SQL Server开发的时候,比如说我们已经知道了我们要做什么,但是我们会提出很多很多的主题,然后每个主题比如说我提出个主题叫零管理,我想实现SQL Server的一个零管理,就是说我们不需要人来管理,SQL Server能够自动跑得非常好,那我提供这个主题以后我就要去搜集很多市场上面的一些支持的数据,我还要去做竞争者的分析,就是其他的数据库产品他们怎么做的,然后我还要搜集很多信息,我把这些信息全部搜集起来以后,我们很多老板会坐在一起,然后他们评估你的主题,如果他们觉得你的主题不错,可以代表SQL Server以后的方向,也能仅扣住我们的市场,那么它可能就批准了。

  主持人:是每个人都参与到?

  林默:主要是你负责的这一块,项目经理居多,但如果你的主题被裁掉了,他们觉得你的主题不好,那你就很惨了,就是说你没有自己的主题的话,你只能吃别人的残羹剩饭,比如说别人做这么一个主题我觉得人手不够,那我就给你两个做字,变成是这样的。这个主题在定义的时候花了很多时间,基本上花掉三分之一的时间,我们会搜集很多支持的数据,然后一但定下来以后我们才开始想我们现在要开发这个主题,我们需要有哪些功能来支持,这时候我们才真正的进入开发的一个流程,然后我们会搜集很多的数据,包括像我们中国,我们研发人员会跟中国的用户在讨论组上面我们会有很多交流,我们会参与到中国的SQL Server讨论组,跟用户进行交流,然后我们也会跟微软最有价值的专家定期的开会,因为他们是用户第一线,所以有很多非常有价值的信息,然后我们会听取他们的意见,然后我们也会直接拜访客户,拜访我们中国的用户,然后看他们有什么觉得用的不好的地方,对SQL Server有什么期望,然后我们再生成一个一个的我们叫user story,就是说我们开发并不是开发人员想怎么开发就怎么开发,要由用户来决定的,所以我们做好了这样东西以后,我们才作为一个项目经理,像我这样才真正开始写设计的规划,然后写设计规划的时候,这个痛苦才刚刚开始,为什么呢?因为SQL Server它非常有意思,它大概有三十几个标准跟规划必须严格的执行,那么每个规划都有一个专门负责的人,还有一个小的部门,他们来负责这个规划,然后你开始写设计规划的时候,你必须要一个一个部门的评估过来,那么比如举个例子,安全,然后你把你的设计规划给安全评估的小组来看,他就问你好多问题,说你安全好不好之类的,如果不行打回去重写,然后你可能会跟那种我们叫Accessibility可访问性的,比如说我如果鼠标坏掉的话,我怎么用键盘来操作,如果我视力有问题我看不清怎么办,你都要满足他所有这方面的需求,所以只有三十几个规范我们的负责人说可以了,你这个规范我们认可了,然后我们才开始真正的进入开发跟测试的阶段,所以对我们来说,一旦进入开发跟测试的阶段的话,就意味着什么事情都已经定了,就是说不会再怎么变化了,所以进入一个我们可以喘口气的那种流程。

  主持人:非常感谢林默今天给我们带来的精采分享,也非常感谢林默到我们的直播间来作客,希望微软中国研发集团服务器与开发工具事业部的项目团队成员来我们IT168作客。

  林默:谢谢主持人,也谢谢各位网友,那么大家如果对我们的SQL的研发团队有兴趣的话,也可以来我们的博客里看看我们都在做什么事情,然后也欢迎大家参与SQL Server中文的论坛,跟我们一起来讨论问题、研究问题,谢谢大家。

  主持人:非常感谢网友的收看,我们下期节目再见。

  林默:再见。

  
  ·SQL Server中国研发团队博客:http://blogs.msdn.com/sqlcrd
  ·SQL Server中文论坛:
   http://social.microsoft.com/Forums/zh-CN/sqlserverzhchs/threads

0
相关文章