MongoDB シャーディング: 例を含むステップバイステップのチュートリアル

シャーディングとは何ですか MongoDB?

シャーディングは次の概念です。 MongoDB、大きなデータ セットを複数の小さなデータ セットに分割します。 MongoDB インスタンス。

場合によっては、その中のデータ MongoDB は非常に巨大になるため、そのような大きなデータ セットに対するクエリでは、サーバーで大量の CPU 使用率が発生する可能性があります。この状況に対処するために、 MongoDB シャーディングの概念があり、基本的にデータセットを複数に分割することです。 MongoDB インスタンス。

サイズが大きくなる可能性のあるコレクションは、実際には、呼び出される複数のコレクションまたはシャードに分割されます。 論理的には、すべてのシャードが XNUMX つのコレクションとして機能します。

シャーディングの実装方法

シャードはクラスタを使用して実装されます。クラスタは、 MongoDB インスタンス。

シャードのコンポーネントには次のものがあります。

  1. 破片 – これは基本的なことであり、これは単なるものではありません MongoDB データのサブセットを保持するインスタンス。運用環境では、すべてのシャードがレプリカ セットの一部である必要があります。
  2. 構成サーバー – これは、クラスターに関するメタデータ、基本的にはシャード データを保持するさまざまな mongodb インスタンスに関する情報を保持する mongodb インスタンスです。
  3. ルーター – これは基本的に、クライアントから送信されたコマンドを適切なサーバーにリダイレクトする役割を担う mongodb インスタンスです。

ステップバイステップのシャーディング Cluster 例

ステップ1) 構成サーバー用に別のデータベースを作成します。

mkdir /data/configdb

ステップ2) mongodb インスタンスを構成モードで起動します。構成サーバーとなる Server D という名前のサーバーがある場合、サーバーを構成サーバーとして構成するには、以下のコマンドを実行する必要があります。

mongod –configdb ServerD: 27019

ステップ3) 構成サーバーを指定して mongos インスタンスを起動します

mongos –configdb ServerD: 27019

ステップ4) mongo シェルから mongo のインスタンスに接続します

mongo –host ServerD –port 27017

ステップ5) クラスタに追加する必要があるサーバーAとサーバーBがある場合は、以下のコマンドを発行します。

sh.addShard("ServerA:27017")
sh.addShard("ServerB:27017")

ステップ6) データベースのシャーディングを有効にします。 したがって、Employeedb データベースをシャーディングする必要がある場合は、以下のコマンドを実行します。

sh.enableSharding(Employeedb)

ステップ7) コレクションのシャーディングを有効にします。 したがって、Employee コレクションをシャーディングする必要がある場合は、以下のコマンドを発行します。

Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})

概要

  • で説明したように チュートリアル, シャーディングは、 MongoDB、大きなデータ セットを複数の小さなデータ セットに分割します。 MongoDB インスタンス。