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.