gpt4 book ai didi

mysql - Logstash:MySQL 到 Elasticsearch(大表)?

转载 作者:搜寻专家 更新时间:2023-10-30 20:16:23 24 4
gpt4 key购买 nike

我正在尝试将一个相当庞大的数据库导入 Elasticsearch。它有 400 万行,跨 2 列 (VARCHAR(250) & INT(20))。

当我运行 logstash.conf 文件以将数据库导入 Elasticsearch 并在我的 SQL 命令中添加 LIMIT 0,100 时,命令运行没有任何问题。所有行最终都由终端中的 Logstash 返回,然后我可以在 Elasticsearch 的相关节点中看到它们。

当我尝试通过 Logstash 一次运行所有行时,它输出:


设置:默认管道工作人员:1
主管道已启动

没有更多的事情发生。

如何将这么大的表添加到 Elasticsearch 中?

这是我的 logstash.conf 脚本:

input{

jdbc {
jdbc_driver_library => "/opt/logstash/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar"

jdbc_driver_class => "com.mysql.jdbc.Driver"

jdbc_connection_string => "jdbc:mysql://<ip number>:3306/database"

jdbc_validate_connection => true

jdbc_user => "elastic"

jdbc_password => "password"

schedule => "* * * * *"

statement => "name, id from master_table"

}

}

output

{
elasticsearch
{

index => "search"
document_type => "name"
document_id => "%{id}"
hosts => "127.0.0.1:9200"
}stdout { codec => json_lines }
}

最佳答案

我会将 fetch_size 设置为大约 10000 个文档。在这里,我认为它会尝试将所有记录加载到内存中,这可能需要数小时并且可能不适合。

参见 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html#_dealing_with_large_result_sets

关于mysql - Logstash:MySQL 到 Elasticsearch(大表)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38043091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com