7

より多くのデータを保持するために変更する必要があるリレーショナルデータベース上のアプリケーションがあります。私の問題は、2つのテーブルだけがより多くのデータ(最大数十億のエントリ)を格納し、1つのテーブルがfkによって他のテーブルに「リンク」されることです。これらのテーブルのリレーショナルモデルをあきらめることができます。残りのデータベースをそのままにして、これら2つのテーブルのみを変更したいと思います。また、これらのテーブルに対して、単純な選択からgroup byやサブクエリまで、多くのクエリを実行しているため、さらに多くの問題が発生します。

私のNoSQLの経験は限られているので、その兄弟のどれが私のニーズに合っているかを尋ねています。-巨大なデータ-複雑なクエリ-SQLデータベースとの統合。これは最初の2つほど重要ではなく、価値がある場合は、データベース全体を同等のものに移行できます。

ありがとう

4

1 に答える 1

3

リレーショナル データベースと NoSQL アプローチの両方で、数十億のデータ ポイントを持つデータを処理できます。提供された情報では、有意義で具体的な推奨事項を作成することは困難です。データを使って何をしようとしているのか、ハードウェアやネットワーク トポロジーに関してどのような選択肢があるのか​​などについて、もっと知っておくと役に立ちます。

あなたは現在リレーショナル データベースを使用しているので、クエリのパフォーマンスが満足のいくものになるように、大規模なテーブルをパーティショニングまたはその他の方法で構造化することを既に検討していると思います。このアクティビティ自体は簡単ではありませんが、最適化された SQL を使用した優れたデータベース設計により、代替手段を検討する明確な必要性が明らかになるまでに、非常に長い道のりが必要になる可能性があります。

ただし、データの使用方法が 1 回書き込み、頻繁に読み取られ、結合の依存関係が管理可能であり、データ セットに対していくつかの集計を実行する必要がある場合は、Hadoop や MongoDB などの代替アプローチを検討し始める可能性がありますが、これらの選択肢は異なります。パフォーマンス、機能、プラットフォーム要件、遅延などの点でトレードオフが伴います。クエリ レベルでの NoSQL リポジトリと SQL データベースの統合に関する特定の質問は、2 つの間のデータの重複がなければ実現できない可能性があります。たとえば、MongoDB は結合 (http://stackoverflow.com/questions/4067197/mongodb-and-joins) を好まないため、それを念頭に置いて永続化モデルを設計する必要があり、これにはデータの重複が含まれる場合があります。

私が言おうとしている点は、「正しい」アプローチを特定することは、特定の目標と制約に依存するということです。

于 2012-11-25T20:56:09.563 に答える