sh.addTagRange()
定義
sh.addTagRange(namespace, minimum, maximum, tag)
注意
このメソッドは
sh.updateZoneKeyRange()
のエイリアスになります。 MongoDB は、タグ対応シャーディングの継承としてゾーン シャーディングを提供します。sh.addShardTag()
メソッドを使用して作成されたシャード タグに、一定のシャードキー値を付与します。updateZoneKeyRange
データベースコマンドとそのヘルパーsh.updateZoneKeyRange()
およびsh.addTagRange()
は、シャーディングされていないコレクションまたは存在しないコレクションで実行できます。sh.addTagRange()
以下の引数を取ります。Parameterタイプ説明namespace
stringタグを付けるシャーディングされたコレクションの名前空間。minimum
ドキュメントタグに含めるシャードキー範囲の最小値。 最小値は包括的一致です。<fieldname>:<value>
の形式で最小値を指定します。 この値は、シャードキーと同じ BSON type である必要があります。maximum
ドキュメントタグに含めるシャードキー範囲の最大値。 最大値は排他一致です。<fieldname>:<value>
の形式で最大値を指定します。 この値は、シャードキーと同じ BSON type である必要があります。tag
stringminimum
とmaximum
の引数で指定された範囲を添付するタグの名前。sh.addShardTag()
を使用して、バランサーが指定された範囲内に存在するドキュメントを特定のシャードまたはシャードのセットに移行するようにします。sh.addTagRange()
インスタンスに接続されている場合にのみmongos
を発行します。
動作
限界
ゾーン範囲は、常に下限を含み、上限を含まない範囲です。
空のコレクションまたは存在しないコレクションの初期チャンク分散
空のコレクション、または存在しないコレクションに対して ゾーン シャーディング を実行することを検討している場合は、コレクションをシャーディングする 前に 、sh.addTagRange()
を使用してゾーンとゾーン範囲を作成します。空のコレクションまたは存在しないコレクションにゾーンとゾーン範囲を作成すると、MongoDB はコレクションをシャーディングするときに初期チャンクの作成と分散プロセスを最適化できます。 この最適化されたプロセスにより、シャーディング後にゾーンを作成するよりもバランサーのオーバーヘッドが少なく、ゾーンシャーディングの迅速なセットアップがサポートされます。 バランサーは、最適化された最初のチャンク作成と分散後に、すべてのチャンク管理を実行します。
最初のチャンク分散のゾーンとゾーン範囲の定義の例については、「空または存在しないコレクションのゾーンとゾーン範囲の事前定義 」を参照してください。
複合ハッシュされたシャードキーを使用した初期チャンク分散
MongoDB は、ハッシュされた複合インデックスでのコレクションのシャーディングをサポートしています。 MongoDB は、空のコレクションまたは存在しないコレクションを 複合ハッシュされたシャードキー でシャーディングするときに、最適化された初期チャンクの作成と分散を実行できます。
ハッシュされたフィールドがシャードキーのプレフィックス(つまり、シャードキーの最初のフィールド)である場合、MongoDB が初期チャンクの作成と分散を実行するには、次のすべてが当てはまる必要があります。
コレクションには単一のゾーン範囲があり、すべての下限フィールドには
MinKey
、すべての上限フィールドにはMaxKey
が含まれます。sh.shardCollection()
はpresplitHashedZones: trueオプションを指定します。
ハッシュされたフィールドがシャードキーのプレフィックスではない場合(つまり、シャードキーにハッシュされていない先頭フィールドが 1 つ以上ある場合)、MongoDB が初期チャンクの作成と分散を実行するには、次のすべてが当てはまる必要があります。
コレクションには、個別のプレフィックスフィールド値の組み合わせごとに 1 つのゾーン範囲があります(つまり ハッシュされたフィールドに先行するすべてのフィールド)。
各ゾーン範囲の下限について、ハッシュされたフィールドとそれ以降のすべてのフィールドに
MinKey
を指定します。各ゾーン範囲について、少なくとも 1 つの上限プレフィックス フィールドがその下限のカウンター と 異なる必要があります。
sh.shardCollection()
はpresplitHashedZones: trueオプションを指定します。
複合ハッシュされたシャードキーでの初期チャンク分散のためのゾーンとゾーン範囲の定義のより詳細な例については、「空または存在しないコレクションのゾーンとゾーン範囲の事前定義 」を参照してください。
削除されたコレクション
コレクションを削除すると、それに関連付けられたゾーンやタグの範囲も削除されます。
以前のバージョンでは、MongoDB は削除されたコレクションのタグ関連付けを削除せず、後で同じ名前で新しいコレクションを作成すると、古いタグの関連付けが新しいコレクションに適用されます。
例
シャードキーが{state: 1, zip: 1}
の場合、次の操作では、ニューヨーク州の郵便番号をカバーするタグ範囲が作成されます。
sh.addTagRange( "exampledb.collection", { state: "NY", zip: MinKey }, { state: "NY", zip: MaxKey }, "NY" )