sql >> データベース >  >> NoSQL >> MongoDB

MongoDBのchangeStreamとテーラブルカーソルの違いは何ですか

    ストリームの変更 (MongoDB v3.6 +で利用可能)は、 oplog 。変更ストリームの主なメリット oplogのテーリングは次のとおりです。

    1. 組み込みのMongoDBロールベースのアクセス制御 を利用します 。アプリケーションは、読んだコレクションに対してのみ変更ストリームを開くことができます。 へのアクセス。洗練された特定の承認。

    2. 信頼できる明確に定義されたAPIを提供します。 イベントの変更 変更ストリームによって返される出力は、十分に文書化されています。また、すべての公式のMongoDBドライバー 同じ仕様 に従ってください 変更ストリームインターフェイスを実装する場合。

    3. 変更ストリームの一部として返される変更イベントは、少なくともレプリカセットの大部分にコミットされます。これは、クライアントに送信される変更イベントが永続的であることを意味します。アプリケーションは、フェイルオーバーの際にデータのロールバックを処理する必要はありません。

    4. グローバル論理クロックを利用して、シャード全体の変更の全体的な順序を提供します。 MongoDBは、変更の順序が保持され、変更イベントが受信した順序で安全に解釈できることを保証します。たとえば、3シャードシャードクラスターに対して開かれた変更ストリームカーソルは、3つのシャードすべてにわたる変更の合計順序に関する変更イベントを返します。

    5. 順序付けの特性により、変更ストリームも本質的に再開可能です。 _id イベント出力の変更 履歴書トークンです。 MongoDBの公式ドライバーは、この再開トークンを自動的にキャッシュします。ネットワークの一時的なエラーが発生した場合、ドライバーは1回再試行します。さらに、アプリケーションは、パラメーターresume_afterを使用して手動で再開することもできます。 。 変更ストリームを再開する も参照してください。 。

    6. MongoDBアグリゲーションパイプライン を利用する 。アプリケーションは、変更イベントの出力を変更できます。現在、イベント出力を変更するために使用できる5つのパイプラインステージがあります。たとえば、変更イベントの出力は、$matchステージ変更ストリーム出力の変更 を参照してください 詳細については。

    MongoDBデプロイメントがバージョン3.6以降の場合は、oplogのテーリングよりもMongoDB変更ストリームを利用することをお勧めします。

    StreamsProductionの推奨事項の変更 もあります。 便利なリソース。



    1. MongoDBカスタムソート

    2. 冗談でマングースモデルをあざける

    3. MongoDB findAndModify()

    4. シャーディングされたmongoDBをアップグレードしたり、バランサーを停止したりすることはできません