Amazon.com如何使用键值数据存储?

时间:2010-01-04 01:23:26

标签: nosql amazon amazon-simpledb

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

select * from book where book_id = n

或者a:

select * from book where author_id = y

如何在没有标准化数据库的情况下构建具有如此多数据和如此多关系的站点/应用程序?

3 个答案:

答案 0 :(得分:6)

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

每项服务都有自己的一套要求和功能。要求包括响应时间和可用性等。在内部,每个服务都使用最适合需要的数据库来实现。关键值商店适用于购物车,因为您永远不需要这样做:

select * from book where book_id = n

在购物车上。

要实现的重要事项之一是可用性在亚马逊规模上发挥的巨大作用。考虑到亚马逊2008年的收入为191.66亿美元。来自亚马逊网站的零售总收入在白天可能超过每秒1000美元(据我所知,在高峰时段可能会增加一倍。它可能是高峰假期购物时的5倍)。想想购物车服务在高峰期使用时间下降3分钟的成本。很明显,损失将是放弃购物车的巨大美元价值。

使用键值存储并不意味着拥有猖獗的数据重复,这意味着重新设计应用程序,以便必要的数据不需要全部放在一个整体数据库中。

亚马逊实际上是一个应用程序平台,而不是其他任何东西。这是video of Amazon's CTO正在讨论的问题。

答案 1 :(得分:5)

答案 2 :(得分:4)

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