ウェブサイト検索

MongoDB 5.0の新機能は何ですか?


MongoDBの最新の主要リリースであるv5.0は、2021年7月13日に発表されました。このドキュメント指向データベースのバージョンでは、新機能や改善が追加され、将来のバージョンのために改訂されたリリースペースも導入されています。

時系列データ

主要な機能追加の一つは、時系列データに対する一級のサポートです。一部の開発者はすでにMongoDBの周りに独自の時系列ツールを構築していますが、時系列データ型がネイティブに利用可能になることで、より多くの人々が始めるのに役立ちます。

「時系列」とは、異なる時間に順番に作成されるデータのことを指します。一般的な使用例には、センサー測定ストリームや取引履歴ログが含まれ、各レコードは特定の瞬間に直接対応しています。

新しい時系列コレクションは、これらの特性を持つデータのために最適化された特別なデータストアを提供します。値は、ディスクに保存される際にユニークなスキーマ構造に圧縮され、より良いインデックス、より効率的なストレージの使用、サーバー負荷の軽減を実現します。時間データの粒度を秒、分、または時間に設定することができます。また、設定した秒数後にデータが自動的に期限切れになるようにすることも可能です。

db.createCollection(

"measurements",

{

timeseries: {

timeField: "timestamp",

granularity: "minutes"

},

expireAfterSeconds: 3600

}

);

上記のスニペットでは、measurementsという名前の時系列コレクションを定義しています。その粒度は分に設定されています。コレクション内のドキュメントは、1時間後に自動的に削除されます。

MongoDB 5.0は、時系列データのクエリおよび操作に対する組み込みサポートも提供しています。独自のコードを最小限に抑えながら、時間に基づく移動平均を抽出し、時間的傾向を追跡できます。

db.measurements.aggregate([

{

$project: {

date: {

$dateToParts: {date: "$timestamp"}

}

},

$group: {

_id: {

time: {

hour: "$date.hour",

minute: "$date.minute"

}

},

averageMeasurement: {$avg: "measurement"}

}

}

]);

タイムスタンプと測定値のフィールドを持つ時系列コレクションがあると仮定すると、上記の集約コマンドは次のような出力を生成します:

{

"_id": {

"time": {

"hour": 12,

"month": 30

},

"averageMeasurement": 1.5

},

"_id": {

"time": {

"hour": 12,

"month": 45

},

"averageMeasurement": 2.7

}

}

レコードは、プロジェクションを使用してタイムスタンプによってグループ化されます。各グループのmeasurement値は、averageMeasurementフィールドに平均化されます。

ライブリシャーディング

MongoDBを横にスケールさせる上での最大の課題の一つは、シャーディングのアプローチでした。適切なシャードキーを選ぶことは、クラスタのパフォーマンスにとって極めて重要ですが、以前は一方向の操作でした。一度キーを設定すると、それを変更することはできず、初日の間違った決定に対して無力な状態になってしまいました。MongoDB自身もシャードキーの選択を「一方向のパラシュートジャンプ」と表現し、新しいクラスタを作成することで最もよく解決できると述べています。

MongoDB 5.0は、シャードキーの悪夢にようやく終止符を打ちます。もし間違ったシャードキーを設定してしまった場合でも、新しいシャードキーを使ってコレクションを再インデックスすることができます。MongoDBは、データベースのダウンタイムを引き起こすことなく、全体の移行を処理してくれます。これにより、不適切なシャード構成によって引き起こされるパフォーマンスの低下から逃れるのがずっと容易になります。

バージョン管理とリリース

MongoDB 5.0は、将来への対応強化をもたらします。このデータベースは、バージョン管理されたAPIを獲得しており、最新のリリースにアップグレードする際に破壊的な変更を避けることができます。

アプリのコードを変更することなく、将来のバージョンにアップデートできるようになります。新しいリリースがターゲットとするAPIバージョンをサポートしていれば、すべてはシームレスに動作します。これは、アプリケーションが基盤となるデータベースのバージョンからより切り離されていることを意味し、壊れたコードのリスクを冒さずに新しいMongoDBバージョンに早くアップグレードできます。

この変更に伴い、新しいリリーススケジュールが導入されます。MongoDBは今後のバージョンをより迅速に出荷し、毎四半期に「迅速リリース」が行われます。これらは互換性のない変更がないマイナーセマンティックバージョンであり、加速されたサイクルで新機能を提供します。毎年、新しいメジャーリリースが登場し、迅速リリースをまとめ、潜在的に後方互換性に影響を与える可能性があります。

新しいリリースモデルでは、MongoDBの全体的な安定性に影響を与えることなく、新機能により迅速にアクセスできます。毎四半期ごとにアップグレードしたくない場合は、主要なリリースブランチに留まり、年間のサイクルを維持できます。迅速なリリースは、MongoDBの管理されたAtlasサービスでのみ公式にサポートされます。自己ホストのユーザー向けには、オプションの開発ビルドとして利用可能です。

サーバーレスMongoDB

MongoDBはまた、新しいサーバーレスAtlasインスタンスのプレビューを発表しました。Atlasは、人気のあるクラウドプラットフォーム向けの同社の公式データベース・アズ・ア・サービスの提供です。

サーバーレスデプロイメントを利用すると、現在の作業負荷に対して正しいリソースが自動的にプロビジョニングされます。プラットフォームは変化する需要に自動的に適応するため、インフラストラクチャを手動でスケールする必要はありません。使用した分だけが請求されます。

Serverless AtlasはMongoDBによって管理されています。最新のデータベースリリースバージョンを使用しており、自動アップグレードのサポートがあります。サーバーレスインスタンスを作成することで、設定を自分で行うことなく新しいMongoDBクラスターにアクセスできます。クラウドプロバイダーを選択し、新しいデータベースを作成し、アプリケーションから接続します。

要約

MongoDB 5.0 は、データベースに多様性を高めるさらなる機能を追加します。また、サーバーレスオプションを含むさまざまなマネージドソリューションで利用できるクラウドネイティブプラットフォームとしての地位を確固たるものにします。

見出しの変更に加えて、エコシステムの改善や強化が豊富にあります。新しいMongoDBシェルは、構文ハイライトとオートコンプリートを提供することで、デベロッパーがデータベースとより簡単にやり取りできるようにします。また、新しいSDKも、MongoDBとUnity、Flutter、Kotlinなどの多くのプログラミング言語やフレームワークとの統合を支援します。

セキュリティの面では、クライアントサイドのフィールドレベルの暗号化の拡張サポートにより、マルチクラウドデータベースに存在するデータを暗号化できます。証明書のローテーションの改善により、ダウンタイムなしでx509の交換が可能になり、日常的なハードニング手順の影響を軽減します。

MongoDB 5.0は、Atlas、公共クラウドプロバイダー、自己ホスト型のオープンソースソリューションとして現在利用可能です。Amazon Linux、Debian、RedHat、SUSE、Ubuntu、Windowsの公式パッケージが用意されており、コンテナ化された環境用のDockerイメージもあります。

関連記事: