キー値ストアに大規模なリレーショナル データベース スキーマを実装するにはどうすればよいですか?
要件は次のとおりです。
1) ストアド プロシージャや特別なデータベース ベンダー固有の機能は使用しません。
2) 索引を使用する
3) 結合を使用する
4) テーブル内の多くの複雑な型 (VARCHAR、INT、BLOB など)
5) 数十億の記録
6) 全文検索
7) タイムスタンプ付きバックアップが可能
8) トランザクションは不要 (アトミックな単一の行/フィールドの更新のみ)
キー値ストアに大規模なリレーショナル データベース スキーマを実装するにはどうすればよいですか?
要件は次のとおりです。
1) ストアド プロシージャや特別なデータベース ベンダー固有の機能は使用しません。
2) 索引を使用する
3) 結合を使用する
4) テーブル内の多くの複雑な型 (VARCHAR、INT、BLOB など)
5) 数十億の記録
6) 全文検索
7) タイムスタンプ付きバックアップが可能
8) トランザクションは不要 (アトミックな単一の行/フィールドの更新のみ)
本質的には、独自のリレーショナルデータベースシステムを構築する必要があります。これがないと、結合はひどく遅くなります(クエリオプティマイザはありません)。Luceneに接ぎ木することで、全文検索を取得できます。
オープンソースのRDBMS(Derbyなど)を検討しましたか?
多くの場合、Key-Valueストアの要点は、リレーショナルデータベースの制約から逃れることですが、ここに戻したいように思えます。誰もが自分のケーキを食べて食べたいと思っていますが、あなたがここで達成しようとしていることについて私は混乱しています。リレーショナルデータベースの能力が必要な場合は、リレーショナルデータベースを使用する必要があります。
とは言うものの、 MongoDBを見てみることをお勧めします。これは、リレーショナルデータベースの堅固で構造化された性質と、Key-Valueストアのより自由な形式のアプローチとの間の非常に優れた妥協点です。