logstash同步数据到es
2023-06-13 09:13:57 时间
logstash 的conf目录下mysql.conf
input {
stdin {
}
jdbc {
jdbc_connection_string => "jdbc:mysql://192.168.217.130:3307/xc_course?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC"
# the user we wish to excute our statement as
jdbc_user => "root"
jdbc_password => "root"
# the path to our downloaded jdbc driver
jdbc_driver_library => "D:/Repository/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar"
# the name of the driver class for mysql
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
#要执行的sql文件
#statement_filepath => "/conf/course.sql"
statement => "select * from course_pub where timestamp > date_add(:sql_last_value,INTERVAL 8 HOUR)"
#定时配置
schedule => "* * * * *"
record_last_run => true
last_run_metadata_path => "E:/temp/logstash-6.2.1/config/xc_course_media_metadata"
}
}
output {
elasticsearch {
#ES的ip地址和端口
hosts => "192.168.217.130:9200"
#hosts => ["localhost:9200","localhost:9202","localhost:9203"]
#ES索引库名称
index => "xc_course"
document_id => "%{id}"
document_type => "doc"
template =>"E:/temp/logstash-6.2.1/config/xc_course_template.json"
template_name =>"xc_course"
template_overwrite =>"true"
}
stdout {
#日志输出
codec => json_lines
}
}
说明:
1、ES采用UTC时区问题
ES采用UTC 时区,比北京时间早8小时,所以ES读取数据时让最后更新时间加8小时
where timestamp > date_add(:sql_last_value,INTERVAL 8 HOUR)
2、logstash每个执行完成会在logstash-6.2.1/config/logstash_metadata记录执行时间下次以此时间为基准进行增量同步数据到索引库。
xc_course_template.json
{
"mappings" : {
"doc" : {
"properties" : {
"charge" : {
"type" : "keyword"
},
"description" : {
"analyzer" : "ik_max_word",
"search_analyzer" : "ik_smart",
"type" : "text"
},
"end_time" : {
"format" : "yyyy-MM-dd HH:mm:ss",
"type" : "date"
},
"expires" : {
"format" : "yyyy-MM-dd HH:mm:ss",
"type" : "date"
},
"grade" : {
"type" : "keyword"
},
"id" : {
"type" : "keyword"
},
"mt" : {
"type" : "keyword"
},
"name" : {
"analyzer" : "ik_max_word",
"search_analyzer" : "ik_smart",
"type" : "text"
},
"pic" : {
"index" : false,
"type" : "keyword"
},
"price" : {
"type" : "float"
},
"price_old" : {
"type" : "float"
},
"pub_time" : {
"format" : "yyyy-MM-dd HH:mm:ss",
"type" : "date"
},
"qq" : {
"index" : false,
"type" : "keyword"
},
"st" : {
"type" : "keyword"
},
"start_time" : {
"format" : "yyyy-MM-dd HH:mm:ss",
"type" : "date"
},
"status" : {
"type" : "keyword"
},
"studymodel" : {
"type" : "keyword"
},
"teachmode" : {
"type" : "keyword"
},
"teachplan" : {
"analyzer" : "ik_max_word",
"search_analyzer" : "ik_smart",
"type" : "text"
},
"users" : {
"index" : false,
"type" : "text"
},
"valid" : {
"type" : "keyword"
}
}
}
},
"template" : "xc_course"
}
指定配置文件 启动logstash.bat:
.\logstash.bat -f ..\config\mysql.conf
相关文章
- esid是什么意思_es unassigned
- ES Head插件安装
- ES集群设置密码
- ES 查询
- es集群搭建_k8s和docker搭建es集群
- 记一次logstash同步MySQL到es时tinyint类型字段被转为boolean类型的问题
- 【架构师(第九篇)】如何让 Node 环境支持 ES Module
- 【ES三周年】 ES插件介绍和应用
- 【ES三周年】使用 Ingest Pipeline 在 Elasticsearch 中对数据进行预处理
- IOS – OpenGL ES 设置图像锐化 GPUImageSharpenFilter
- MySQL如何实时同步数据到ES?试试这款阿里开源的神器
- ES与MySQL:混合技术的优势(es和mysql)
- MySQL 数据同步到 Elasticsearch:实现数据无缝转移(mysql同步到es)
- Oracle数据实时全量同步至Elasticsearch(oracle全量同步es)
- ES来打破传统从Oracle走向 NoSQL(es替代oracle)
- 深入比较ES数据库与Oracle数据库(es数据库和oracle)
- 使用ES导入Oracle数据库一招制胜(es 导入 Oracle)
- es数据实时同步到Oracle数据库(es同步到oracle)
- ES与Oracle数据同步技术研究(es oracle 同步)
- 数据库ES和Oracle数据库实现最佳性能的方案(es oracle)
- 数据存储看您选择ES还是Redis(数据存es还是redis)
- 使用Redis导入ES实现高效数据迁移(把redis数据导入es)
- 抉择存储数据的最佳选择 ES 还是 Redis(存es还是redis)