web-dev-qa-db-ja.com

他のNoSQLデータベースに関してDynamoDBの長所と短所は何ですか?

HerokuのMongoDBデータベースアドオンをSaaS製品に使用しています。AmazonがクラウドデータベースサービスであるDynamoDBを立ち上げたので、それがNoSQLオファリングのランドスケープをどのように変えるのか疑問に思いましたか?

特にクラウドベースのサービスまたはSaaSベンダーの場合、MongoDBと比較してDynamoDBの使用はどのように改善されますか?コスト、パフォーマンス、スケーラビリティ、信頼性、ドライバー、コミュニティなどの利点はありますか?どちらを使用しますか?

40
rafidude

手始めに、Amazonのエキスパートチームによって完全に管理されるため、エンドユーザー(開発者)からの入力がほとんどなく、非常に適切にスケーリングできることに間違いありません。

また、Amazonによって構築および管理されているため、インフラストラクチャと非常にうまく機能するように設計されているため、パフォーマンスが一流であると想定できます。インフラストラクチャ用に特別に構築されていることに加えて、ストレージとしてSSDを使用することを選択しているため、ディスクスループットは、HDDでサポートされているAWSの他のデータストアよりも大幅に高くなります。

ドライバーはまだ見たことがありませんが、コミュニティがこれにどのように反応するかを説明するには時期尚早だと思いますが、Amazonにはすべての最も人気のある言語のドライバーがあり、コミュニティはこれを十分に受け入れて、次に作成するでしょう。追加のドライバーとツール。

10

MongoDBは、DynamoDBがSaaSホストとしてのみ利用可能)であるため、どこでも(AWSや他のクラウドサービスや社内を含む)インストールできるソフトウェアであることを考慮する必要があると思います。 Amazon(AWS)からのサービス。アプリケーションを社内でホストするオプションを保持する場合、DynamoDBはオプションではありません。AWSの外部でホストすることを検討しない場合は、非常に具体的な機能を除いて、DynamoDBをデフォルトの選択にする必要があります。より高い配慮が必要です。

5
gh02038

次のリンクに、DynamoDBとCassandraの属性をまとめた表があります。

http://www.datastax.com/dev/blog/Amazon-dynamodb

より使いやすくなるためにDynamoDBを改善する必要があるのは、主キー以外の列にインデックスを付ける可能性です。

更新1(2013年6月4日)

2013年4月18日、Amazonはローカルセカンダリインデックスのサポートを発表しました。これにより、DynamoDBが優れたものになりました。

http://aws.Amazon.com/about-aws/whats-new/2013/04/18/Amazon-dynamodb-announces-local-secondary-indexes/

5
barbolo

Herokuのアドオンを通じてMongoDBを使用すると、MongoDBが効果的にSaaS製品にもなります。

実際には、1つの永続化ソリューションを別の永続化ソリューションと比較するのではなく、選択したプロバイダーがAmazonが提供できるサービスと比較してサービスを比較します。

これは非常に難しいことです。各プロバイダーはさまざまな価格でさまざまなレベルのサービスを提供するため、開発目的で独自のハードウェアでローカルに実行するオプションを歓迎するオプションと考えることができます。

5
Tyler Brock

私は正直でなければなりません。新しいDynamoDBについて聞いてとても興奮し、昨日のウェビナーに参加しました。しかし、彼らが言ったすべてがまだ非常にあいまいだったので、現時点で決定を下すことは非常に困難です。私は彼らのサービスを通じて許可/使用される予定の機能を知りません。

私が知っていることの1つは、スケーリングが自動的に処理されることです。これは非常にすばらしいことですが、まだ多くの未知数が存在するため、すべての事実が明らかになり、使用を開始できるようになるまで、実際に優れた分析を行うのは困難です。

これまでのところ、私は今まで取り組んできたプロジェクトにおいて、mongoが(個人的に)私にとってはるかにうまく機能していると考えています。

ほとんどのDBの決定と同様に、ニーズに最も適したものをプロジェクトで決定することで、プロジェクトを決定することができます。

ベータ版であり、最新で最高のものを採用してテスターに​​なるために出荷するつもりはありませんが、今のところ、私は製品に関する詳細情報を心配しています。

3
Petrogad

DynamoDBと他のNoSQLオファリングの主な違いの1つは、プロビジョニングされたスループットです。テーブルの特定のスループットレベルに対して支払い、データが適切にパーティション分割されていれば、常にスループットが満たされると期待できます。したがって、アプリケーションの負荷が増大しても、スケールアップしてパフォーマンスをほぼ一定に保つことができます。

3
Kai G

Amazon DynamoDBは、かなりまともなNoSQLソリューションのようです。それは高速で、かなり使いやすいです。 AWSアカウントを持っていることを除いて、実際にはセットアップやメンテナンスは必要ありません。現在、機能セットとAPIはMongoDB/CouchDB/Cassandraに比べるとかなり小さいですが、開発者コミュニティからのフィードバックを受けて、時間の経過とともに増えると思います。現在、すべての 公式AWS SDK にはDynamoDBクライアントが含まれています。

1
Jeremy Lindblom

長所

  1. 超高速(内部でSSDを使用)
  2. 本当に(本当に)信頼できる。 (書き込み失敗の可能性は低くなります)
  3. シームレスなスケーリング(手動でシャーディングを行う必要はありません)
  4. Webサービスとして機能(サーバーなし、構成なし、インストールなし)
  5. 他のAWS機能と簡単に統合(テーブル全体をS3に保存したり、EMRを使用したりできます)
  6. レプリケーションは内部で管理されるため、データが誤って失われる可能性はほとんどありません。

短所

  1. 非常に(非常に)制限されたクエリ。
  2. スキャンは苦痛です(Javaをスキャンして6時間実行したら、覚えています)
  3. 事前定義されたスループット。つまり、設定されたスループットを超える急激な増加は抑制されます。
  4. テーブルが内部で分割されるため、スループットは分割されます。 (つまり、スループットが1000で、そのパーティションが2つに分割されていて、最新のデータのみ(一部から)を読み取っている場合、読み取りのスループットは500のみです)
  5. 結合なし、制限付きインデックス作成が許可されています(基本的に2)。
  6. ビュー、トリガー、スクリプト、またはストアドプロシージャはありません。

これは、スケーラブルなアプリケーションでのセッションストレージの代替として非常に優れています。もう1つの有効な使用法は、大規模なシステムでのロギング/監査です。頻繁な拡張や変更を伴う機能豊富なアプリケーションには適していません。

0
Rahul Kumar