10

我一直在寻找 ElasticSearch 作为解决方案,以便在我的公司获得一些更好的搜索和分析功能。目前我们所有的数据都在 SQL Server 中,我已经成功安装了 JDBC River 并将一些测试数据放入 ES。

河流似乎可以在未来的版本中被弃用,JDBC 河流由第三方维护。而且 Logstash 似乎还不支持从 SQL Server 建立索引(不知道它是否是计划中的功能)。

因此,对于我想将数据从 SQL Server 移动到 ElasticSearch 的情况,在 SQL 使用新数据更新时索引数据和维护索引的首选方法是什么?

从链接的线程:

我们建议您从 ES 带外拥有您的索引过程,并确保它可以根据您的需要进行扩展。

我不太确定从哪里开始。我可以使用 ES 提供的 API 之一吗?

4

2 回答 2

4

我们使用 RabbitMQ 将数据从 SQL Server 传送到 ES。这样,Rabbit 负责排队和处理。

需要注意的是,我们每秒可以将超过 4000 条记录从 SQL 运行到 Rabbit。在将数据放入 ES 之前,我们进行了更多处理,但我们仍然以每秒超过 1000 条记录的速度插入 ES。两端都非常令人印象深刻。兔子和ES都很棒!

于 2014-03-06T22:14:14.657 回答
2

你可以做很多事情。您可以将数据放在 rabbitmq 或 redis 中,但您的主要问题是保持最新。我想你应该研究一个基于事件的应用程序。但是如果你真的只有 sql server 作为数据源,你可以使用时间戳和检查更新的查询。根据数据库的大小,您也可以重新索引整个数据集。

使用事件或基于查询的解决方案,您可以将这些更新推送到 elasticsearch,可能使用批量 API。

像这样的自定义解决方案的好处是您可以考虑您的映射。如果您真的想对数据进行智能处理,这一点很重要。

于 2014-03-06T22:23:57.530 回答