10

私の会社でより良い検索と分析機能を得るソリューションとして、ElasticSearch を検討してきました。現在、すべてのデータは SQL Server にあり、JDBC River のインストールに成功し、いくつかのテスト データを ES に取得しました。

リバーは将来のリリースで廃止される可能性があり、JDBC リバーはサードパーティによって維持されているようです。また、Logstash は SQL Server からのインデックス作成をまだサポートしていないようです (計画されている機能かどうかはわかりません)。

SQL Server から ElasticSearch にデータを移動したいという私の状況では、SQL が新しいデータで更新されるときに、データにインデックスを付けてインデックスを維持するための推奨される方法は何ですか?

リンクされたスレッドから:

インデックス作成プロセスを ES の帯域外で所有し、ニーズに合わせて拡張できることを確認することをお勧めします。

どこから始めればよいかよくわかりません。ES が提供する API の 1 つを使用するのは私の責任ですか?

4

2 に答える 2

4

RabbitMQ を使用して、SQL Server から ES にデータをパイプします。そうすれば、Rabbit がキューイングと処理を処理します。

注意として、SQL から Rabbit に 1 秒あたり 4000 以上のレコードを実行できます。データを ES に入れる前にもう少し処理を行いますが、それでも 1 秒あたり 1000 レコード以上で ES に挿入します。両端でかなり印象的です。うさぎもESも最高!

于 2014-03-06T22:14:14.657 に答える
2

できることはたくさんあります。データを rabbitmq または redis に入れることができますが、主な問題は最新の状態を維持することです。イベントベースのアプリケーションを検討する必要があると思います。ただし、実際にデータソースとして SQL サーバーしかない場合は、タイムスタンプと更新をチェックするクエリを使用できます。データベースのサイズによっては、完全なデータセットのインデックスを再作成することもできます。

イベントまたはクエリ ベースのソリューションを使用すると、おそらく一括 API を使用して、これらの更新を Elasticsearch にプッシュできます。

このようなカスタム ソリューションの良い点は、マッピングについて考えることができることです。これは、データを賢く処理したい場合に重要です。

于 2014-03-06T22:23:57.530 に答える