10

Amazon はキー値データ ストアを使用していると聞きましたが、従来のリレーショナル正規化データベースは使用していません。従来のアプローチしか使ったことのない者として言えば、これはどのように機能するのでしょうか? 次のことをする必要はありませんか?

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

ショッピングカートに。

認識すべき重要なことの 1 つは、Amazon の規模で可用性が果たす大きな役割です。2008 年の Amazon の収益が 191 億 6,600 万ドルだったとします。Amazon.com サイトからの総小売収入は、日中は 1 秒あたり 1000 ドルを超える可能性があります (私が知る限り、ピーク時間帯の 2 倍になる可能性があります。ホリデー ショッピングのピーク時には 5 倍になる可能性があります)。使用量のピーク時にショッピング カート サービスが 3 分間ダウンした場合のコストを考えてみてください。放棄されたカートの損失が大きな金額になることは明らかです。

キーと値のストアを使用することは、蔓延するデータの重複を受け入れることを意味するのではなく、アプリケーションを再設計することを意味し、必要なデータをすべて 1 つのモノリシック データベースに配置する必要がなくなります。

Amazon は、何よりもアプリケーションのプラットフォームです。これは、Amazon の CTOがまさにそのことについて話しているビデオです。

于 2010-01-11T15:59:36.090 に答える
5

これらのスタック オーバーフローの記事をチェックして、調査を開始することをお勧めします。

Amazon データストアは、 Amazon Web Servicesの一部であるSimpleDBとして一般に提供されています。

また、Google は、 Google App Engine用に、同様の「まばらで分散された多次元ソート マップ」データストアを提供していることにも注意してください。

于 2010-01-04T01:29:17.883 に答える
4

ショッピング カートにDynamoキー値ストアのみを使用し、他のアプリケーションを選択します。

于 2010-01-04T01:25:45.537 に答える