Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation d'elasticsearch-river-mysql pour diffuser des données de la base de données MySQL vers Elasticsearch

Mon conseil est déjà d'essayer d'utiliser le elasticsearch-jdbc-river pour de nombreuses raisons.

L'un d'eux est que le elasticsearch-jbdc-river est plus générique au cas où vous décidez de changer de RDBMS .

Une autre est que le jbdc-river est toujours maintenu alors que l'autre ne l'est plus depuis 2 ans, et Elasticsearch a beaucoup évolué depuis.

1. D'après ce que je sais, les données seront transmises de la base de données MySQL au cluster ES qui les indexera automatiquement. Est-ce exact? Y a-t-il des délais d'attente ou des limites dont je dois être conscient ?

Les données de MySQL doivent être diffusées automatiquement de MySQL vers le cluster Elasticsearch sans limitation de délai, mais le goulot d'étranglement sera votre taille de tas JVM. Je ne sais pas de combien avez-vous besoin pour traiter la quantité de données dont vous disposez. Vous devez le tester.

2. Comment les relations de clé étrangère entre les tables de la base de données relationnelle seront-elles traduites en ES ? La ligne du tableau contenant la clé étrangère deviendra-t-elle un objet interne pour un document ES ou une autre relation entre les documents ES sera-t-elle utilisée ?

Elasticsearch est sans schéma, vous devez donc gérer à l'intérieur d'Elasticsearch . La rivière diffuse simplement les données dans votre cluster. Vous pouvez définir votre mappage lorsque vous créez votre index, puis utiliser la rivière pour le diffuser dans le cluster ES.

3. Y a-t-il des inconvénients à utiliser cette rivière dans le but mentionné ci-dessus ?

La rivière sera remplacée par un autre moyen plus propre de diffuser ces données, mais c'est la meilleure solution que vous ayez pour l'instant.