使用Logstash将MySQL中的数据同步至Elasticsearch
# Logstash配置文件
input {
jdbc {
# MySQL数据库连接配置
jdbc_connection_string => "jdbc:mysql://localhost:3306/your_database"
jdbc_user => "your_username"
jdbc_password => "your_password"
jdbc_driver_library => "/path/to/mysql-connector-java-x.x.x-bin.jar" # 替换为实际的JDBC驱动路径
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
# 需要同步的数据表
statement => "SELECT * FROM your_table"
# 定时任务配置,这里每隔300秒执行一次
schedule => "*/300 * * * * *"
# 其他可选配置
record_last_run => true
last_run_metadata_path => "/var/lib/logstash/.mysql_last_run"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "your_index"
document_id => "%{unique_id_field}" # 根据实际情况设置唯一标识字段
}
# 如果需要,可以启用stdout用于调试
stdout {
codec => json_lines
}
}
确保你的Logstash配置文件中包含了以上配置,并根据实际情况替换了数据库连接信息、JDBC驱动路径、需要同步的数据表以及Elasticsearch的地址和索引名。如果你的MySQL表中有唯一标识字段,请在document_id
中指定该字段,这样可以保证更新操作正确执行。
评论已关闭