私のアドバイスは、elasticsearch-jdbc-river を使用することです。 多くの理由で。
それらの1つは、elasticsearch-jbdc-river
RDBMS を切り替えることにした場合は、より一般的です 。
もう1つは、jbdc-river
もう一方が2年経っていない場合でも維持され、Elasticsearchはそれ以来大きく進化しました。
1。私の知る限り、データはMySQLデータベースからESクラスターにストリーミングされ、ESクラスターが自動的にインデックスを作成します。あれは正しいですか?注意しなければならないタイムアウトや制限はありますか?
MySQLからのデータは、タイムアウト制限なしでMySQLからElasticsearchクラスターに自動的にストリーミングされる必要がありますが、ボトルネックはJVMヒープサイズになります。持っているデータの量を処理するためにどれだけ必要かわかりません。テストする必要があります。
2。リレーショナルデータベーステーブル間の外部キー関係はどのようにESに変換されますか?外部キーを含むテーブル行は、ESドキュメントの内部オブジェクトになりますか、それともESドキュメント間のその他の関係が使用されますか?
Elasticsearchはスキーマレスであるため、内部のElasticsearchを管理する 必要があります。 。川はデータをクラスターにストリーミングするだけです。インデックスを作成するときにマッピングを定義し、川を使用してそれをESクラスターにストリーミングできます。
3。上記の目的でこの川を使用することに不利な点はありますか?
川はこれらのデータをストリーミングするための別のよりクリーンな方法に置き換えられますが、これは現在のところ最良の解決策です。