最近美国芯片限制政策的问题发酵的很厉害,前几天一个朋友说他原来以为数据库是最难国产化的,原来还不是啊。确实是的,相对于芯片这种产业链特别长的IT组件,数据库这种软件相对来说更容易实现国产化。
目前在IT领域,中国受益于多年的世界产业分工和国际化协作,发展的很快,不过重点发展还是在应用领域。在基础领域里,中国一直是承担世界工厂的角色,并没有参与到先进技术研发与关键设备生成这些研发投入极大,研发周期较长,单一产业全球产业规模不大的领域。
我看到网上对我国IT产业全面否定的言论很多,对IT产业国产化的态度也极其悲观,这些言论很多来自某个产业的从业人员,因此也很有市场。
实际上,目前我们的IT产业国产化面临的问题是多种多样的,很多产业并不是我们没有能力去做,而是在国际化分工协作的模式下,以往没必要投入巨资,浪费时间去做。当反全球化浪潮高涨之时,一个国家和民族为了生存,那么在很多方面就不会考虑最优成本解的问题了。
我想大部分短板还是能在三五年内得到补全的。可能我们会面临花了更多的钱,用了比原来差的产品的问题,不过熬过这段艰苦的日子,在某些领域形成物美价廉的中国方案也不是不可能的。
回到数据库,实际上这些年来我一直不认为数据库国产化是个大问题,没有成不成的问题,而只是做不做的问题。前些年中国数据库产业国产化发展的不好,最大的问题不是国产数据库的发展太慢,国产数据库水平不足等技术问题,而是我们对知识产权的不尊重。
我们的国产关系型数据库产业从1999年左右就开始起步了,而国外的关系型数据库产业大发展也只是从90年代中期才开始的,我们的起步并没有晚多少。同时期韩国发展出了Tibero、Altibase等商用数据库产品,日本的一些大企业则在PG开源项目上做了巨大的投入,而实际上我国也出现了第一批国产数据库厂商,达梦,人大金仓等纷纷登场。
由于我国在知识产权领域的保护不足,从而导致数据库领域盗版横行。8、90年代的银行交易系统大多数是基于informix数据库的,并不是说Informix数据库多么适合银行交易系统。而是因为第一批搞银行电算化的人从美国回来时候带来了盗版的Informix。
而随着中国IT产业的大发展,那些网上下载就能使用,不需要物理许可证的数据库产品成了我们应用的主流。上至政府机构,小至小微企业,数据库一水都是Oracle Enterprise。
2000年初的时候,一个国外的DBA到访深圳,和我谈了一件事,说他去给一家企业做数据库规划方面的咨询。用户居然问他是不是要考虑引入一些其他的数据库产品,而不能只用Oracle数据库。他感到有些吃惊,他在美国的客户,都是只有最核心的数据库才会首选Oracle,而一些非核心的,都会考虑使用稍微便宜一些的SQL SERVER,或者干脆用MySQL,中国的一个企业里居然用了好几十套Oracle企业版数据库,连办公自动化这种没多少并发量的系统,都是Oracle Enterprise,他觉得用一个Oracle Standard就完全足够了。

谈到数据库国产化,实际上并不仅仅是关系型数据库,去年我们帮一个客户梳理他们的数据库国产化方案的时候,整理了他们目前用到的数据库产品类型。
最后的结论是,除了MongoDB、Redis等少数数据库产品外,目前他们使用的大部分数据库的国产化替代都能找到合适的方案,数据库国产化替代工作完全是可行的。可喜的是,在非关系型数据库领域,我们的国产数据库发展的实际是更好的,自主化率也比RDBMS要高出很多。
不过现在对于数据库国产化的观点差异很大,我今天所说也仅仅能够代表一家之言。很多人认为国产数据库产品必须是每一行代码都是原创的,现在基于开源代码搞的数据库产品都不能用于国产化替代,这个观点我是最不认同的。哪怕是Oracle数据库中,都使用了大量的开源代码。
前几年的CPU安全漏洞风波,为什么那么多不同架构的CPU厂商都中招了呢?还不是因为INTEL、IBM和一些ARM CPU厂家都是用的同一个开源代码出了问题。每一行代码都必须自主,仅仅限于一些国家的安全级别极高的领域,如果用到商用数据库领域,那就是在浪费资源了。只要在知识产权上没有瑕疵,充分利用开源代码,是加速我国数据库产业发展非常好的道路。
可能有朋友要说了,你举的CPU的例子不正好说明开源代码不安全吗?开源代码存在安全问题,这个毋庸置疑,但是自研的代码就更安全吗?恐怕也不是吧。