【问题标题】:ElasticSearch jdbc riverElasticSearch jdbc河
【发布时间】:2014-10-22 01:28:27
【问题描述】:

我正在尝试使用 jdbc River 将数据输入 Elastic Search,但这条河并未获取所有数据。我在 MySQL 表中有 450000 条记录,但在 ES 中我只得到大约 230000 条记录。

这是我的 ES 河流设置:

 curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:mysql://localhost:3306/test",
        "user" : "test",
        "password" : "test",
        "sql" : "select * from test" },
        "index":{
        "index" : "test",
        "bulk_size":600,
        "max_bulk_requests":10,
        "bulk_timeout":"5s",
        "autocommit":"true"  
        }
}'

我查看了 Elastic Search 文档,但找不到解决方案。 我用的是river-jdbc-1.1.0.2版本。

【问题讨论】:

  • 1.您使用的是什么版本的弹性搜索? 2. 你的 elasticsearch JVM 配置是什么? 3. 你是否检查过数据和 tmp 数据之间是否有足够的空间用于集群?

标签: elasticsearch kibana elasticsearch-jdbc-river elasticsearch-plugin


【解决方案1】:

您像需要索引 450000 一样更新。并且您的脚本具有以下参数

    "bulk_size":600,
    "max_bulk_requests":10,
    "bulk_timeout":"5s"

删除 bulk_timeout 5 秒并减小批量大小和 max_bulk_request。由于您要索引 450000 个文档以进行弹性搜索,因此这些参数缺少数据。

假设您没有提及上述参数,即使我们错过了记录。 所以以下是使用river来获取数据的最优参数,以控制es river请求索引数据。

    "bulk_size":160,
    "max_bulk_requests":5,

以前我遇到过这个问题。我解决了在我的河流脚本中使用上述参数的问题。如果您应用上述参数,它肯定会起作用。尝试一次。

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多