1 日あたり約 700 万件のレコードを持つ Oracle データベースがあり、MongoDB に切り替えたいと考えています。(~300GB)
POC をセットアップするには、必要なノードの数を知りたいのですが? 2 つのシャードに 3 つのノードの 2 つのレプリカで十分だと思いますが、それについてのあなたの考えを知りたいです :)
HAセットアップをしたいのですが:)
前もって感謝します!
1 日あたり約 700 万件のレコードを持つ Oracle データベースがあり、MongoDB に切り替えたいと考えています。(~300GB)
POC をセットアップするには、必要なノードの数を知りたいのですが? 2 つのシャードに 3 つのノードの 2 つのレプリカで十分だと思いますが、それについてのあなたの考えを知りたいです :)
HAセットアップをしたいのですが:)
前もって感謝します!
MongoDB が効率的に機能するには、ワーキング セットのサイズを知る必要があります。これは、高性能のために RAM に保持する必要があるアクティブなデータです。
また、Mongo に移行する理由をよく確認してください。私は推測しています..あなたの場合、それはスケーラビリティです..しかし、そうする前にあなたのデータをよく知ってください。
POC の場合、2 つのシャードを保持することは、それぞれに約 150 GB を意味します。十分な量のディスクが利用可能であれば問題ありません。
シャーディング キーを検討してください。データ セットを共有するのに適したフィールドはどれですか? これは、デプロイするシャードの数と各シャードの容量の決定に影響します。データを半分または 3 分の 1 に簡単にセグメント化できる場合は、2 つまたは 3 つの大きくて深いシャードを使用するか、より多様なキーでシャードできる場合は、より軽量で薄いシャードをいくつか使用します。
MongoDBレプリカ セット構成からシャードクラスターへのアップグレードは比較的簡単です(各シャードは実際にはレプリカ セットです)。シャーディングが最初に適切なソリューションであると事前に判断するのではなく、シャーディングの理由が何であるかを考えます (たとえば、アプリケーション要件が 1 台のマシンのリソースを超えるかどうか、データ セットのどれだけがアクティブなワーキング セットになるかなど)。クエリなど)。
アーキテクチャと POC の計画の一環として、レプリカ セットから開始し、これをベンチマークすることをお勧めします。
開始するための注意事項:
1.9.2 の時点でデフォルトで有効になっているMongoDB のジャーナリングは、ストレージ エンジンのクラッシュ リカバリと耐久性を提供します。
レプリカ セットは、高可用性、自動フェールオーバー、およびデータ冗長性のための構成要素です。選択によって新しいプライマリへのフェイルオーバーを有効にするには、各レプリカ セットに少なくとも 3 つのノード (たとえば、3 つのデータ ノード、または 2 つのデータ ノードと 1 つのアービター) が必要です。
シャーディングは、データまたは書き込みが単一サーバーのリソースを超えた場合の水平スケーリングに役立ちます。
その他の考慮事項には、アプリケーションの使用状況に基づいたドキュメントの計画が含まれます。たとえば、ドキュメントが頻繁に更新され、時間の経過とともにサイズが大きくなる場合は、ドキュメントの過度の移動を防ぐために手動パディングを検討することができます。
これが初めての MongoDB プロジェクトである場合は、レプリカ セットとMongoDBでのシャーディングに関する FAQ、およびアプリケーション開発者向けの FAQ を必ずお読みください。
ユースケースに適したシャードキーを選択することは重要な考慮事項であることに注意してください。シャード キーの選択を誤ると、データ書き込みの「ホット スポット」が発生したり、大量のデータを削除する場合にシャードのバランスが崩れたりする可能性があります。