sql >> Database >  >> RDS >> Mysql

Elasticsearch-river-mysql gebruiken om gegevens van MySQL-database naar Elasticsearch te streamen

Mijn advies is al om te proberen de elasticsearch-jdbc-river te gebruiken om vele redenen.

Een daarvan is dat de elasticsearch-jbdc-river is meer algemeen voor het geval u besluit RDBMS te veranderen .

Een andere is dat de jbdc-river wordt nog steeds onderhouden als de andere sinds 2 jaar niet meer is geweest, en Elasticsearch is sindsdien veel geëvolueerd.

1. Voor zover ik weet, worden de gegevens gestreamd van de MySQL-database naar het ES-cluster, dat deze automatisch zal indexeren. Is dat correct? Zijn er time-outs of limieten waar ik op moet letten?

De gegevens van MySQL zouden automatisch van MySQL naar het Elasticsearch-cluster moeten worden gestreamd zonder een time-outbeperking, maar het knelpunt is uw JVM-heapgrootte. Ik weet niet zeker hoeveel je nodig hebt om de hoeveelheid gegevens die je hebt te verwerken. Je moet het testen.

2. Hoe worden de externe-sleutelrelaties tussen de relationele databasetabellen vertaald naar ES? Wordt de tabelrij met de externe sleutel een innerlijk object voor een ES-document of wordt er een andere relatie tussen de ES-documenten gebruikt?

Elasticsearch is schemaloos, dus u moet in Elasticsearch beheren . De rivier streamt de gegevens gewoon naar uw cluster. U kunt uw mapping definiëren wanneer u uw index maakt en vervolgens de rivier gebruikt om deze naar het ES-cluster te streamen.

3. Zijn er nadelen aan het gebruik van deze rivier voor het bovengenoemde doel?

De rivier zal worden vervangen door een andere, schonere manier om deze gegevens te streamen, maar dit is de beste oplossing die je nu hebt.




  1. MySQL Group_Concat Herhalende waarden

  2. Voeg meerdere e-mail toe aan mysql met behulp van een enkel tekstgebied

  3. Kan metagegevens niet ophalen

  4. Geen enkele functie komt overeen met de opgegeven naam en argumenttypes