Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden von elasticsearch-river-mysql zum Streamen von Daten von der MySQL-Datenbank zu Elasticsearch

Mein Rat ist bereits, zu versuchen, den elasticsearch-jdbc-river zu verwenden aus vielen Gründen.

Einer davon ist der elasticsearch-jbdc-river ist allgemeiner, falls Sie sich entscheiden, RDBMS zu wechseln .

Eine andere ist, dass der jbdc-river wird immer noch gepflegt, wenn die andere seit 2 Jahren nicht mehr gepflegt wird, und Elasticsearch hat sich seitdem stark weiterentwickelt.

1. Soweit ich weiß, werden die Daten von der MySQL-Datenbank zum ES-Cluster gestreamt, der sie automatisch indiziert. Ist das korrekt? Gibt es Zeitüberschreitungen oder Beschränkungen, die ich beachten muss?

Die Daten von MySQL sollten ohne Timeout-Beschränkung automatisch von MySQL zum Elasticsearch-Cluster gestreamt werden, aber der Engpass wird Ihre JVM-Heap-Größe sein. Ich bin mir nicht sicher, wie viel Sie benötigen, um die Menge an Daten zu verarbeiten, die Sie haben. Sie müssen es testen.

2. Wie werden die Fremdschlüsselbeziehungen zwischen den relationalen Datenbanktabellen in ES übersetzt? Wird die Tabellenzeile mit dem Fremdschlüssel zu einem inneren Objekt für ein EU-Dokument oder wird eine andere Beziehung zwischen den EU-Dokumenten verwendet?

Elasticsearch ist schemalos, daher müssen Sie innerhalb von Elasticsearch verwalten . Der Fluss streamt die Daten einfach in Ihren Cluster. Sie können Ihre Zuordnung definieren, wenn Sie Ihren Index erstellen, und dann den Fluss verwenden, um ihn in den ES-Cluster zu streamen.

3. Gibt es irgendwelche Nachteile bei der Nutzung dieses Flusses für den oben genannten Zweck?

Der Fluss wird durch eine andere sauberere Möglichkeit zum Streamen dieser Daten ersetzt, aber dies ist im Moment die beste Lösung, die Sie haben.