Radzę już spróbować użyć elasticsearch-jdbc-river z wielu powodów.
Jednym z nich jest to, że elasticsearch-jbdc-river
jest bardziej ogólny w przypadku, gdy zdecydujesz się zmienić RDBMS .
Innym jest to, że jbdc-river
jest nadal utrzymywany, gdy drugi nie był używany od 2 lat, i od tego czasu Elasticsearch bardzo się rozwinął.
1. Z tego co wiem, dane będą przesyłane strumieniowo z bazy danych MySQL do klastra ES, który będzie je automatycznie indeksował. Czy to jest poprawne? Czy są jakieś limity czasu lub limity, o których muszę wiedzieć?
Dane z MySQL powinny być automatycznie przesyłane strumieniowo z MySQL do klastra Elasticsearch bez limitu czasu, ale wąskim gardłem będzie rozmiar sterty JVM. Nie jestem pewien, ile potrzebujesz do przetworzenia ilości danych, które posiadasz. Musisz to przetestować.
2. Jak relacje kluczy obcych między tabelami relacyjnej bazy danych zostaną przetłumaczone na ES? Czy wiersz tabeli zawierający klucz obcy stanie się obiektem wewnętrznym dla dokumentu ES, czy też zostanie użyta inna relacja między dokumentami ES?
Elasticsearch jest pozbawiony schematu, więc musisz zarządzać od wewnątrz Elasticsearch . Rzeka po prostu przesyła dane do twojego klastra. Możesz zdefiniować swoje mapowanie podczas tworzenia indeksu, a następnie użyć rzeki do przesyłania go do klastra ES.
3. Czy są jakieś wady w wykorzystywaniu tej rzeki do wyżej wymienionego celu?
Rzeka zostanie zastąpiona innym czystszym sposobem przesyłania tych danych, ale jest to na razie najlepsze rozwiązanie.