【NoSQL数据库四大类型解析】如何选择列族数据库和图形数据库

数据库 其他数据库
在前文中,我们已经介绍了如何选择NoSQL数据库的主要两大类型:键值型数据库和文档型数据库。今天我们继续讨论如何选择另外两大类型:列族数据库(column family database和图形数据库(graph database)。

   编者注:本文内容节选自作家兼独立顾问Dan Sullivan的新作《NoSQL for Mere Mortals》第15章。在本章中,Sullivan介绍了NoSQL数据库的主要四种类型,以及分享哪些应用适合哪种类型的见解。他还讨论了关系型数据库和NoSQL数据库设计的区别,以及这两种技术共同存在的必要性。如有兴趣购买,可登录Informit.com,输入优惠码AWDATA35,即可获得65折优惠。

  在前文中,我们已经介绍了如何选择NoSQL数据库的主要两大类型:键值型数据库和文档型数据库。今天我们继续讨论如何选择另外两大类型:列族数据库(column family database和图形数据库(graph database)。

  如何选择列族数据库(column family database)?

  列族数据库被设计应用于大量数据的情况,它保证了读取和写入的性能和高可用性。谷歌推出Bigtable来应对其服务需求。Facebook开发Cassandra 来支持其收件箱搜索服务。

  这些数据库管理系统运行在多个服务器组成的集群上。如果你的数据量小到能运行在一个服务器上,那么一个列族数据库相对于键-值数据库来说,可能更加符合你的需要。

  列族数据库广泛适用于如下情况:

  那些对数据库写操作能力有着特殊要求的应用程序

  数据在地理上分布于多个数据中心的应用程序

  可以容忍副本中存在短期不一致情况的应用程序

  拥有动态字段的应用程序

  拥有潜在大量数据的应用程序,大到几百TB的数据

  谷歌证实了运行在其计算引擎上的Cassandra数据库的优秀性能。谷歌工程师部署了:

  330个谷歌计算引擎虚拟机

  300个1TB硬盘

  Debian Linux系统

  Datastax Cassandra 2.2 版本

  数据被写入到两个节点

  30个虚拟机生成的30亿条记录,每个记录170字节

  在这个配置中,Cassandra 集群每秒写入100万条,在23毫秒内完成了95%。当三分之一的节点丢失时,100万写操作仍在持续进行,但会有较高的延迟。

  一些领域可以使用这种大数据处理能力,例如:

  用网络流量和日志数据模式进行安全性分析

  大量的科学计算,例如分析基因和蛋白质的生命科学

  使用交易数据进行股票市场分析

  网络应用例如搜索引擎等

  社交网络服务

  键值、文档和列族数据库广泛适用于各种应用。然而,图形数据库,更适合另一个特定类型的问题。

  如何选择图形数据库(graph database)?

  图形数据库非常适合表示网络实体连接等问题。评估图形数据库有效性的一种方法是确定实例和实例间是否存在关系。

  例如,一个电子商务应用程序中的两个订单可能没有相互连接。他们来自同一个客户,但这是一个共享的属性,而不是一个连接。

  同样,一个游戏玩家的配置和游戏状态与其他游戏玩家的配置也没什么关系。这样的实体很容易使用键值型、文档型或者关系型数据库来进行建模。

  现在,考虑讨论中提到的图形数据库应用的例子,如城市间的高速公路连接或者蛋白质和蛋白质相互作用,员工与员工间的工作关系等。所有这些情况都存在着一些类型的连接或者实体包含的两个实例之间的关系等。

  这些问题的类型适用于图形数据库。其他类似问题的例子包括:

  网络和IT基础设施管理

  认证与访问权限管理

  商业流程管理

  产品和服务推荐

  社交网络

  从这些例子中可以看出,当需要模型来明确的实体和实体之间的关系,以及快速遍历路径时,图形数据库将是一个很好的选择。

  大规模图形化处理,例如大型社交网络,可以使用列族数据库存储和检索。图形操作是建立在数据库管理系统之上的。Titan 图形数据库和分析平台采用了这种方法。

  键值型、文档型、列族和图形数据库满足了不同类型的需求。与关系数据库基本上取代其之前的数据库不同,这些NoSQL数据库将继续与关系型数据库共存,因为应用程序越来越多且不同类型的应用程序有不同的数据库需求。

责任编辑:honglu 来源: TechTarget中国
相关推荐

2015-10-22 10:52:34

NoSQL数据库键值型数据库文档型数据库

2021-09-28 09:25:05

NoSQL数据库列式数据库

2024-03-28 09:00:00

NoSQL数据库

2019-07-23 11:41:45

数据库SQLDocker

2013-06-28 11:28:21

Facebook数据库大数据

2018-09-13 14:51:43

NoSQL数据库大数据

2019-08-02 10:00:03

数据库图形数据库

2019-07-08 10:36:34

数据库WebNoSQL

2011-03-04 13:17:33

2024-02-02 10:51:53

2011-09-16 16:01:31

NoSQL

2023-03-05 16:25:38

NoSQL数据库

2019-12-09 12:39:58

数据库技术机器学习

2024-07-09 08:27:30

2011-10-09 09:38:03

OracleNoSQL

2023-03-31 08:00:00

数据库分布式系统

2011-08-02 15:04:49

2019-06-26 07:25:47

NoSQL数据库开发

2020-07-20 08:00:29

数据库

2022-11-14 18:23:06

亚马逊
点赞
收藏

51CTO技术栈公众号