Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di elasticsearch-river-mysql per lo streaming di dati dal database MySQL a Elasticsearch

Il mio consiglio è già di provare a utilizzare elasticsearch-jdbc-river per molte ragioni.

Uno di questi è che il elasticsearch-jbdc-river è più generico nel caso tu decida di cambiare RDBMS .

Un altro è che il jbdc-river è ancora mantenuto quando l'altro non lo è da 2 anni e da allora Elasticsearch si è evoluto molto.

1. Da quello che so, i dati verranno trasmessi in streaming dal database MySQL al cluster ES che lo indicizzerà automaticamente. È corretto? Ci sono timeout o limiti di cui devo essere a conoscenza?

I dati da MySQL dovrebbero essere trasmessi automaticamente da MySQL al cluster Elasticsearch senza limitazioni di timeout, ma il collo di bottiglia sarà la dimensione dell'heap JVM. Non sono sicuro di quanto hai bisogno per elaborare la quantità di dati che hai. Devi provarlo.

2. Come verranno tradotte in ES le relazioni di chiave esterna tra le tabelle del database relazionale? La riga della tabella contenente la chiave esterna diventerà un oggetto interno per un documento ES o verrà utilizzata qualche altra relazione tra i documenti ES?

Elasticsearch è senza schema, quindi è necessario gestire all'interno di Elasticsearch . Il fiume trasmette semplicemente i dati al tuo cluster. Puoi definire la tua mappatura quando crei il tuo indice e quindi utilizzare il fiume per trasmetterlo in streaming al cluster ES.

3. Ci sono degli svantaggi nell'usare questo fiume per lo scopo sopra menzionato?

Il fiume verrà sostituito con un altro modo più pulito per trasmettere questi dati, ma questa è la soluzione migliore che hai per ora.