1

次のような DBMS を探します。

  1. 箱から出してすぐに水平方向にスケーリングでき、手書きの「接着剤」はまったくまたはほとんどありません
  2. いくつかのインデックスのいずれかでレコードをクエリできます
  3. 保守と拡張が容易です (つまり、新しいサーバーを追加するだけで、DBMS が独自にデータを再配布します)

目標は、再設計し、最終的に現在のソリューション (Oracle RAC ベース) から移行することです。古いソリューションの問題は、Oracle 自体ではなく、設計とコードの品質が低いことです。

私たちのデータについて。ノードとイベントの 2 種類のレコードがあります。どちらも db に追加され、削除されることはありません。約 2e9 ノードと 5e11 イベントがあります。すべてのイベントは 1 つのノードにバインドされます。必要なクエリは次のとおりです。

  1. いくつかのプロパティ n1、n2、n3 によるノードのクエリ
  2. node_id によるノードのクエリ
  3. 時間間隔とそのメイン プロパティ e1 でイベントをクエリする
  4. node_id によるイベントのクエリ

もちろん、新しいノードとイベントを挿入する必要があります。クエリ 1 ~ 4 の数は 1 日に数千であり、それほど増加することはありませんが、すべてのデータにアクセスできる必要があります。1 日あたりの新しいイベントの数は、ノードの数とほぼ同じです。1 日あたりの新しいノードの数は、最大で数百です。

データは挿入後に常に一貫性があり、削除されることはないため、一貫性のためにトランザクションや結合は必要ありません。別の postgres サーバーを使用して (および手動でクエリをディスパッチして) 実装することもできましたが、より良い方法はありますか? 私たちのタスクに適した (SQL または NoSQL) オープンソース データベースを検討します。また、特定の言語に縛られることもありません。優先順位は、適切なクエリ速度を維持しながらスケーリングを容易にすることです。

4

1 に答える 1