Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Was ist der bessere Weg, um Daten aus Oracle/relationalen Tabellen in der elastischen Suche zu indizieren?

Wir verwenden ES als Berichtsdatenbank, und wenn neue Datensätze in SQL geschrieben werden, ergreifen wir die folgenden Maßnahmen, um sie in ES zu bekommen:

  1. Schreiben Sie den Primärschlüssel in eine Warteschlange (wir verwenden rabbitMQ)
  2. Rabbit nimmt den Primärschlüssel (wenn es Zeit hat) und fragt die Beziehungs-DB ab, um die benötigten Informationen zu erhalten, und schreibt dann die Daten in ES

Dieser Prozess funktioniert hervorragend, da er sowohl neue als auch alte Daten verarbeitet. Für alte Daten schreiben Sie einfach ein schnelles Skript, um 300 Millionen Primärschlüssel in Rabbit zu schreiben, und Sie sind fertig!