$shardedDataDistribution(集計)
定義
$shardedDataDistribution
バージョン 6.0.3 で追加。
シャーディングされたコレクション内のデータの分散に関する情報を返します。
注意
この集計ステージは
mongos
でのみ使用できます。この集計ステージは
admin
データベースで実行する必要があります。 ユーザーにはshardedDataDistribution
特権アクションが必要です。
構文
shardedDataDistribution
ステージの構文は次のとおりです。
db.aggregate( [ { $shardedDataDistribution: { } } ] )
出力フィールド
$shardedDataDistribution
ステージは、 データベース内のシャーディングされた各コレクションのドキュメントの配列を出力します。 これらのドキュメントには、次のフィールドが含まれています。
フィールド名 | データ型 | 説明 |
---|---|---|
ns | string | シャーディングされたコレクションの名前空間。 |
shards | 配列 | 各シャードのデータ配信情報を含む コレクション内の シャード 。 |
shards.numOrphanedDocs | integer | シャード内の 孤立したドキュメント の数。 |
shards.numOwnedDocuments | integer | シャードが所有するドキュメントの数。 |
shards.ownedSizeBytes | integer | 非圧縮時にシャードが所有するドキュメントのサイズ(バイト単位)。 |
shards.orphanedSizeBytes | integer | シャード内の 孤立したドキュメント の非圧縮時のサイズ(バイト単位)。 |
例
すべてのシャーディングされたデータディストリビューションを返す
すべてのシャーディングされたデータ分布のメトリクスを返すには、次のコマンドを実行します。
db.aggregate([ { $shardedDataDistribution: { } } ])
出力例:
[ { "ns": "test.names", "shards": [ { "shardName": "shard-1", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 }, { "shardName": "shard-2", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 } ] } ]
特定のシャードのメトリクスを返す
特定のシャードのシャーディングされたデータ分布のメトリクスを返すには、次のコマンドを実行します。
db.aggregate([ { $shardedDataDistribution: { } }, { $match: { "shards.shardName": "<name of the shard>" } } ])
名前空間のメトリクスを返す
名前空間 のシャーディングされたデータ配信データを返すには、次のコマンドを実行します。
db.aggregate([ { $shardedDataDistribution: { } }, { $match: { "ns": "<database>.<collection>" } } ])
孤立したドキュメントが存在しないことを確認
MongoDB 6.0.3以降、 $shardedDataDistribution
ステージを使用して集計を実行し、孤立したドキュメントが残っていないことを確認します。
db.aggregate([ { $shardedDataDistribution: { } }, { $match: { "ns": "<database>.<collection>" } } ])
$shardedDataDistribution
には、次のような出力があります。
[ { "ns": "test.names", "shards": [ { "shardName": "shard-1", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 }, { "shardName": "shard-2", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 } ] } ]
クラスター内の各シャードで"numOrphanedDocs"
が0
であることを確認します。