思考:真正的分布式数据库是否让“数据湖”概念成为历史?


    最近吴宁川一篇《厉害了,蚂蚁金服!创造了中国自己的数据库OceanBase》报道了OceanBase诞生的前因后果。内容非常详实,值得分享。同时自己也分享几点杂想:
    第一,杀熟不仅仅是大数据时代的产物
    之前从某网平台爆出的订购酒店或者是约车出行的杀熟案例。说明大数据时代我们每个人都处于一个小白,随时宰割的状态。
    其实这种现象在各个领域都存在。比如,技术壁垒也是杀熟的条件之一。就像文章中谈到的,王坚在2008年阿里的时候,提出的去IOE行为。就是因为技术壁垒产生的杀熟情况。正常来看,IT采购是一个促进企业效率的工具。但是采购包括向小型机、高端存储、数据库,其采购的越多,成本是呈现几何式增长。其IT采购不在是促进因素,甚至严重的阻碍了企业的发展。
    就像IOE这样的设备在阿里云业务大规模发展过程中,带来的成本越来越高。对于阿里来说,失去了其技术促进生产的原动力。在这样的情况下,蚂蚁金服自主研发的OceanBase数据库。
    第二,真正的分布式数据库诞生,打破了传统的“数据湖”概念。
    何为传统的“数据湖”概念,就是把多个物理上的磁盘看成是虚拟的一个存储单元,OceanBase 团队SQL开发方向负责人陈萌萌的说法是把所有的数据库看到的是同一个数据磁盘、共享数据访问,可以确保所有的数据都可被访问到,但是对硬件要求提出很高的要求,就是底层硬件本身要稳定可靠。可以看到这种理念被绝大多数的传统企业甚至包括互联网企业所接受。
    而阿里打破了这个理念,全球仅有两家企业打破了这个理念,一个是阿里,一个是Google。
    陈萌萌认为目前真正的分布式数据库全球仅有两家,阿里的OceanBase,以及谷歌于2017年2月发布的全部自研的Spanner分布式数据库云服务。
    即使是AWS推出的Aurora数据库,其设计原理更接近于传统数据库的共享磁盘设计。
    具体来讲OceanBase在处理数据访问的时候,相当于把一台原来的小型机或存储设备从纵向“切片”成很多机器,再把数据分布到这些分散在不同的机器上,个人理解应该是把一个整体“数据湖”分成了多个小的“数据池”。
    OceanBase的一个基础设计思想是把每一份数据存放在三台不同的机器上,那么一台PC服务器出故障的概率为千分之一的话,两台同时坏的概率可能就是百万分之一,三台同时坏的概率则是十亿分之一。
    第三,OceanBase分布式数据库是否可以与区块链技术结合?
    首先我们看到王坚提出阿里要建设分布式数据库与中本聪提出的比特币白皮书是同一个时期。这里我们看到,从2009年开始,王坚就在考虑一个真正适应未来互联网业务的分布式数据库。大家可以换个角度看,也是在同一时期,中本聪提出了一种点对点的电子货币系统,其背后采用的区块链(被人们戏称也叫做“有史以来最慢的分布式数据库”)技术。
    不同的是,Oceanbase作为一个商业项目,经过这几年的不断发展,单纯看这个数据库,既实现了分布式的数据存储,又做到了数据库查询优化。在真是应用场景上,相对于传统的银行柜台,人工窗口提供服务花费大量的时间获得服务,蚂蚁金服基于oceanbase提供的互联网金融应用,为用户提供了优质的互联网服务体验。
    所有区块链这种缓慢的分布式数据库技术,可以参考阿里的Oceanbase或者Google的Spanner数据库技术。这样,对于区块链技术的推进有着积极的作用。