返回 登录
0

专访汪洋:从Oracle到Postges之PG在平安科技的推进

2016年10月27日-28日,Postgres中国用户大会 2016(PG大象会)在上海浦东盛大举行,为广大技术人提供了一个分享交流的平台,业界同好齐聚于此,以PG为核心,秉持开源的理念,将拓展Postgres数据库在中国乃至整个世界范围内的影响力视作发展目标,话题碰撞,巧思尽显。

大会期间,CSDN记者有幸邀请到平安科技数据库技术部总监汪洋,围绕一些大家关心的话题进行采访。生于北京的他谈吐之间仍保留着老北京的韵味,在加入平安团队之前,服务于Oracle香港,丰富的经验造就了独到的见解。分享过程中,他表达了自己对于开源乃未来之势的信心,以及PG与金融行业走向高度契合的愿景。

图片描述

【以下为正文】

CSDN:首先能否请您先介绍一下自己、您的团队以及您所关注的领域?

汪洋:我现在主要是平安科技数据库技术的负责人,这个部门现在大约有80个人,在国内的公司里专注于这个领域的团队中,规模算是比较大的。我们的团队专注于一些新技术的引进、一些架构的设计,给开发提供一些必要的数据库技术方面的支持,此外也会做一些我们自己的数据库升级和变更,主要负责这一块的工作。

我曾服务于Oracle香港,主要给一些亚太区(比如深圳、香港、澳门)金融领域的企业级客户提供一些架构、解决方案或是性能优化方面的建议。我是地道的北京人,去香港已经有20年了,在加入平安之前的15年都是在香港工作,主要也都是从事数据库方面的开发和运维类的工作。比较幸运的是我一毕业就开始从事数据库方面的一些工作,刚开始是一些Informix和Sybase之类的,后来在1994年开始接触Oracle,那时还是Oracle的版本6,后于1998年考取Oracle7.3的OCP,从那个时候可以说是正式进入到OracleDBA的领域,到现在已经有差不多快20年的时间了,所以可以说是Oracle方面的一个老兵。

CSDN:那么是什么样的契机让您接触到Postgres这个领域的呢?

汪洋:我接触PG严格说来时间并不是很长,但因为最近两年国内有一些去IOE的需求,监管部门也有一些信息自主可控的要求,再加之我们之前也是一直想找一种能够在很多场景下能替代Oracle的开源数据库方案,却苦于未能找到。今年是PG大会第六届,2014年是第四届,而我参加了2014年的PG中国区用户大会,从那时我才是第一次真正接触PG,但是这一次接触却给我带来了一种“似曾相识”的感觉,就觉得PG应该就是我们一直在寻找的Oracle替代品。回去之后,我就开始推动整个部门进行一些PostgreSQL相关技术的调研,包括一些产品的选型、与其它市面上已有的开源数据库的比较,以及同Oracle方面的比较,还有如果我们从Oracle转向PG会有怎样的挑战,会遭遇一些怎样的问题——从方方面面加以评估。最后发现,就像我第一眼看到PG一样,PG起码在平安科技目前运行的这些系统和领域内会有大的作为,从那时起,我就开始制定一整套包括人员在内的PG发展策略,涵盖技术上的推动和PG在平安内部的推广。

CSDN:您也提到当时在初步接触的时候会考虑到它将会遇到什么问题、瓶颈之类的,实践过程中是否遇到过什么困难之处呢?

汪洋:刚开始因为一项新的技术在金融领域应用之前,我们肯定会做很多的研究工作,确保它在上线之后不会出很多问题,前期的准备工作做得很充足,包括制定很多规范——架构规范、用户规范、开发规范,还包括安全上的一些规范,实施全方位的防护,只有这样我们才敢去应用。而且我们有一套推进策略,就是从简单到复杂,从非关键系统到关键系统,所以上线以来遇到的问题数量不是很多,应该两年来基本上是零故障,所谓零故障就是说没有引起服务不可用的问题,整体上来说是比较好的。但就像你刚刚提到的,确实在整个应用过程中遇到过几次有惊无险的情况,因为即使你在前期做过再多准备,但有些场景你并未在真实的实践中运用,所以还是会遇到问题。在真实的实践中,我们差不多遇到过一两起这样的事件,没有给应用带来很大的问题,而且在我看来,这也为我们今后的运维及时地积累了经验,并能够防范在今后其它一些系统中再次发生。其中一次就是我提到过的Postgres里WAL产生过多的问题;还有就是一个Vacuum Freeze,如果再不去进行一些Vacuum的动作,整个该应用系统所在的数据库就会停止服务。不过好在我们快速制定了一些应急方案,及时总结,并将其纳入了今后的无论是架构领域还是规范领域,或是自动化流程里去防范其再次出现。

CSDN:刚刚您有提到安全性话题,那么在金融行业,无论对于用户还是开发者而言,安全永远都是个敏感的问题,您在上午的演讲中也有提到,那现在能否对此再进行一个简单的分享?

汪洋:对于安全问题,首先是操作系统的安全。在这个层面,我们会定义Postgres这个软件用什么用户来安装,它相应的文件权限,保持最小权限最低权限的原则,比如说我们会把文件的权限在安全极限内设置为640。从操作系统来看,还有就是我们的服务端口,因为每一个数据库无论是Postgres、MySQL还是Oracle,它都有一个缺省的端口,那么如果不对这个进行修改,就可能会遭到恶意攻击。因为这个缺省的端口是广为大众所知的,所以就有可能会被利用去发动一些攻击。此处一个原则就是,在我们所有的数据库里,包括PG部署端口时,我们自己定义了一个端口的缺省范围。也对能够连到数据库服务器的一些网段进行了限制,比如说我们在PG的配置文件里面,限制只有某一个网段,也就是应用服务器所在的网段才能够连到我们的数据库服务器,进行访问操作。但数据库的安全当然不止包括操作系统级的,也涵盖数据库内部。

在数据库内部则是通过一些用户的规范。数据库内的用户可能分为很多种,比如DBA用户,是对整个Postgres进行管理,他们是有最高权限的,因为当问题发生的时候,他们可能需要重启Postgres或者是操作一些需要较高权限才能进行的动作,所以我们为DBA赋予了Super User。而且我们是单独建立一个用户,因为跟端口一样,一些广为大家所知的可能会成为攻击对象,所以我们从一些缺省用户里面拿走了Super User,只将Super user授予一些自己创建的DBA用户,这样就有效降低了从外部受攻击的风险。

除了DBA,还有运营,我们的运营也是分几个角色,即便是运营这一个领域也分很多种角色。有做版本部署的,有做数据采集的,有做数据修改的——那么针对运营领域这三个不同的角色我们也分别建立了不同的用户,确保每一个用户都处于最低权限的操作环境。比如数据采集不需要进行数据修改,那么我们就不会赋予其DML的权限;对于要做数据修改的,就会把相对应的DML权限赋给他;还有一些部署,部署就是部署应用系统所需要的连接用户,那么针对这类用户,因为一方面我们不允许白天去发版,所谓发版就是DDL数据库的版本需要执行一个DDL,另外一方面也是因为一般来讲DDL的错误执行对数据库的影响会比较大,不想让一些未经授权的DDL对数据库造成一些可能性的破坏。还有在应用连接用户方面,我们只授予一些查询和数据修改的权限。另外就是数据owner,也就是创建这个数据库的用户,他们是和应用的连接用户分开的,他们有权限去建立或创建一些对象。再者就是一些给开发人员的查询。

总之,林林总总这些就是确保每一个用户能够按照最低权限去授权,他不能够越权去进行一些他不应该做的操作,从而保障数据库的安全。这只是对Security一个狭义的理解,但广义上来讲,我对数据安全的理解应该包括整个系统的可用性,但广义上的内容就不是一段话能够概括的了。

CSDN:众所周知,Postgres是功能性最强大的开源数据库,在开源以及开源数据库这一块您有什么自己的看法吗?

汪洋:对于开源数据库我的看法是:如今开源数据库这方面发展得很快,在它冒起来之前,因为没有选择,所以无论系统重不重要,也无论什么场景,大家只能选择一些商业数据库,像是DB2、Oracle、SQL Server等。而从Gartner的报告来看,开源数据库的功能也发展得很快,在成熟度与商业化上,几乎和一些RDBMS不相上下,所谓商业化就是指一个产品的成熟度、功能的完整性、可用性与稳定性。所以这就保证了我们采用开源数据库的信心。同时,较之一些闭源或商业化的数据库,我觉得开源数据库还有一个优势就在于它的反应非常快,很适合用以进行我们互联网的发展,因为互联网开发属于敏捷开发、敏捷运维,所以开源数据库适用于这样一种场景——它相对于商业化数据库非常轻量级,也非常快。

另外一个就是由于整个社区在推动,而用户有什么反馈需求可以很快反映到它的版本中,PG的强大之处就在于,它不光可以开源,也可以去修改、改善它的核心,你还可以通过插件的方式去完善它的功能。所以当你觉得用户有这样的需求,或者当你觉得不能满足你的要求的时候,就可以开发自己的插件,从而完善它整体的功能。这个过程在商业化数据库里需要消耗的时间较长,它的每一个major release往往需要跨越四五年。而现在这些开源数据库,像Postgres每年都是一个大版本,然后每个版本里都能带给我们一些很让人激动的特性,比如说像今天提到的一些Block Range Index,或者对JSON这类的支持,这是我理解中开源数据库很重要的一大优势。

CSDN:您刚刚有提到Postgres相较于商业数据库的优势,那现在和其它开源数据库相比它是否有什么特色之处?

汪洋:在我看来,每一种数据库产品都有一些它自己的应用场景或优势,那么Postgres和其它一些开源数据库相比的优势在于它的开发能力可以做很多事情。有人把Postgres称为一个数据库开发平台,而不是简单的一个数据库,这足以证明它在开发上面提供的一些很重要的特色。比如它的Stored Procedure——这是数据库一个很重要的特性,你可以在数据库内通过Stored Procedure完成一些很复杂的逻辑处理,可以访问很大的数据量,这样就保证你的数据库不会跟应用程序、应用系统进行太多交互,从而提升整体的性能与吞吐量。
Postgres的强大之处还在于其是一个开发平台,你不会数据库里面的Stored Procedure,没关系,它可以支持你用C去写Stored Procedure,它也可以支持你用Python、Java、JavaScript等,所以你可以挑选一种你感觉舒服的编程语言去基于Postgres来完成数据库内部的开发。

另外它跟其他的数据库相比,还又一个优势是支持多样化的数据类型。它很早开始就支持JSON,而JSON文档的方面,MySQL 在5.7才开始支持,Oracle则在12c,现在开始back port到11.2.0.4——也就是说都比Postgres支持得要晚,而Postgres因为支持得较早,所以近两年也在不断完善对JSON的支持。除了JSON还有一些对数组、对一个范围数据类型的支持,这些其实在开发过程当中对开发人员而言都是比较新颖的,能够简化他们的开发工作。如果能够简化开发人员的工作,就意味着他们的开发速度会变快,他们的开发周期就会缩短,产品的上线(time to market)也就会缩短。

CSDN:在您看来Postgres更适用于什么样的场景?

汪洋:我理解它更适用于一些逻辑相对比较复杂的场景,而其它他一些开源数据库在数据库内部的特性不是很丰富,所以可能适合一些业务处理逻辑相对简单的场景,像是一些互联网类型的,它的逻辑可能没有那么复杂,有一些横向扩展性的需求,这一方面可以考虑一些市面上比较成熟的MySQL数据库。那么对于Postgres而言,其实我们一直在说,金融行业中包含很多业务形态,电商、银行、基金、保险等这些领域都是,其中保险这些逻辑相对来说是比较复杂的,它甚至每一张单都要访问大量的数据才能算出保费等结果,而不像银行那样相对比较简单的一进一出的关系。在这种情况下,Postgres比较适合,这也是为什么在传统的商业化数据库里大量的保险业务逻辑都是通过Stored Procedure来实现。也就是因为它每个业务比较复杂,而且都需要访问大量的数据,所以如果全都迁移到应用服务器,会造成与应用服务器过多的交互,从而导致整体性能下降,在这种情况下,Postgres是比较适合的。

还有就是一些OLAP,很多其它的开源数据库,我早前也提到一个概念叫做HTAP,全称Hybrid Transaction and Analytical Processing,即混合的在线和分析类的处理,就是说在一个数据库内部,你很难找到一个很纯粹的联机事务处理系统,也很难找到一个纯粹的分析系统,特别是现在数据量暴增,而且业务逻辑非常复杂的情况下,所以一般都是混合性负载。那么在这种情况下,很少有开源数据库能够像Postgres这样处理这种混合负载的需求。另外就是一些数据仓库,Postgres在数据仓库界应该是比较出名的,像一些Greenplum其实都跟Postgres有很强的关联。所以Postgres对于这种分布式业务,进行BI的商务智能的东西也是非常适用的。

CSDN:您在今天会上的分享当中也有提到Postgres推进过程中在团队内采取的一些策略,现在能否在推进策略这方面再进行一个总结式的分享?

汪洋:关于策略我主要讲了人员方面,我们建立了一个Postgres项目组,集中我们部门的一些优势兵力,把一些对开源数据库比较有兴趣的、并且很资深的一些数据库管理人员放到这个项目组里,并且设立一个PG owner,类似于把PG当做一个产品来处理,现在很多的产品都有产品经理,所以这个PG owner就类似于我们在平安科技推动整个PG的采用或者运用,他来负责很多东西,包括牵头进行一些架构、开发、用户、安全等规范的建立;出一些培训的教材,制定整个指导方向。当然整个工作是由项目组来完成的。此外,在这个项目组的一些规范制定好之后,我准备去推广时,也因为PG在当时被确立为科技的一个主流数据库,所以针对这一点制定了一个长期的数据库技术发展路线图,也就是Roadmap,那这个Roadmap既要往下传递也要往上传递,这跟公司的愿景一样,同时也是我们数据库技术部的愿景,所以我们会把这个愿景既向领导层做一些传递和汇报,让他们去认可,也会向下去做一些宣传,让大家都知道将来我们数据库的一个发展方向。

现在有这么多数据库产品,那么什么数据库应用在什么场景都会对他们进行一些宣导。另外一方面光宣导是没有用的,你还要对他进行一些培训,毕竟开发人员对这个数据库还不是很熟悉。因为十几年来我们一直都在运行Oracle,他们对开发Oracle比较熟悉,要让他们习惯并明白从Oracle转移过来并不是那么难,而且就像我们刚才所言,这个新数据库支持很多很丰富的类型,你不用再像以前那样把数据放在不同的数据库产品里,只要一个数据库就能处理你的一些JSON这样的数据库类型,还包括一些其它类型,比如地理位置信息查询能够给它带来好处,能够加快其产品的上线,让他们明白这个产品给他们带来的一些好处。

同时也会为他们培训一些用户和开发的规范,包括表怎么命名,索引怎么命名,以及这个索引针对PG怎么去设计。另外还有针对于PG的话,怎么去改变他们原来Oracle 11G的函数,在PG里面用这个函数要怎么去建立这种映射关系,从而让人们能够很快切换到PG,还包括一些Stored Procedure的写法等都要为他们进行培训。培训是一方面,另外我们也会在项目初期对他们进行全方位的支持,深度参与到一些PG相关应用系统的开发过程中,去帮他们审核一些数据库的逻辑模型、物理模型的设计是否合理,在性能方面可能会出现什么样的隐患,SQL的写法是否正确等,进行全方位的辅导,希望通过这样一整套策略能够将PG很顺利地推广出去。

CSDN:您刚刚有提到路线图(Roadmap),那它的制定与规划依据了哪些基础?

汪洋:平安科技现在有很多种数据库,每一种数据库都有其应用场景。其实从数据库技术分类来看,RDBMS现在只是一种,还有一些NoSQL,NoSQL里面又分为一些key-value,一些document,所以我们在路线图里会把平安科技现在所使用的像是MongoDB、Redis、MySQL、Oracle,以及Postgres各自列出来,其中每种都会给出一些适用场景,比如Oracle会放每个业务系列最核心的而且体量比较大的应用,比如这些几十或者上百T的核心系统,或者涉及交易量型的,核心交易还是会放到Oracle上。会分出一个集团一类系统适用范围,这里主要是Oracle;而集团二类系统及以下则都会运行Postgres,缺省用Postgres。那么MySQL用在什么场景呢?往往是一些互联网类型的类似于电商的应用,它的负载也比较难预测,举例说就是它今天可能做活动,你不知道什么时候会进入高并发负载,在这种情况下,MySQL相对来说容易扩展,所以通常会选择MySQL;另外一种情况就是NoSQL数据库,它并非每个应用系统都需要,因此是按需而定;平安 Redis的我们使用了很多,它可以放在Oracle前端,也可以放在PG的前端,也可以放在MySQL的前端,用于降低应用程序的响应时间,能够让它们有一些更好的用户体验,所以Redis在我们的路线图里面有这样的规划与定位;MongDB则适合一些海量场景,因为MongoDB最初就是做为海量数据JSON这个文档的存储而设计的,如果你有一个海量JSON文档的需求,我建议你去用MongoDB,可以据此在路线图中进行数据库的定位。

CSDN:您刚刚有提到那么多的数据库,那么我想知道在您的公司里Postgres是属于哪一个架构层面,在架构里面负责哪一块?

汪洋:Postgres其实并没有针对某一个业务系列,现在实际上基本我们所有的业务线都在推广,可能都已经在使用Postgres了。我们是按照系统重要程度来划分,比如刚刚提到的集团一类,非常核心的我们暂时还是放在Oracle上面,我们觉得对于Postgres我们都还是新手,还有很多东西要去学,所以我们需要一些经验的累积,所以当我们非常有把握的时候,会逐渐把一些更重要的系统放在Postgres上。但从现阶段来看,按照重要程度,我们在集团二类及以下缺省都是使用Postgres这种RDBMS。针对某些特殊需求,比如我去评审的时候,发现这个场景是满足MySQL条件的,会去使用MySQL,但是一般情况下,缺省的都是Postgres这个数据库。

CSDN:目前除了PG之外,您还有哪些比较关注,或者比较吸引您眼球的一些技术领域呢?

汪洋:我个人对技术方面还是比较热衷的,虽然平时工作很忙,但在Postgres方面,有时间的话我还是会去写一些博客,像我之前写过一些Block Range Index(刚刚提到过的)跟B-Tree Index的一些比较,我自己感觉还是比较深入的。那么除了Postgres之外,我一直觉得因为DBA是一个承上启下的角色,上接应用系统,下面又依赖主机的操作系统和一些存储,所以做一个好的DBA,你不光需要了解这个数据库产品本身,也要了解一些操作系统和存储等的发展。另外,现在随着互联网的一些发展,数据库跟应用程序架构之间的结合越来越紧密,所以也有必要去了解一些应用方面的架构,这几个方面我都比较感兴趣。

我个人的话,除了数据库,还会关注一些操作系统还有存储方面的内容,我订阅了很多这种博客,国内外的都有,而且会把我看到的一些将来的趋势,或者我认为对平安科技在采用这些技术方面有帮助的文章分享出来。其实往下这些我都比较关注。架构方面也是需要去关注,这些整个是一条线。我感觉在一些前端的开发方面可能会关注的稍微少一些。

CSDN:刚刚您有提到一个DBA应该做到哪些事情,那么对于数据库相关的从业者有没有一些您自己总结出来的经验可以分享?

汪洋:从业者既然选择了数据库,首先你就要喜欢它。这也是我这么多年无论是从事Oracle还是Postgres,都秉持的理念。只有喜欢自己从事的工作你才会愿意钻研进去,而且面对工作上产生的这种压力也好,或者感觉到累了也好,因为这份喜欢,你只会累但是不会觉得苦。另外,每一次出问题的时候,你对每一个知识点一定要研究透,不能浅尝辄止,或者只是表面上解决了一个问题就不再去管了,因为有些问题的解决不代表你真正明白它了,那可能是碰巧解决了,所以你每一个问题或知识点,你势必要做到入木三分,一定要非常清楚它的机制,这样对于本身也是一种提高。你会发觉,特别是每一个问题你弄明白根本原因之后,你的技能会有一个很大的提高。

另外一点就是要在每一个事情之后及时总结经验,总结本身也是对一个知识重新系统化整理的过程,你可能当时解决问题的时候没有这么条理化系统化,当你最后知道根本原因之后,再把整个问题的解决过程包括分析、定位、解决重新梳理出来,包括去看了哪些材料等——系统化整理出来之后,你会发现自己的知识从一些离散的点变成了一条线,这样就能够更清楚更透彻地了解它。你在做完总结之后,不仅能加强自己的理解,还能够分享出去。这样在分享的过程中,别人可能会问一些你之前也没有想过的问题,从而举一反三,在这一方面都是有帮助的。

再者就是作为数据库从业者,不要总是着眼于数据库本身,因为数据库是非常依赖主机的操作系统或者存储运行的,所以你一定要确保你了解数据库里的一个需求要如何到达主机,从主机的操作系统又怎样到达存储,比如说一个IO的需求,然后怎么样再从存储返回,你要去了解这样整个一条链路,这样你的知识面就会变得很宽广。

CSDN:您认为在金融行业未来的发展当中,Postgres或者说开源数据库是否会对其产生什么影响?

汪洋:从我个人的愿望角度,肯定是希望Postgres能对金融行业产生一定的影响,就像我早上分享时说到的,我希望能够打造出一种金融行业开源数据库的标准模式,那这种标准模式就是Postgres。因为我们的团队也是非常锐意进取的,在开源方面,我们切实地在推进。但是现在感觉,据我个人了解,就整个行业而言,特别是一些传统的金融行业,现在采用开源基本上还是小范围、试点式的,或者往往持一些观望态度,因为他们有些担心开源用在金融行业会不会导致一些不稳定、不可靠的问题,但我相信这两年也不光是PG,其它的一些开源数据库发展都非常快,包括功能和稳定性,它的性能还有扩展性各方面都发展迅速,所以我相信会对金融行业产生一定的影响。

还有一点就是,开源数据库发展会给商业数据库软件带来很大的压力,所以我现在看到的是商业数据库软件和开源数据库软件其实在互相渗透。一些商业化软件的特性会在开源数据库中表现出来,而开源数据库支持的一些好的东西商业数据库也会有所体现,所以这一方面对于整个数据库的发展是好的,另一方面它们二者的相互促进对整个金融行业也是比较有利的。两者之间的差距可能会越来越小。

CSDN:老师您个人平时有什么可以推荐的学习方法吗?

汪洋:我一方面主要通过官方文档,无论是对于开源数据库,还是商业化数据库,最权威、最全面、最系统化地去学习一个数据库的时候(或者不单包括数据库可能也包括一些操作系统),都要看官方文档。当然也可以去网上查找,很多人遇到问题喜欢到网上找答案,当然我不排除这是一种方法,在解决一些问题的时候,因为要应急,官方文档可能不太容易找到你需要的知识。但如果你想要系统化整个了解一个产品,我还是建议你去了解一些官方文档,在通读了官方文档之后对产品会有一个比较好的理解,这个时候再去看一下其他文档对应某些特性的部分。官方文档一个不好的地方是更新比较慢,它可能会跟着一个大版本才会更新,那么在这个过程中其实有很多感兴趣的点在官方文档体现不出来,这时候你去看一些针对于某一个特性的文档,会让你对这个知识点有一个更深的理解,这是文档方面。

另一方面就是书籍也是非常必不可少的,刚刚说的文档有可能是网上的也有可能是书籍,我现在说的是另外一些书籍,像国内的一些源码的研究,或者是Troubleshooting Postgres这些书籍对你也是非常有帮助的,因为文档并不会教你怎么系统化去解决一些问题,但是书籍则可能是针对其实际经验,会教你去系统化分析解决一些问题,这是其二。

还有就是博客,我订阅了很多的博客,像是Postgres活跃的一些公司,如EnterpriseDB、2ndQuadrant,还有一些俄罗斯的Postgres Professional,这些博客我都有订阅,只要是跟Postgres相关的,那么我经常去看这些博客的好处就是能够借此了解到这间公司对Postgres一些vision——产品发展的一些远见、它自己的一些路线图,另外也可以了解到它们自己基于Postgres上正在做什么,将来会有一些什么特性推出,或者对某一个知识点很深入的了解。有时文档不会告诉你太深的技术细节,但是博客可以,而且还结合了一些实际的案例,因此这也是很重要的一个获取知识的一个渠道。

还有一点就是,因为计算机或者说IT是实践性很强的,如果你只是每天看书,没有一个hands-on experience也就是动手实践的经历,再加之更新也快,所以看到这些东西很难深深地留在你的脑子里,或许一段时间不接触你就会忘了,所以我建议大家一定要搭建一个环境。因为现在的PC功能方面很强,你完全可以用一些虚拟的技术去在你的个人电脑上搭建一些环境出来,在这个上面你可以结合你在文档、博客和一些其它途径了解到的样例,自己去实践一下——也许你可以发现一些他们没有看到的现象,而且因为版本不同,也可能会发现不同版本中一些不同的行为,这些对你理解某一个特性或者一些行为也非常有帮助。这里除了搭建环境,我还建议大家一定要做到举一反三,就是说你在做某一个测试的时候,还可以思考还会有一些什么样的场景,这样当你把一个知识点理解得很透彻的时候,以后遇到任何这种业务上的审查你都可以很方便或者说驾轻就熟地去解决这么一个问题。

CSDN:那在今天采访的最后,老师您还有什么想和大家分享的内容吗?

汪洋:最后我想说的就是大家都赶上了一个好时候,起码比我毕业的时候,因为我毕业也很早,不知不觉之中我已经算是一个“老人”了,所以我觉得现在尤其近两年中国的互联网技术发展得非常快,所以现在近十年毕业的学生或者说现在毕业的学生其实他们赶上了一个非常好的时代,现在我们中国自己的一些互联网技术的先进性都已经位于世界前列了,他们所学到的知识也都是相对来说比较实用的。那么在这种时代,一个好的时机再加上你自己愿意去学,愿意在这里努力做出一些成绩的话,其实有一个非常好的整体形势和平台。因为我本人也是对技术比较感兴趣,同时也一直在从事这方面的研究,所以也希望继续带领着我的团队在这方面做出一些成绩。

另外就是我觉得数据库技术还是非常重要的,我之所以会从事数据库领域,一方面是因为DBA那时候的薪酬比较高,特别是Oracle DBA的薪酬比较高,另一方面我也是觉得数据库在数据方面的重要性,大家都知道数据几乎就是一个公司的生命线和资产,因此数据库作为存放数据的地方无疑是尤为重要的,所以在这点上我也希望大家能够有更多的人从事到数据库行业,也不光是中国的数据库,而是推动整个数据库领域的发展。

随着互联网的发展,数据格式可能会越来越多,适用于不同的场景,你现在可以在数据库引擎网站上看到差不多二三百种数据库引擎(当然有些功能上可能是重复的),但为什么会有这么多也是因为这两年数据库的蓬勃发展对数据格式存储的需求导致的,所以我希望大家能有更多的人对数据库的技术感兴趣并且能够投身在数据库技术方面,共同推动数据库技术的前进步伐。

评论