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

日期: 2015-10-15 作者:Dan Sullivan翻译:杨宏玉 来源:TechTarget中国 英文

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

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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

编者注:本文内容节选自作家兼独立顾问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数据库将继续与关系型数据库共存,因为应用程序越来越多且不同类型的应用程序有不同的数据库需求。

作者

Dan Sullivan
Dan Sullivan

Dan Sullivan是一名作家、系统架构师和顾问,拥有超过20年关于先进的分析、系统架构、数据库设计、企业安全、商业智能的IT从业经验。他的从业范围广泛,包括金融服务业、制造业、医药、软件开发、政府、零售、天然气和石油生产、发电、生命科学和教育。

翻译

杨宏玉
杨宏玉

TechTarget特邀编辑。北京邮电大学计算机科学与技术专业硕士。熟悉软件开发流程,对系统管理,网络配置,数据库应用等方面有深入的理解和实践经验。现就职于IBM(中国)投资有限公司,从事IBM服务器相关软件的开发工作。业余时间喜欢游泳登山,爱健身,喜欢结交朋友。

相关推荐