MongoDB 5.1 Rapid Releaseの概要 #MongoDB #リリース情報 #Rapidrelease
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本ブログは、MongoDB社のブログで2021年11月9日に公開された「Introducing the MongoDB 5.1 Rapid Release」の日本語翻訳です。
MongoDB 5.0の一般提供を開始してからまだ数か月しか経過していませんが、5.1の1回目のRapid Releaseを提供いたします。このリリースでは、ネイティブの時系列の機能を強化し、分析機能の向上を図ると共に、新たなセキュリティオプションも提供しているほか、プラットフォームのレジリエンスと開発者の生産性を総合的に高められるようにしています。また、MongoDB 5.1と共にAtlas Searchの新たな機能も提供します。この機能を活用すれば、高速かつ高機能のアプリケーションサーチ機能を簡単に開発できます。
MongoDBでは、新たなデータベース機能や機能強化をこれまでより速くお客様にお届けできるよう、5.1からリリースの頻度を増やしていきます。MongoDB 5.1とすべての機能に関するRapid Releaseの内容は、MongoDB Atlasで完全にサポートされ、開発リリースとして弊社のダウンロードセンターから入手できます。
ネイティブのタイムサービスの強化
業界では、IoTプラットフォームやリアルタイムの財務分析をはじめとする、データ集約型のユースケースが急激に増加しています。MongoDB 5.0は、時系列のコレクションの最適化、クラスター型のインデックス、ウィンドウ機能により、コストを抑えながら容易かつ高速に、これらのユースケースに対応しています。そして、MongoDB 5.1では、時系列アプリケーションをグローバルに分散できるようになり、さらに環境を簡素化することが可能になっています。
開発スピードの向上
MongoDBのネイティブのシャーディング機能により、時系列のコレクションでは、大量のデータセットの水平分散ができるようになったほか、データの生成元とノードとの連携も可能になり、その結果、ローカルでの書き込み操作がサポートされ、データの主権のコントロールも適用できるようになっています。
一般に、時系列データは均一でないのが普通です。たとえば、センサーがオフラインになれば、読み取ったデータのいくつかは失われます。しかし分析を行い、結果の正確性を維持しようとするならば、データには連続性が求められます。高密度化の処理を行えば、データの欠損に適切に対処できるようになり、時系列アプリや分析機能もすばやく開発でき、開発者の負荷が軽減されます。また、時系列データのコレクションでは、削除の操作もサポートされるようになっています。時系列アプリケーションはそのほとんどがデータを追加することしかできませんが、ユーザーはデータ消去の権限の行使を求めています。削除の操作を可能にしたことで、開発者は最新のデータプライバシーの規制を容易に遵守できるようになりました。
完全なデータライフサイクル
医療センサーのデータであれ、市場の変動を扱うデータであれ、データが時系列であるということは、日々数億のデータポイントが発生することを意味します。ユーザーは、このような膨大な量のデータポイントをすばやく処理して価値の高いインサイトを抽出しなければなりません。一方では、規制を遵守するために完全なデータセットを保持し続ける必要もあります。その期間は数年に及ぶこともあります。しかもこれらすべてを実現するうえでは、コストが大きく増加したり、データの移動が複雑になったりするような状況は避けねばなりません。時系列のデータを扱えるAtlas Online Archiveなら、このようなニーズに適切に対応でき、時系列データのライフサイクル全体をシームレスかつ経済的に管理できます。Atlas Online Archiveは現在、プレビュー版で提供されており、お客様固有のアーカイブポリシーを定義するだけで、Atlasがお客様に代わりすべてのデータの移動を処理してくれます。古くなった時系列データはデータベースから取り出され、コストのかからない、フルマネージド型のクラウドオブジェクトストレージに保存されます。何の削除もされずに時系列データはすべてが保持されるので、ライブデータ同様、いつでも照会が可能であり、長期的なトレンド分析や機械学習のニーズを満たすことができ、コンプライアンス上の用途にも対応できます。オンラインアーカイブの機能は、MongoDB 5.0以降で利用可能です。
時系列のデータをサポートするより広範囲なプラットフォーム
ネイティブの時系列の機能はMongoDBのどのアプリケーションデータプラットフォームでもサポートされており、どのような状況でも時系列データを簡単に処理できます。そして現在では、Atlas Data ExplorerやMongoDB Compass、MongoDB for VS Codeから直接、時系列のコレクションを生成できるようになりました。また、Atlas Chartsでは、データのビン分割やフィルタリングのオプションをサポートしており、値の比較も可能であるため、グラフの作成やダッシュボードでの表示に、Atlasのどの時系列コレクションも利用できるほか、インサイトの共有が簡単であり、さらには、既存のアプリケーションに視覚化の機能を組み込んでより質の高いユーザーエクスペリエンスを実現することもできます。
機能が強化され柔軟性が増したアナリティクスとフルテキストサーチ
多くの開発者が運用のユースケースにMongoDBを利用し始めており、弊社プラットフォームの汎用性を活用して、分析や検索の機能を強化しています。MongoDB 5.1には、データからインサイトを抽出することやユーザーエクスペリエンスを高めることが容易になる新機能や機能強化がいくつもあります。
結合の相互共有とグラフトラバーサル
ほとんどのトランザクションワークロードや運用ワークロードでは、別々のコレクションのデータを結合する必要性がドキュメントデータモデルによって大幅に削減されます。これは、構造化された単一のリッチドキュメントで、サブドキュメントや配列に関連するデータを組み込めるためです。ここでは、「まとめてアクセスする情報はまとめて保存しておくのが最良の方法であることが少なくない」という原則に従っています。
ただし、分析アプリケーションの場合は、結合の実行が必要になることもあります。別々のコレクションから顧客や注文の情報を集約する場合などがこれに該当します。$lookupの集約パイプラインステージを使用すると、個別にデータベースの結合コレクションを利用できます。$graphLookupステージでは、関連するデータのトラバーサルが可能です。「友人の友人」を照会するタイプのクエリを実行することで、データにおいて、パターンを検出したり、これまでに特定できなかったコネクションを明らかにしたりできます。
MongoDB 5.1では、複数のシャードに分散させたデータを$lookupと$graphLookupで結合、分析できるようになりました。これはこれまで提供されていなかった機能です。弊社の設計では、必要に応じて個々のシェードをターゲティングできるので、コードの正確性をよりいっそう高めることができます。一方で開発者が学ぶべき新たな構文は存在しないため、ユーザーはシャーディングについて理解する必要もなければ、クエリの実行でコレクションがシャーディングされていることを知る必要もありません。
運用分析の結果を具体化
$mergeと$outの集約ステージを使用すると、集約パイプラインでの処理の結果を書き出して、新たなコレクションの作成や、オンデマンドのマテリアライズドビューの作成/更新ができます。これらのステージでは、1回1回集約の処理を実行せず、あらかじめ計算した結果を読み出し、また、集約の結果が変わったときには差分だけを書き出すので処理のオーバーヘッドが削減されます。
プライマリのノードにパフォーマンス上の影響が生じるのを避けるため、大量のリソースを必要とする分析のクエリはセカンダリのノードで実行したいと考えるのが普通です。しかし、書き込みの処理はプライマリのノードでしか実行できないため、これまでは、$outや$mergeを含め、集約の処理をセカダリのノードで実行することはできませんでした。
MongoDBの場合、すぐにパイプラインが実行され、セカンダリのノードでクエリが処理されて、書き込みの指示が自動でプライマリのノードに出されます。この結果、コンピューティングの能力を要する分析の処理はセカンダリのノードにオフロードして、作業結果の具体化を続けることができます。次のリリースでは、ドライバーからこの機能にアクセスできます。
複数の切り口でのフルテキストサーチ:現在、パブリックプレビュー版で提供
多面的な検索機能では、カテゴリ別に検索結果をフィルタリングしたり、すばやく切り替えたりできるほか、カテゴリごとの結果の総数も表示でき、ひとめでわかる統計情報にまとめられます。弊社の新たなFacet Operatorでは、多面的な検索やカウントの処理は、Atlas Searchの組み込みのLuceneインデックスに任せ、ローカルで処理を実行するほか、20年以上の実績があるLuceneの最適化機能を利用します。この結果、eコマースの製品カタログやコンテンツライブラリ、カウントなどのワークロードを最大で100倍高速に実行できます。詳細については、Atlas Searchの多面的な検索機能を扱ったこちらのブログ記事をご覧ください。
強化された新たなセキュリティオプション
コンピューティングの秘匿性を高める包括的な暗号化
弊社では、クラウドプロバイダーが提供する鍵管理サービス(KMS)にとどまらず、MongoDB固有のClient-Side Field Level EncryptionでKMIP準拠のKMSをすべてサポートする予定です。この機能は、間もなく提供される新しいバージョンのドライバーでリリースされる予定です。
Client-Side FLEでは、プライバシー管理とセキュリティ管理に関して現在利用できる最も強力な機能のいくつかを提供します。ドキュメント内にある特に機密性の高いフィールドを、アプリケーションを離れる前にMongoDBのドライバーで暗号化することで、移動時や保存状態のときに実施する暗号化だけでは不可能な以下に示す3つの事柄を実現します。
- 利用中のデータも、アーカイブデータベースインスタンスのメモリ内にあるデータも保護されます。データベースはプレーンテキストのデータを確認できませんが、データの照会は暗号化する前と同じく可能です。
- データベースの本来のユーザーに代わってデータベースを実行するユーザーや、基幹のデータベースインフラストラクチャにアクセスするユーザーがデータを読み取れないようにします。具体的には、Atlasサービスを実行するMongoDBのSREや、クラウドプロバイダーの担当者などが対象になります。
- GDPRやCCPAなどの、プライバシーに関する最新の規制で義務付けられている消去の権限を適用するプロセスを簡素化します。この権限は、ときに、データの存在を忘れさせる権限とも呼ばれます。ユーザーのPIIを暗号化した鍵を単に破壊するだけで、メモリ内にあるときや、保存されているとき、バックアップされているとき、ログにあるときに、データの読み取りとリカバリができない状態にするからです。
Google Cloud Private Service Connect
MongoDB Atlasに新たなネットワークセキュリティオプションも追加しました。このオプションでは、Google Private Service Connect(PSC)を利用できます。Private Service Connectでは、Google CloudのネットワークとMongoDB Atlasの間にセキュアなプライベート接続を確立できます。プライベート接続とポリシーの適用の処理をVPCに作成したサービスエンドポイントで行うため、ネットワークのセキュリティを容易に一元管理できます。
VPC PeeringとGoogle Cloud PSCを組み合わせれば、Google Cloudのアプリケーションやサービスを簡単にAtlasと接続できます。
プラットフォームのレジリエンス
信頼性と可用性を高めるコントロール機能をMongoDB 5.1でも引き続き追加しており、現時点では、以下の機能強化を実現しています。
- WiredTigerの内部に多数の変更を加え、バックアップの能力を高めました。具体的には、ピン留めされるチェックポイントの数をバックアップセンサーがオープンのときに最小限に抑えたり、長期間オープンになっているバックアップセンサーの扱いを効率化したりします。これらの機能強化により、運用のオーバーヘッドを減らすと共に、バックアップが行われるレプリカノードでストレージの使用量を抑制します。これらの機能強化は、MongoDB Atlasでバックアップをするときや、Ops ManagerまたはCloud Managerで管理されたセルフホスティング環境でバックアップをするときに利用可能であり、MongoDB 4.2以降にバックポートされています。
- バックアップに関する強化に加え、WiredTigerのチェックポイント機能やロック機能も強化されており、単一のインスタンス内で同時アクティブになっている数多くのコレクションをMongoDBで管理するときにパフォーマンスが向上しています。この機能強化は、MongoDBにマルチテナントのアプリケーションを構築するときに特に有用です。
- ドライバーの次期バージョンでも機能強化を予定しています。Mongoのコントロール機能をサポートすることで、特にフェイルオーバーの発生時に共有クラスターでコネクションデータが大量に発生するのを防ぎます。具体的には、アイドル状態になっていて再利用できる既存のコネクションを持つノードに優先的に接続を行うほか、レプリカセットのメンバー全体でコネクションプールのサイズのマッチングを効率化すると共に、新規コネクションのレートを制限します。また、SRVレコード経由で共有クラスターに接続するときにMongoサーバーを使用しますが、このサーバーの数を制限するメカニズムも追加します。
C#での開発の生産性向上
開発者が容易にデータを照会したり操作したりできるようにすることが、最新のアプリケーションデータプラットフォームのコアのミッションです。C#での開発の場合、LINQ APIが言語とデータベースの間に位置する主要なゲートウェイの役割を果たします。MongoDB 5.1では、LINQインターフェースを完全に再設計したことで、開発者がC#でネイティブに、MongoDBのクエリすべてを記述したり、高度な集約パイプラインを開発したりできるようになったため、MongoDBのC#コミュニティにおける開発者の生産性が向上しています。
MongoDB 5.1を使用する
MongoDB 5.0と5.1の新機能および機能強化の詳細については、MongoDB社の新機能のガイドをご覧ください。
MongoDB 5.1は現時点でご利用いただけます。Atlas Serverlessのインスタンスを実行している場合や、専用のAtlasクラスターでRapid Releasesを受け取ることを選択している場合、環境が本日から自動的に5.1になります。アップグレード直後からの短期間、Feature Compatibility Version(FCV)は5.0に設定されます。FCVが5.1になるまでの期間、5.1の一部の機能は使用できません。また、評価目的で、Development ReleaseのMongoDB 5.1を利用することも可能です。Development Releaseは弊社のダウンロードセンターからのみ入手できます。昨年発表した新しいリリースサイクルの内容に従い、5.1とその後のRapid Releasesで提供するすべての機能は、2022年にリリースを予定している次のメジャーリリース、MongoDB 6.0に組み込まれます。
MongoDB 5.1について、ぜひ皆様のご意見をお聞かせください。次の四半期に提供予定の5.2 Rapid Releaseの新機能についてご説明するときが来るのを心待ちにしています。
免責事項
製品について記載されている機能の開発、リリース、時期については、MongoDBが決定する権利を留保します。この情報は、製品の一般的な方向性を説明することのみを意図した情報であり、購入の意思決定に使用することはお勧めしません。また、マテリアルやコード、機能の提供を約束したり、法的義務にしたりするものでもありません。