10

我听说亚马逊使用键值数据存储——它不使用传统的关系规范化数据库。作为一个只使用过传统方法的人来说,这是如何工作的?您不需要执行以下操作吗?

select * from book where book_id = n

或者一个:

select * from book where author_id = y

如果没有规范化的数据库,您如何构建具有如此多数据和如此多关系的站点/应用程序?

4

3 回答 3

6

Amazon.com 的架构非常有趣。他们转向了面向服务的架构,如果您查看他们网站上所有不同的内容区域,每个内容区域都由不同的服务提供服务。所以有“愿望清单”服务和“与您查看过的项目相关”服务,以及畅销书服务、购物车服务等。

每个服务都有自己的一组要求和功能。要求包括响应时间和可用性等内容。在内部,每个服务都是使用最适合需求的任何数据库来实现的。键值存储非常适合购物车,因为您永远不需要这样做:

select * from book where book_id = n

在购物车上。

要实现的重要事情之一是可用性在亚马逊规模上发挥的巨大作用。想想亚马逊 2008 年的收入是 191.66 亿美元。Amazon.com 网站的总零售收入在白天可能超过每秒 1000 美元(据我所知,在高峰时段可能是每秒的两倍。在假日购物高峰期可能是 5 倍)。如果购物车服务在高峰使用期间中断 3 分钟,请考虑成本。很明显,遗弃购物车的损失将是巨大的美元价值。

使用键值存储并不意味着接受猖獗的数据重复,它意味着重新设计应用程序,这样必要的数据就不需要全部放在一个单一的数据库中。

亚马逊实际上更像是一个应用程序平台,而不是其他任何东西。这是亚马逊首席技术官的一段视频

于 2010-01-11T15:59:36.090 回答
4

它仅将其Dynamo键值存储用于其购物车并选择其他应用程序。

于 2010-01-04T01:25:45.537 回答