sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvad er den rigtige måde at snyde/importere tabeller fra en postgres DB til elasticsearch?

Det afhænger af din use case. En almindelig praksis er at håndtere dette på applikationslaget. Grundlæggende er det, du gør, at kopiere handlingerne fra den ene db til den anden. Så hvis du for eksempel gemmer en post i postgres, gør du det samme i elasticsearch.

Hvis du dog gør dette, skal du have et køsystem på plads. Enten er køen integreret på dit applikationslag, f.eks. hvis lagringen i elasticsearch mislykkes, kan du afspille operationen igen. Desuden vil du på dit køsystem implementere en drosselmekanisme for ikke at overvælde elastisk søgning. En anden tilgang ville være at sende hændelser til en anden app (f.eks. logstash osv.), så reguleringen og persistensen vil blive håndteret af det system og ikke din applikation.

En anden tilgang ville være denne https://www.elastic.co/blog/ logstash-jdbc-input-plugin . Du bruger et andet system, der "poller" din database og sender ændringerne til elasticsearch. I dette tilfælde er logstash ideel, da det er en del af ELK-stakken, og det har en fantastisk integration. Tjek også dette https://www.elastic. co/guide/da/logstash/current/plugins-inputs-jdbc.html

En anden tilgang er at bruge NOTIFY mekanisme for postgres til at sende begivenheder til en kø, der håndterer at gemme ændringerne i elasticsearch.



  1. Unix-socket-forbindelse til MySql med Java for at undgå JDBC's TCP/IP-overhead?

  2. Sådan begrænser du en kolonneværdi i SQLite / MySQL

  3. Udtræk af rækker fra en DB inklusive afhængige rækker

  4. Sådan sammenlignes to felter i laravel og postgres