sql >> Base de Datos >  >> RDS >> Mysql

Uso de elasticsearch-river-mysql para transmitir datos desde la base de datos MySQL a Elasticsearch

Mi consejo ya es intentar usar elasticsearch-jdbc-river por muchas razones.

Uno de ellos es que el elasticsearch-jbdc-river es más genérico en caso de que decida cambiar RDBMS .

Otra es que el jbdc-river todavía se mantiene cuando el otro no se ha mantenido desde hace 2 años, y Elasticsearch evolucionó mucho desde entonces.

1. Por lo que sé, los datos se transmitirán desde la base de datos MySQL al clúster ES, que los indexará automáticamente. ¿Es eso correcto? ¿Hay algún tiempo de espera o límite que deba tener en cuenta?

Los datos de MySQL deben transmitirse automáticamente desde MySQL al clúster de Elasticsearch sin una limitación de tiempo de espera, pero el cuello de botella será su tamaño de almacenamiento dinámico de JVM. No estoy seguro de cuánto necesita para procesar la cantidad de datos que tiene. Tienes que probarlo.

2. ¿Cómo se traducirán a ES las relaciones de clave externa entre las tablas de bases de datos relacionales? ¿La fila de la tabla que contiene la clave externa se convertirá en un objeto interno para un documento ES o se utilizará alguna otra relación entre los documentos ES?

Elasticsearch no tiene esquemas, por lo que debe administrar dentro de Elasticsearch . El río simplemente transmite los datos a su clúster. Puede definir su mapeo cuando crea su índice y luego usar el río para transmitirlo al clúster ES.

3. ¿Hay alguna desventaja en el uso de este río para el propósito mencionado anteriormente?

El río se reemplazará con otra forma más limpia de transmitir estos datos, pero esta es la mejor solución que tiene por ahora.