sql >> データベース >  >> RDS >> PostgreSQL

postgres DBからelasticsearchにテーブルをsnyc/インポートする正しい方法は何ですか?

    ユースケースによって異なります。一般的な方法は、これをアプリケーション層で処理することです。基本的には、あるデータベースのアクションを別のデータベースに複製することです。したがって、たとえば、postgresで1つのエントリを保存する場合、elasticsearchでも同じことを行います。

    ただし、これを行う場合は、キューイングシステムを導入する必要があります。キューはアプリケーション層に統合されています。 elasticsearchでの保存が失敗した場合は、操作を再生できます。さらに、キューイングシステムには、elasticsearchを圧倒しないようにスロットルメカニズムを実装します。別のアプローチは、イベントを別のアプリ(logstashなど)に送信することです。これにより、スロットルと永続性は、アプリケーションではなく、そのシステムによって処理されます。

    別のアプローチは、このhttps://www.elastic.co/blog/です。 logstash-jdbc-input-plugin 。データベースを「ポーリング」し、変更をelasticsearchに送信する別のシステムを使用します。この場合、logstashはELKスタックの一部であり、優れた統合性を備えているため、理想的です。これも確認してください https://www.elastic。 co / guide / en / logstash / current / plugins-inputs-jdbc.html

    もう1つのアプローチは、NOTIFY を使用することです。 Elasticsearchでの変更の保存を処理するキューにイベントを送信するpostgresのメカニズム。



    1. Django python-rq-DatabaseError SSLエラー:復号化に失敗したか、レコードMacが不良です

    2. ストアドプロシージャ全体の説明プランを生成する方法

    3. SQLServerカーソルで複数の値を取得する

    4. 多くの通知を伴う.NETSqlDependencyと高速ポーリング?