ApsaraDB for MongoDB 6.0 は、Queryable Encryption と Cluster-to-Cluster Sync の2つの新機能を導入し、時系列コレクション、変更ストリーム、集約、クエリ、弾力性、およびセキュリティにターゲットを絞った改善を提供します。
MongoDB 6.0 の完全なリリースノートについては、「MongoDB 6.0 リリースノート」をご参照ください。
MongoDB 6.0 の新機能
| カテゴリ | 機能または領域 |
|---|---|
| 新機能 | Queryable Encryption |
| Cluster-to-Cluster Sync | |
| 最適化 | 時系列コレクション |
| 変更ストリーム | |
| 集約 | |
| クエリ | |
| 弾力性 | |
| セキュリティ |
Queryable Encryption
Queryable Encryption はパブリックプレビューのみで利用可能です。本番環境では使用しないでください。プレビューの詳細については、「MongoDB Releases Queryable Encryption Preview」をご参照ください。
Queryable Encryption を使用すると、クライアントは機密フィールドがデータベースに到達する前に暗号化し、完全にランダム化された暗号文として保存できます。また、暗号化されたデータに対して表現力豊かなクエリを実行でき、プレーンテキストをサーバーに公開することはありません。
仕組み
クライアントは、Key Management Service (KMS) から取得した暗号鍵を保持します。クエリが送信されると、サーバーは暗号化されたデータに対してクエリを処理し、暗号文の応答を返します。その後、クライアントは応答をローカルで復号し、結果をプレーンテキストとして表示します。
提供される機能
クライアント側キー制御 — サーバーではなく、クライアントのみが暗号鍵を保持します。
データライフサイクル全体にわたるエンドツーエンド保護: 送信、ストレージ、使用量、監査、およびバックアップ。
等価性、範囲、プレフィックス、サフィックス、部分文字列クエリを含む、暗号化されたフィールドに対する表現力豊かなクエリ。
アクセス制御 — クライアントレベルで承認されたアプリケーションと、キーアクセス権を持つユーザーのみがプレーンテキストを取得できます。
カスタムのセキュリティおよびコンプライアンス層を構築する必要がない、自己完結型暗号化ソリューション。
機密データを保存したい Alibaba Cloud ユーザーにとってのセキュリティ上の懸念の軽減。
詳細については、「MongoDB Releases Queryable Encryption Preview」をご参照ください。
Cluster-to-Cluster Sync
MongoDB の既存のデータ移動ツール — mongoimport、mongoexport、mongodump、および mongorestore — は、1回限りまたはバッチ転送を処理しますが、稼働中のインスタンス間の継続的なレプリケーションはサポートしていません。
MongoDB 6.0 は、ApsaraDB for MongoDB インスタンス間の継続的な単方向同期のための専用ツールである mongosync を導入します。mongosync を使用すると、同期タスクをリアルタイムで開始、停止、再開、または逆再生でき、同期ステータスを常にモニターできます。
mongosync のダウンロードについては、「Try MongoDB Tools Free」ページの「MongoDB Cluster-to-Cluster Sync Download」セクションをご参照ください。時系列コレクション
時系列コレクションは、MongoDB 5.0 で初めてリリースされ、リリースごとに機能を追加しながら、いくつかのバージョンにわたって進化してきました:
| バージョン | 追加された機能 |
|---|---|
| MongoDB 5.0 | 初期リリース |
| MongoDB 5.1 | データ分散のためのシャーディング |
| MongoDB 5.2 | ストレージ使用量を削減するカラムナ圧縮 |
| MongoDB 5.3 | 欠損データポイントのギャップフィルおよびデータ密化 |
| MongoDB 6.0 | インデックス、クエリパフォーマンス、およびソートの強化 |
MongoDB 6.0 機能強化
セカンダリインデックスおよび結合インデックスが、時系列コレクションに対して作成可能になりました。これにより、読み取りパフォーマンスが向上します。
ジオスペースインデックスがサポートされ、時系列データに対する位置情報および距離に基づくクエリが可能になります。たとえば、冷蔵トラック内の温度変化を追跡したり、貨物輸送ルートに沿った燃料消費量をモニタリングしたりできます。
`last point` クエリが最適化されました:最新のデータポイントをフェッチする際に、コレクション全体のスキャンを実行する必要がなくなりました。
ソート処理がより効率的になりました。メタデータフィールドに対してクラスタリングおよびセカンダリインデックスを活用し、タイムスタンプと組み合わせて使用することで、高速な並べ替えが実現されます。
変更ストリーム
MongoDB 3.6 で導入された変更ストリームは、外部同期ミドルウェアを必要とせずに変更データキャプチャ (CDC) を提供します。この機能は、初回リリース以来大幅に拡張されました。
| バージョン | 追加された機能 |
|---|---|
| MongoDB 3.6 | 初回リリース、コレクションレベルのみ、限定されたイベント、障害復旧、ポストイメージサポート |
| MongoDB 4.0 | データベースレベルおよびインスタンスレベルのサポート、drop、dropDatabase、および rename イベント、resumeToken フォーマットが BinData から Hex |
| MongoDB 4.2 | $set および $unset パイプライン演算子、startAfter オプション、_id フィールド変更時の例外、{readConcern: majority} |
| MongoDB 5.1 | 集約におけるより効率的なステージ実行、リソース利用率の向上 |
| MongoDB 5.3 | チャンク移行中の孤立したドキュメントの更新のサポート |
| MongoDB 6.0 | プリイメージサポート、DDLイベントタイプ、wallTime フィールド |
MongoDB 6.0 の強化点
プリイメージサポート: 変更イベントに、変更前のドキュメントの状態を含めることができるようになりました。MongoDB 6.0 以前は、ポストイメージのみが利用可能でした。詳細については、「Change Streams with Document Pre- and Post-Images」をご参照ください。
DDLイベント: 次の DDL ステートメントが変更イベントとしてキャプチャされるようになりました。
create、createIndexes、modify、およびshardCollection。完全なリストについては、「Change Events」をご参照ください。`wallTime` フィールド: 変更イベントには、ウォールクロック タイムスタンプを含む
wallTimeフィールドが含まれるようになりました。このフィールドでは、$toDate、$tsSeconds、および$tsIncrementの変換演算子がサポートされています。
集約
MongoDB 6.0 は、シャードクラスターインスタンス向けの $lookup と $graphLookup を大幅に拡張します。
シャードクラスターのサポート:
$lookupと$graphLookupは、シャードクラスターインスタンスでサポートされるようになりました。結合サポートの改善:
$lookupの結合動作は、より高性能で一貫性があります。グラフトラバーサルの改善:
$graphLookupは、グラフトラバーサルをより効率的に処理します。パフォーマンス:
$lookupは、最大100倍のパフォーマンス向上を実現します。
詳細については、「$lookup (aggregation)」および「$graphLookup (aggregation)」をご参照ください。
クエリ
MongoDB 6.0 は、次の演算子を追加します。$maxN、$topN、$minN、$bottomN、$lastN、および $sortArray。これらの演算子は、計算をデータベース層にプッシュし、アプリケーションコードで必要な後処理の量を削減します。
完全な演算子リファレンスについては、「Aggregation Pipeline Operators」をご参照ください。
弾力性
デフォルトチャンクサイズが 64 MB から 128 MB に増加
デフォルトチャンクサイズが大きくなったことで、チャンクがシャード間で移行される頻度が減り、ほとんどのワークロードでネットワークおよびルーティングのオーバーヘッドが削減されます。
configureCollectionBalancing コマンド
新しい configureCollectionBalancing コマンドは、次の2つの動作をコレクションごとに制御できます。
カスタムチャンクサイズ: 異なるシャードコレクションに対して異なるチャンクサイズを設定します。たとえば、大規模コレクションには 256 MB を使用し、よりきめ細かなデータ分散が必要な小規模コレクションには 32~64 MB を使用します。
自動最適化: シャードコレクションの自動最適化を有効にし、
compactコマンドを手動で実行してディスク領域を再利用する必要がなくなります。
完全なコマンドリファレンスについては、「configureCollectionBalancing」をご参照ください。
セキュリティ
MongoDB 6.0 は、Client-Side Field Level Encryption (CSFLE) を拡張し、Key Management Interoperability Protocol (KMIP) 準拠のキープロバイダーをサポートします。以前は、CSFLE はローカル Keyfileベースのキー管理に限定されていました。KMIP のサポートにより、組み込みのローカル Keyfile アプローチに加えて、サードパーティのキー管理デバイスを使用できるようになり、これはデータ移行シナリオで特に役立ちます。