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

Brug af elasticsearch-river-mysql til at streame data fra MySQL-database til Elasticsearch

Mit råd er allerede at prøve at bruge elasticsearch-jdbc-river af mange grunde.

En af dem er, at elasticsearch-jbdc-river er mere generisk, hvis du beslutter dig for at skifte RDBMS .

En anden er, at jbdc-river er stadig vedligeholdt, når den anden ikke har været det siden 2 år, og Elasticsearch har udviklet sig meget siden.

1. Fra hvad jeg ved, vil dataene blive streamet fra MySQL-databasen til ES-klyngen, som automatisk indekserer dem. Er det korrekt? Er der nogen timeouts eller begrænsninger, jeg skal være opmærksom på?

Dataene fra MySQL skal streames automatisk fra MySQL til Elasticsearch-klyngen uden en timeout-begrænsning, men flaskehalsen vil være din JVM Heap Size. Jeg er ikke sikker på, hvor meget du skal bruge for at behandle mængden af ​​data, du har. Du skal teste det.

2. Hvordan vil fremmednøglerelationerne mellem relationsdatabasetabellerne blive oversat til ES? Vil tabelrækken, der indeholder fremmednøglen, blive et indre objekt for et ES-dokument, eller vil en anden relation mellem ES-dokumenterne blive brugt?

Elasticsearch er skemaløst, så du skal administrere Elasticsearch indefra . Floden streamer bare dataene ind i din klynge. Du kan definere din kortlægning, når du opretter dit indeks og derefter bruge floden til at streame det ind i ES-klyngen.

3. Er der nogen ulemper ved at bruge denne flod til ovennævnte formål?

Floden vil blive erstattet med en anden renere måde at streame disse data på, men dette er den bedste løsning, du har lige nu.




  1. Kontroller, om kolonne/nøgle findes?

  2. PL/SQL-samling:Indlejret tabel i Oracle-database

  3. SqlDateTime.MinValue !=DateTime.MinValue, hvorfor?

  4. Bedste måde at implementere et revisionsspor i SQL Server?