Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando elasticsearch-river-mysql para transmitir dados do banco de dados MySQL para o Elasticsearch


Meu conselho já é tentar usar o elasticsearch-jdbc-river por muitas razões.

Um deles é que o elasticsearch-jbdc-river é mais genérico caso você decida mudar de RDBMS .

Outra é que o jbdc-river ainda é mantido quando o outro não existe há 2 anos, e o Elasticsearch evoluiu muito desde então.

1. Pelo que sei, os dados serão transmitidos do banco de dados MySQL para o cluster ES, que os indexará automaticamente. Isso é correto? Há algum tempo limite ou limite que eu deva estar ciente?

Os dados do MySQL devem ser transmitidos automaticamente do MySQL para o cluster do Elasticsearch sem limitação de tempo limite, mas o gargalo será o tamanho do heap da JVM. Não tenho certeza de quanto você precisa para processar a quantidade de dados que possui. Você precisa testá-lo.

2. Como as relações de chave estrangeira entre as tabelas do banco de dados relacional serão traduzidas em ES? A linha da tabela contendo a chave estrangeira se tornará um objeto interno para um documento ES ou alguma outra relação entre os documentos ES será usada?

O Elasticsearch não tem esquema, então você precisa gerenciar dentro do Elasticsearch . O rio apenas transmite os dados para seu cluster. Você pode definir seu mapeamento ao criar seu índice e, em seguida, usar o rio para transmiti-lo ao cluster ES.

3. Existem desvantagens em usar este rio para o propósito mencionado acima?

O rio será substituído por outra maneira mais limpa de transmitir esses dados, mas esta é a melhor solução que você tem por enquanto.