Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$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
シャード内の 孤立したドキュメント の非圧縮時のサイズ(バイト単位)。

MongoDB 以降、 は、プライマリシャードに8.0 $shardedDataDistributionチャンク または 孤立したドキュメント がある場合にのみ、コレクションの プライマリシャード の出力を返します。

Wired Tigerストレージエンジンを使用してmongod を不正にシャットダウンした後、$shardedDataDistribution によって報告されるサイズとカウントの統計が不正確になる可能性があります。

ドリフトの量は、チェックポイントからクリーン シャットダウンまでの間に実行された挿入、アップデート、または削除操作の数によって異なります。チェックポイントは通常、60 秒ごとに発現します。ただし、デフォルト以外の --syncdelay 設定で実行されている mongod インスタンスでは、チェックポイントの頻度が増減する可能性があります。

不正なシャットダウン後に統計を復元するには、mongod の各コレクションに対して validate を実行します。

不正なシャットダウン後:

  • validate は、collStats 出力カウント統計 を最新の値でアップデートします。

  • collStats 出力で挿入または削除されたドキュメントの数などのその他の統計は推定値です。

すべてのシャーディングされたデータ分布のメトリクスを返すには、次のコマンドを実行します。

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であることを確認します。

戻る

$setWindowFields