这是我键的索引

"settings":{
"number_of_shards":3,
"number_of_replicas":2
},
"mappings":{
"foods":{
"properties":{
"goodsname":{
"type":"keyword"
},
"goodsprice":{
"type":"double"
},
"goodsnum":{
"type":"integer"
},
"goodspath":{
"type":"text"
},
"shopname":{
"type":"completion",
"analyzer":"simple",
"search_analyzer":"simple",
"preserve_separators":true
},
"updtime":{
"type":"date"
},
"goodsrole":{
"type":"integer"
},
"createtime":{
"type":"date"
},
"uid":{
"type":"integer"
},
"goodstype":{
"type":"text"
},
"shopid":{
"type":"integer"
}
}
}
}
}

2.插入的工具用的是postman

1、版本介绍

Elasticsearch:
https://www.elastic.co/products/elasticsearch
版本:6.1

Logstash:
https://www.elastic.co/products/logstash
版本:2.4.0
所需要的安装文件,到官网下载即可。

还需要对应的数据库JDBC,这里使用的是mysql-connector-java-5.1.39.jar
去mysql官网下载
Elasticsearch配置请参照之前的博客,不在这里介绍了。

、Logstash安装配置

Logstash直接下载后解压即可,主要是配置文件的内容编写。

安装logstash-input-jdbc的Logstash插件,用来进行mysql、oracle等的数据同步。

linux

[zsz@VS-zsz logstash-2.4.0]$ bin/plugin install logstash-input-jdbc
The use of bin/plugin is deprecated and will be removed in a feature release. Please use bin/logstash-plugin.
Validating logstash-input-jdbc
Installing logstash-input-jdbc
Installation successful

window下载后解压就可以

配置文件(自行指定文件名,这里命名为logstash-mysql.conf ):

linux打开[zsz@VS-zsz conf]$ vi logstash-mysql.conf

window新建logstash-mysql.conf文件在bin文件夹下

复制下面的

input {
jdbc {
jdbc_driver_library => "/usr/local/logstash-2.4.0/mysql-connector-java-5.1.39.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://192.168.****:3306/******?characterEncoding=UTF-8&useSSL=false"
jdbc_user => "*****"
jdbc_password => "*********"
statement => "SELECT * FROM news limit 0,1"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
schedule => "* * * * *"
}
} filter {
json {
source => "message"
remove_field => ["message"]
}
} output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "192.168.****"
index => "myindex"
}
}

启动Logstash在bin问价夹下执行logstash -f /usr/local/logstash-2.4.0/conf/logstash-mysql.conf
下面是linux的

[zsz@VS-zsz conf]$ /usr/local/logstash-2.4.0/bin/logstash -f /usr/local/logstash-2.4.0/conf/logstash-mysql.conf

window在bin文件夹线执行logstash -f /usr/local/logstash-2.4.0/conf/logstash-mysql.conf

这个进程会一直执行下去,因为设置的schedule => "* * * * *"(每分钟执行一次),如果想结束进程需要kill掉进程。

查看elasticsearch是否同步数据成功
[root@VS-zsz conf]# curl '192.168.31.79:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open test 5 1 0 0 1.5kb 795b
green open myindex 5 1 494 0 924.7kb 457.6kb
[root@VS-zsz conf]# curl '192.168.31.78:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open test 5 1 0 0 1.5kb 795b
green open myindex 5 1 494 0 925kb 457.8kb
[root@VS-zsz conf]# curl '192.168.31.79:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open test 5 1 0 0 1.5kb 795b
green open myindex 5 1 494 0 925kb 457.8kb

说明数据成功导入,而且在设置了定时任务的情况下, myindex索引的容量不断增加。

5、常见错误:
(1)Pipeline aborted due to error {:exception=>"LogStash::ConfigurationError", :backtrace=>..................stopping pipeline {:id=>"main"}
原因:logstash-mysql.conf 文件配置错误,对于>=2.*的版本, elasticsearch 的参数名应为hosts,如果设置为host则会报错。此处应该是可以配置多个数据源。

6.介绍配置文件(自行指定文件名,这里命名为logstash-mysql.conf ):
 input {
stdin { }
jdbc {
# 数据库地址 端口 数据库名
jdbc_connection_string => "jdbc:mysql://localhost:3306/shen"
# 数据库用户名
jdbc_user => "root"
# 数据库密码
jdbc_password => "rootroot"
# mysql java驱动地址
jdbc_driver_library => "/usr/share/logstash/mysql-connector-java-5.1.43-bin.jar"
# 驱动类的名称
jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "50000"
statement => "SELECT * FROM TABLE"
# sql 语句文件,对于复杂的查询,可以放在文件中。
# statement_filepath => "filename.sql"
# 设置监听间隔,语法与Linux系统Cron相同
schedule => "* * * * *"
}
}
output {
stdout {
codec => json_lines
}
   elasticsearch {
hosts => "localhost:9200"
index => "contacts"
     document_type => "contact"
document_id => "%{id}"
}
}

第七篇 elasticsearch 链接mysql不会更新的更多相关文章

  1. 第八篇 elasticsearch链接mysql自动更新数据库

    增量更新 input { jdbc { jdbc_driver_library => "D:\tools\mysql\mysql-connector-java-5.1.45/mysql ...

  2. 第七篇 SQL Server安全跨数据库所有权链接

    本篇文章是SQL Server安全系列的第七篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  3. 【译】第七篇 SQL Server安全跨数据库所有权链接

    本篇文章是SQL Server安全系列的第七篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  4. ElasticSearch入门 第七篇:分词

    这是ElasticSearch 2.4 版本系列的第七篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  5. 第七篇:Python3连接MySQL

    第七篇:Python3连接MySQL 连接数据库 注意事项 在进行本文以下内容之前需要注意: 你有一个MySQL数据库,并且已经启动. 你有可以连接该数据库的用户名和密码 你有一个有权限操作的data ...

  6. Mysql优化(出自官方文档) - 第七篇

    Mysql优化(出自官方文档) - 第七篇 目录 Mysql优化(出自官方文档) - 第七篇 Optimizing Data Change Statements 1 Optimizing INSERT ...

  7. Spring Boot整合ElasticSearch和Mysql 附案例源码

    导读 前二天,写了一篇ElasticSearch7.8.1从入门到精通的(点我直达),但是还没有整合到SpringBoot中,下面演示将ElasticSearch和mysql整合到Spring Boo ...

  8. Spring Boot 揭秘与实战(二) 数据存储篇 - ElasticSearch

    文章目录 1. 版本须知 2. 环境依赖 3. 数据源 3.1. 方案一 使用 Spring Boot 默认配置 3.2. 方案二 手动创建 4. 业务操作5. 总结 4.1. 实体对象 4.2. D ...

  9. ElasticSearch入门 第四篇:使用C#添加和更新文档

    这是ElasticSearch 2.4 版本系列的第四篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

随机推荐

  1. oracle 序列 + 触发器 实现 ID自动增长

    1.创建序列 create sequence emp_sequence increment by ----每次增加几个 minvalue ----最小值为1 nomaxvalue----不限制最大值 ...

  2. [原创]Scala学习:关于变量(val,var,类型推断)

    1.常量定义:  val val 类似于java中的final变量.一旦初始化了,val就不能再被赋值 val megs = "hello world" 2.变量的定义: var ...

  3. Python 3 并发编程多进程之进程与线程

    Python 3 进程与线程 进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的 ...

  4. 20145229吴姗珊 《Java程序设计》小总结

    20145229吴姗珊 <Java程序设计>小总结 教材学习内容总结 由于今天考试考到了操作题,根本无从下手,然后才意识到原来之前的学习都是蜻蜓点水,一味的把学习建立在给老师学,为家长学的 ...

  5. 斐波那契 (Fibonacci)数列

    尾递归会将本次方法的结果计算出来,直接传递给下个方法.效率很快. 一般的递归,在本次方法结果还没出来的时候,就调用了下次的递归, 而程序就要将部分的结果保存在内存中,直到后面的方法结束,再返回来计算. ...

  6. POJ 1183 反正切函数的应用

    H - 反正切函数的应用 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit ...

  7. Charles进行HTTPS抓包(iOS为例)

    各种抓包工具的原理都是一样的,使用方面也都是差不多的,因为最近在用Mac,所以抓包工具开始用Charles了,记录一下抓取HTTPS的步骤. 连接代理, 开启抓包工具, 手机设置代理服务器,端口号(默 ...

  8. 处理 javax.el.ELException: Failed to parse the expression 报错

    在JSP的表达式语言中,使用了  <h3>是否新Session:${pageContext.session.new}</h3>  输出Session是否是新的,此时遇到了  j ...

  9. DoTween插件

    doteeen(hotween第二个版本) hotween leantween gokit itween(多个相同动画类型的插件):性能最高的是dotween 引用命名空间:using DG.Twee ...

  10. python自动化开发学习 I/O多路复用

    python自动化开发学习 I/O多路复用   一. 简介 socketserver在内部是由I/O多路复用,多线程和多进程,实现了并发通信.IO多路复用的系统消耗很小. IO多路复用底层就是监听so ...