PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Qual é o caminho certo para snyc/importar tabelas de um banco de dados postgres para elasticsearch?


Depende do seu caso de uso. Uma prática comum é lidar com isso na camada de aplicação. Basicamente o que você faz é replicar as ações de um db para o outro. Então, por exemplo, se você salvar uma entrada no postgres, faça o mesmo no elasticsearch.

Se você fizer isso, no entanto, você terá que ter um sistema de filas no local. Ou a fila está integrada na sua camada de aplicação, por exemplo. se o salvamento no elasticsearch falhar, você poderá reproduzir a operação. Além disso, em seu sistema de filas, você implementará um mecanismo de limitação para não sobrecarregar o elasticsearch. Outra abordagem seria enviar eventos para outro aplicativo (por exemplo, logstash etc), para que a limitação e a persistência sejam tratadas por esse sistema e não pelo seu aplicativo.

Outra abordagem seria esta https://www.elastic.co/blog/ plug-in de entrada do logstash-jdbc . Você usa outro sistema que "pesquisa" seu banco de dados e envia as alterações para elasticsearch. Nesse caso, o logstash é ideal, pois faz parte da pilha ELK e possui uma ótima integração. Verifique isso também https://www.elastic. co/guide/en/logstash/current/plugins-inputs-jdbc.html

Outra abordagem é usar o NOTIFY mecanismo do postgres para enviar eventos para alguma fila que tratará de salvar as alterações no elasticsearch.