私は、新しいエントリを保存する前に、主にIPアドレスで重複したエントリを検索するシステムを実装しようとしています。 NoSQLデータベースは最終的な一貫性を持っているので、これは自然なユースケースのようではありません。それを動作させる方法はありますか?重複した項目を効果的に検出できるNoSQLデータベースはありますか?
答えて
CouchDBは、ドキュメントの_idフィールド内で一意性を強制します。ここからと抜粋http://guide.couchdb.org
CouchDBデータベース内では、各ドキュメントに固有の_idフィールドが必要です。データベースに一意の値が必要な場合は、ドキュメントの_idフィールドに値を代入すれば、CouchDBは一意性を強制します。
ただし、配布されたケースでは、書き込み要求を受け付ける複数のCouchDBノードを実行している場合、ノードごとまたはCouchDB外で一意性が保証されます。 CouchDBでは、2つの異なるIDに2つの同一のIDを書き込むことができます。レプリケーション時に、CouchDBは競合を検出し、それに応じてドキュメントにフラグを立てます。
問題を理解するのを手伝ってくれてありがとう。明確にするために、私のケースでは、 "重複"エントリが複数の固有のフィールドで検出されなければなりません。スペックはまだ完全に書かれていないので、私はまだ情報を収集しています。今では、RDBMSを使用する場合と同様に、重複した検出と書き込みを単一のノードに限定する必要があることがわかりました。 VoltDB(実際はNoSQLではない)では、すべてのノードがデータの同じビューを持っていると思われます。たぶん私はこれのようなものを使用することができますか? – mpso
すべてのリレーショナルデータベースとMongoDBは、重複したデータの挿入を防止するデータテーブル/コレクションのユニークなインデックスをサポートしています...なぜそれで十分ではありませんか?
MongoDBでユニークなインデックスを作成するのは簡単です。重複したエントリを挿入しようとすると、エラーが発生します(セーフモードを有効にしている場合や、挿入操作の結果である を確認している場合)。
特定の状況で重複したエントリが許可されるので、新しいものを保存する前にレコードを検索する必要があります。メインノードに書き込みを制限することでこれを行うことはできますか? – mpso
私はあなたを正しく理解していますか?最初にレコードを読んだ後、重複をチェックしてから書き込みます。重複はIPアドレスでチェックされ、アプリケーション層のロジックによって強制され、IPアドレスで一意性をチェックするので、これらが別個のトランザクションであっても、これは依然として原子的になります...私は地球上のすべてのデータベースがこれをサポートしていると思います。 –
申し訳ありませんが、適切な回答を得るために、より一貫した方法で質問してください。 –
- 1. 複数の合成行キーを効果的にスキャンするためのNoSQLデータベース
- 2. リサイクラービューの各項目に視差効果がありますか?
- 3. Android Spinner重複した項目は、最初に重複した項目の位置のみを返します。
- 4. matplotlibの凡例に重複している項目はありますか?
- 5. Qt:setTextAlignmentはQListWidgetの項目で効果がありません
- 6. JavaFX:ダイアログ内のTableViewに重複した項目があります
- 7. 複数の項目をテキスト項目に重複項目を追加する
- 8. データベースから受信した重複リスト項目を削除する
- 9. PowerShell:アレイから重複した項目を削除します。
- 10. データベースにOpenIDの重複結果があります
- 11. Intellijで重複したコードの検出を無効にすることはできますか?
- 12. DropDownListから複数の項目をTextBoxに選択します。重複はありません
- 13. は、効率的に検出した場合兄弟要素重複
- 14. Mongo $ geo検索結果に重複する結果があります
- 15. 効果的にPythonのCSVから重複を削除する
- 16. リストから重複する項目を削除します
- 17. Meteor Mongo.Cursor#mapに目的の効果がありません
- 18. はすべての重複オブジェクトを検出できますか?
- 19. Firebaseで重複した項目を避ける
- 20. Recyclerviewスクロールの重複項目
- 21. 文字列に重複した項目を見つける
- 22. Eclipseで重複したツールバー項目を隠す
- 23. いくつかの項目の重複する項目を取得する
- 24. リスト項目が重複するのはなぜですか?
- 25. sqliteで項目を追加した後、RecyclerViewに項目がありません
- 26. angularjsの重複した配列項目を削除する
- 27. プログラムの実行中に重複した値を検出する方法はありますか?
- 28. 効果的なデータベースの一括検索
- 29. スクリーニングオーバーセレクタでは、ページ上にあるセレクタ数に重複した項目が表示されます
- 30. 角度は重複した項目を配列内にプッシュすることはできません
すべてのNoSQL DBが最終的な一貫性を持っているわけではありません...どちらを使用していますか? – bdonlan
最終的な整合性は、リレーショナルデータストアにも存在します。たとえば、MySQLのレプリケーションは、常に**最新ではありません**。レプリケーションの遅れがあるのは確かです。議論は明らかにあなたが奴隷ではなく主人公に挿入されていることになるので、遅れは重要ではありません。これはMongoDBのようなDBの場合と同じ答えになります。この場合、最終的な一貫性は読み込みの方が重要です。 –
重複するエントリを定義しますか? – synhershko