バージョン8.0の新機能。
MongoDB 8.0以降では、 moveCollectionコマンドを使用して、シャーディングされていないコレクションを別のシャードに移動できます。
ユースケース
シャーディングされていないコレクションを任意のシャードに移動すると、次のことが可能になります。
大規模で複雑なワークロードのパフォーマンスを最適化します。
リソース使用率の向上を実現します。
シャード間でデータをより均等に分散します。
次のシナリオを検討してみましょう。
ある会社が、
products、orders、usersなどのシャーディングされていないコレクションをいくつか含むeコマースプラットフォームを単一のシャードで実行しています。ordersコレクションは他のコレクションよりも大幅に大きくなり始めるため、シャードのパフォーマンスの問題が発生します。 クラスター全体のパフォーマンスを向上させ、負荷を分散するために、管理者はmoveCollectionコマンドを使用して、より小さいproductsとusersコレクションを別のシャードに移動できます。グローバルアプリケーションは、1 つのシャード上の正常に実行されないようにすべてのユーザーのシャーディングされていないコレクションにユーザー データを保存します。 ユーザーのレイテンシを軽減するために、管理者はこれらのコレクションを同じクラスター内の各リージョンにあるシャードに移動できます。
アプリケーションは、異なるシャードにあるシャーディングされていないコレクション(
ordersとcustomers)間で頻繁に$lookup操作を実行します。 クエリのパフォーマンスを向上させるために、データベース管理者は両方のコレクションを同じシャードに移動できます。
はじめる
アクセス制御
認証が強制される配置でシャーディングされていないコレクションを移動するには、少なくともenableShardingロールを持つユーザーとして認証する必要があります。