ユースケースによって異なります。一般的な方法は、これをアプリケーション層で処理することです。基本的には、あるデータベースのアクションを別のデータベースに複製することです。したがって、たとえば、postgresで1つのエントリを保存する場合、elasticsearchでも同じことを行います。
ただし、これを行う場合は、キューイングシステムを導入する必要があります。キューはアプリケーション層に統合されています。 elasticsearchでの保存が失敗した場合は、操作を再生できます。さらに、キューイングシステムには、elasticsearchを圧倒しないようにスロットルメカニズムを実装します。別のアプローチは、イベントを別のアプリ(logstashなど)に送信することです。これにより、スロットルと永続性は、アプリケーションではなく、そのシステムによって処理されます。
別のアプローチは、このhttps://www.elastic.co/blog/です。 logstash-jdbc-input-plugin
。データベースを「ポーリング」し、変更をelasticsearchに送信する別のシステムを使用します。この場合、logstashはELKスタックの一部であり、優れた統合性を備えているため、理想的です。これも確認してください
もう1つのアプローチは、NOTIFY を使用することです。 Elasticsearchでの変更の保存を処理するキューにイベントを送信するpostgresのメカニズム。