如果说数据是科技领域的“石油”,那么数据库就是油井。无论你用哪一个程序,使用哪一个平台,都必须要有一个数据库。 数据库如此重要,以至于各大巨头企业都在抢夺数据库市场。在开源技术领域,数据库已呈疯长之势,我们几乎每周都能看到有一个新的数据库入场。在这种情况下,你有没有想过哪一个数据库会主导这个行业?
数据库发展趋势分析
我们先来看下数据库发展现状。从整个数据库环境来看,专业化是大多数企业的发展方向。我们的数据库要能解决特定的问题,比如可以按照时间序列提供原始数据查询,以及一种基于Lucene的实时搜索方案 。但是对于一些初创企业来说,他们的系统架构可能不适用于这种模式。于是,原生多模型数据库产生。以ArangoDB和Cosmos DB为代表的多模型数据库,得到很多中小企业的热捧。
多模型数据库兼有key/value键/值对、graph图和document文档数据模型,提供了涵盖三种数据模型的统一的数据库查询语言,并允许在单个查询中混合使用三种模型。这种数据库够适用于许多不同的用例,能够小化后台部件,可支持不同数据建模技术(如文档、图表等),有助于企业降低总拥有成本,增加灵活性,进而满足整体技术堆栈需求。
表面看来,多模型数据库几乎是完美的数据库,但是其实这种数据库也有弊端,数据库结构体系更加封闭,不能针对特定的用例进行个性化升级,通用性非常差。由于工作负载的类型不同,我们需要专业的数据库。例如,大多数物联网用例都属于编写密集型。写入时必须具有低延迟能力,读取时要能分离,所以按照时间顺序存储数据并提高查询的性能,是非常有必要的。
所以,到底如何选择一个数据库,谁会统领整个数据库市场,其实很难找到标准答案。但如果我们非要构建一个数据库,那么相对来说,时间序列数据库会是一个佳选择,因为从长远来看,使用多模型数据库终会导致数据迁移出现问题。
关于键值数据库
那么,我们为什么需要键值数据库?这可能是大家都会关心的问题。
大多数数据库基本上都是在键值数据库的基础上建模的。因为键值存储更具灵活性。无论是像MySQL这样的关系数据库,还是像Dgraph这样的图形数据库,都不具备这样的能力。
键值数据库是一种非关系数据库,通过简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为标识符。键和值都可以是从简单对象到复杂复合对象的任何内容。键值数据库是高度可分区的,并且允许以其他类型的数据库无法实现的规模进行水平扩展。比如:用户可以轻松地在键值数据库上创建一个像MongoDB这样的文档数据库,文档的每个字段将映射到惟一一个键。
键值数据库来满足了企业的建模需求。由于它只是在底层设置和操作,因此可以进行大化的性能调优。所以,键值数据库成为体验好的可伸缩数据库之一,一个数据库几乎可以解决所有专业化数据库需求。
但是问题是,为什么键值数据库终没有一统天下?那是因为,对比分布式数据库以及事务型数据库,键值数据库还有很多不具备的功能。
FoundationDB成为后起之秀
FoundationDB,于2009年开发,是一个能在多集群服务器上存放大规模结构化数据的分布式数据库。该数据库系统专注于高性能、高可扩展性、和不错的容错能力。同时,FoundationDB也是一个按词法顺序排列的事务性键值数据库。它完全与ACID兼容,这意味着我们的数据库(数据和索引)将始终处于一致的状态。
2018年4月20日,苹果公司宣布将旗下数据库产品FoundationDB核心开源,这意味着将有越来越多的企业可以按照自己的方式实现更别的数据库建模。但是,不是每个人都有时间或有意愿为数据库建模,这就是FoundationDB具有革命性的地方。
FoundationDB 的做法是将数据模型与存储分离。例如,数据存储并没有内建索引。上一层会提供相应的功能,它通过创建和存储两个键值对来实现索引,一个用于数据,一个用于索引。
小结
FoundationDB将数据库竞争提到一个新水平。我不能说它是完美的数据库,因为它的底层架构还不为人所知。但FoundationDB的确给更多用户多了一层选择,可以在兼具灵活性和更高性能的基础上,让操作变得更加简单。
转载于:http://blog.itpub.net/31545808/viewspace-2565279/