【问题标题】:Preferred method of indexing bulk data into ElasticSearch?将批量数据索引到 ElasticSearch 的首选方法?
【发布时间】:2014-03-06 22:08:14
【问题描述】:

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

河流似乎是can be deprecated in future releases,而JDBC river 是由第三方维护的。而且 Logstash 似乎还不支持从 SQL Server 建立索引(不知道它是否是计划中的功能)。

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

来自链接的线程:

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

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

【问题讨论】:

    标签: sql-server elasticsearch elasticsearch-jdbc-river


    【解决方案1】:

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

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

    【讨论】:

    • 您是通过 River 将数据从 RabbitMQ 导入 ES 吗?
    • 我也有兴趣了解更多关于您的设置的信息。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-25
      • 2016-04-16
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      相关资源
      最近更新 更多