db.collection.getShardDistribution()
定義
db.collection.getShardDistribution()
重要
mongosh メソッド
このページでは、
mongosh
メソッドが文書化されます。これは Node.js などの言語固有のドライバーのドキュメントではありません。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
のシャーディングされたコレクションのデータ分散統計を出力します。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドは、M 0 、M 2 、M 5クラスターではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
getShardDistribution()
メソッドの形式は次のとおりです。
db.collection.getShardDistribution()
出力
注意
MongoDB Shell バージョン 2.3.3 での getShardDistribution()
の動作の変更 :
MongoDB Shell バージョン 2.3.3 以降、
getShardDistribution()
には通常のシャーディングされたデータのみが含まれており、孤立したドキュメントは考慮されません。MongoDB Shell バージョン 2.3.3 より前は、通常のシャーディングされたデータと、削除が保留中の 孤立したドキュメント の両方の
getShardDistribution()
アカウント。コレクションに孤立したドキュメントが含まれている場合、getShardDistribution()
は、コレクションがバランスが取れていないことを示す可能性があります。孤立したデータを含むシャードは、他のシャードと比較してドキュメント数とデータサイズが大きいが、チャンクの数は同じである。
サンプル出力
以下は、シャーディングされたコレクションのディストリビューションのサンプル出力です。
Shard shard01 at shard01/localhost:27018 { data: '38.14MB', docs: 1000003, chunks: 2, 'estimated data per chunk': '19.07B', 'estimated docs per chunk': 500001 } --- Shard shard02 at shard02/localhost:27019 { data: '38.14B', docs: 999999, chunks: 3, 'estimated data per chunk': '12.71B', 'estimated docs per chunk': 333333 } --- Totals { data: '76.29B', docs: 2000002, chunks: 5, 'Shard shard01': [ '50 % data', '50 % docs in cluster', '40B avg obj size on shard' ], 'Shard shard02': [ '49.99 % data', '49.99 % docs in cluster', '40B avg obj size on shard' ] }
出力フィールド
Shard shard01 at <host-a> { data: <size-a>, docs: <count-a>, chunks: <number of chunks-a>, 'estimated data per chunk': <size-a>/<number of chunks-a>, 'estimated docs per chunk': <count-a>/<number of chunks-a> } --- Shard shard02 at <host-b> { data: <size-b>, docs: <count-b>, chunks: <number of chunks-b>, 'estimated data per chunk': <size-b>/<number of chunks-b>, 'estimated docs per chunk': <count-b>/<number of chunks-b> } --- Totals { data: <stats.size>, docs: <stats.count>, chunks: <calc total chunks>, Shard shard01: [ <estDataPercent-a> % data, <estDocPercent-a> % docs in cluster, stats.shards[ <shard-a> ].avgObjSize avg obj size on shard ], Shard shard02: [ <estDataPercent-b> % data, <estDocPercent-b> % docs in cluster, stats.shards[ <shard-b> ].avgObjSize avg obj size on shard ] }
出力情報には、次の内容が表示されます。
<shard-x>
は、シャード名を保持する string です。<host-x>
は、ホスト名を保持する string です。<size-x>
は、測定単位(例:b
、Mb
)。<count-x>
は、シャード内のドキュメント数を報告する数値です。<number of chunks-x>
は、シャード内のチャンクの数を報告する数値です。<size-x>/<number of chunks-x>
は、測定単位(例:b
、Mb
)。<count-x>/<number of chunks-x>
は、シャードのチャンクあたりの推定ドキュメント数を反映する計算値です。<stats.size>
は、測定単位を含む、シャーディングされたコレクション内のデータの合計サイズを報告する値です。<stats.count>
は、シャーディングされたコレクション内のドキュメントの総数を報告する値です。<calc total chunks>
は、すべてのシャードからのチャンク数を報告する計算数値で、以下に例を示します。<calc total chunks> = <number of chunks-a> + <number of chunks-b> <estDataPercent-x>
は、各シャードについて、コレクションの合計データ サイズの割合としてデータ サイズを反映する計算値であり、次の例のようになります。<estDataPercent-x> = <size-x>/<stats.size> <estDocPercent-x>
は、各シャードについて、コレクションの合計ドキュメント数に対する割合としてドキュメント数を反映する計算値であり、次の例は次のとおりです。<estDocPercent-x> = <count-x>/<stats.count> stats.shards[ <shard-x> ].avgObjSize
は、シャードの平均オブジェクト サイズ(測定単位を含む)を反映する数値です。
動作
mongod
Wired Tigerストレージエンジンを使用して を不正にシャットダウンした後、db.collection.getShardDistribution()
によって報告されるカウントとサイズの統計が不正確になる可能性があります。
ドリフトの量は、チェックポイントからクリーン シャットダウンまでの間に実行された挿入、アップデート、または削除操作の数によって異なります。チェックポイントは通常、60 秒ごとに発現します。ただし、デフォルト以外の --syncdelay
設定で実行されている mongod
インスタンスでは、チェックポイントの頻度が増減する可能性があります。
不正なシャットダウン後に統計を復元するには、mongod
の各コレクションに対して validate
を実行します。
不正なシャットダウン後: