sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cuál es la forma correcta de sincronizar/importar tablas desde una base de datos postgres a elasticsearch?

Depende de su caso de uso. Una práctica común es manejar esto en la capa de aplicación. Básicamente, lo que haces es replicar las acciones de un db al otro. Entonces, por ejemplo, si guarda una entrada en postgres, hace lo mismo en elasticsearch.

Sin embargo, si hace esto, tendrá que tener un sistema de colas en su lugar. O la cola está integrada en su capa de aplicación, p. si falla el guardado en elasticsearch, puede reproducir la operación. Además, en su sistema de colas, implementará un mecanismo de limitación para no abrumar a Elasticsearch. Otro enfoque sería enviar eventos a otra aplicación (p. ej., logstash, etc.), de modo que la regulación y la persistencia sean manejadas por ese sistema y no por su aplicación.

Otro enfoque sería este https://www.elastic.co/blog/ logstash-jdbc-complemento de entrada . Utiliza otro sistema que "sondea" su base de datos y envía los cambios a elasticsearch. En este caso, logstash es ideal ya que es parte de la pila ELK y tiene una gran integración. Compruebe esto también https://www.elastic. co/guide/en/logstash/current/plugins-inputs-jdbc.html

Otro enfoque es usar NOTIFY mecanismo de postgres para enviar eventos a alguna cola que se encargará de guardar los cambios en elasticsearch.