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

Nosql Amazon.com如何使用键值数据存储?,nosql,amazon,amazon-simpledb,Nosql,Amazon,Amazon Simpledb,我听说Amazon使用键值数据存储—它不使用传统的关系规范化数据库。作为一个只使用传统方法的人来说,这是如何工作的?你不需要做以下的事情吗 从book\u id=n的book中选择* 或: 从作者id=y的书中选择* 如果没有规范化的数据库,你如何构建一个拥有如此多数据和如此多关系的网站/应用程序?它只将其键值存储用于其购物车,并选择其他应用程序。你可能想通过查看以下堆栈溢出文章开始你的研究: Amazon数据存储作为服务的一部分向公众提供 还要注意的是,谷歌为亚马逊网站提供了

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

从book\u id=n的book中选择*

或:

从作者id=y的书中选择*


如果没有规范化的数据库,你如何构建一个拥有如此多数据和如此多关系的网站/应用程序?

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

你可能想通过查看以下堆栈溢出文章开始你的研究:

Amazon数据存储作为服务的一部分向公众提供


还要注意的是,谷歌为亚马逊网站提供了一个类似的“数据存储”。

亚马逊网站的架构非常有趣。他们转向了面向服务的体系结构,如果您查看他们站点上所有不同的内容区域,每个区域都由不同的服务提供服务。所以有一个“愿望清单”服务和一个“与你看过的物品相关”服务,还有畅销书服务、购物车服务等等

每个服务都有自己的一套需求和特性。这些要求包括响应时间和可用性等。在内部,每个服务都使用最适合需要的数据库来实现。key value store适用于购物车,因为您无需执行以下操作:

select * from book where book_id = n
在购物车上

需要认识到的重要事情之一是可用性在亚马逊规模上所起的巨大作用。考虑到亚马逊2008的收入是191亿6600万美元。亚马逊网站的总零售收入在白天可能超过每秒1000美元(据我所知,这可能是高峰期的两倍,可能是假日购物高峰期的5倍)。想想如果购物车服务在高峰使用期间下降3分钟的成本。很明显,在弃置的手推车中,损失将是巨大的美元价值

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


亚马逊实际上更像是一个应用程序平台。这里是一个关于这一点的讨论。

他们真的使用键值存储作为他们的主数据库吗?虽然AmazonWebServices向公众提供SimpleDB(一个键值数据存储),但这并不意味着他们只将其用于其内部需求!