云数据库技术

大跌眼镜,Oracle要兼容MongoDB了

市场的规则,往往是弱者去适配强者的规则,但是最近在Oracle CloudWorld发布的Oracle23c Beta版本,其中有一项特性是全面支持JSON数据模型,并且大力宣传 兼容MongoDB接口 。Oracle模拟了MongoDB的语法和协议,让MongoDB的应用程序、开发工具、驱动和框架都可以无缝迁移,这个着实让人大跌眼镜。

Oracle数据库在行业内有着非常强的领导力,包括独步天下的Oracle RAC、Exadata、近乎完美的堆表模型+MVCC事务引擎和强大的优化器都是同行奋力追赶的目标,在云计算时代Oracle大力发展多租户模型、自动驾驶和In-Memory Column Store等能力,也是极具领先型。 MongoDB是数据库市场的后来者,经过十余年的发展,成为了NoSQL文档数据库领域的领导者。 MongoDB在文档模型领域已经占领了市场心智,而 Oracle的产品定位也很难改变,要获取MongoDB的客户几乎没有可能,即使完全语法兼容也并不能转化 。 想想由于Oracle在企业级市场的老大地位,今天很多的后来者都是在追求极致的Oracle兼容性,如EDB、达梦、OceanBase等等,近十年由于开源数据库和云计算的冲击,Oracle在互联网和云计算都让人感觉力不从心,今天Oracle自家竟然沦落到去兼容MongoDB接口,总有种 虎落平阳 的感觉,对于Oracle这头巨兽来说,“云和开源”就是Oracle的“平阳”。 行业巨头要去兼容一个还没有定义标准的行业生态产品,实在是不太好的迹象。但可以感受到今天Oracle在市场竞争中的四面楚歌和八面埋伏。

记得曾经IBM DB2因为要和Oracle市场竞争,也推出过兼容Oracle语法的特性,但最终收效甚微,还拖慢了IBM DB2自己创新的步伐。 如果你只想拿走现有部分市场份额,在没有绝对创新能力的情况下,也许做产品兼容性是ROI更优的市场打法。但对于一家有足够信心引领未来创新的企业,出于开发者生态考虑,应该优先支持国际标准,而不要花大力气去追求与其他产品的极致兼容性。为了短期的拓展市场而阻碍产品的长期发展步伐,这个很危险的决策。 尤其是对于已经非常复杂的API接口,为了承诺100%兼容性的工作很可能让你的产品设计总是在各种纠结,给自己太多的包袱是很难创新的。 我们可以看到,当前MySQL、PostgreSQL、MongoDB、SQL Server、Redis、Snowflake、Spark这些引领行业的产品更多是兼容国际SQL标准,而不是宣传说100%兼容某个市场产品。 有个例外,就是如果B产品是在A产品基础上研发,那宣传B完全兼容A是很好的市场策略。比如AWS Aurora兼容MySQL,华为GuassDB兼容PostgreSQL等案例。 甲方企业也不要过于关注数据库语法兼容性,应该预留资源做兼容性测试和改造 ,否则这必将让提供数据库的厂商花费很多资源用于过时甚至是错误特性的兼容性研发,阻碍行业的发展步伐。