Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。
http://kibana.logstash.es/content/logstash/
风来了.fox

elasticsearch 要把词库设置好

词库就保密了哈哈
中文分词插件如下
http://blog.csdn.net/fenglailea/article/details/55506775#t17

logstash安装

http://blog.csdn.net/fenglailea/article/details/56282414

logstash-input-jdbc插件 安装

请看 下面链接的
http://blog.csdn.net/fenglailea/article/details/56282414
5.2 MYSQL 插件 logstash-input-jdbc插件

案例

当前用户 hadoop
介绍
Mysql数据库:

表:product
IP:192.168.1.254
端口默认

ElasticSearch

IP:10.1.5.101
安装位置:/home/hadoop/elasticsearch-5.2.1
端口默认

Logstash:

IP:10.1.5.101
安装位置:/home/hadoop/logstash-5.2.1
端口默认

mysql 的Java 驱动包:

mysql-connector-java-5.1.40-bin.jar
安装位置:/home/hadoop/logstash-5.2.1/mysql-connector-java-5.1.40-bin.jar

删除索引和映射

如果已存在某索引,要重建该索引,那么就要删除他

curl -XDELETE 'http://10.1.5.101:9200/product'

创建索引和映射(这一步最重要)

先建立索引,然后定义映射,数据最后添加
索引和映射可以分开设置也可以同时设置。
这里使用同时设置

curl -XPUT "http://10.1.5.101:9200/product" -d '{
//    "settings" : {//        "analysis" : {//            "analyzer" : {//                "ik-自定义" : {//                    "tokenizer" : "ik_max_word"
//                }//           }
//        }
//    },"mappings" : {"_default_":{"_all": { "enabled":  false } // 关闭_all字段,因为我们只搜索title字段},"jdbc" : {"dynamic" : true,// 是否启用“动态修改索引”"properties" : {"title" : {"type" : "string","analyzer" : "ik_max_word"}}}}
}'

创建一个名叫 product 的索引,分词器用 ik_max_word,并创建一个 jdbc 的类型,里面有一个 title 的字段,指定其使用 ik_max_word 分词器
jdbc:类型
settings注释掉部分,表示可以自定义分析器,然后由 mappings中的analyzer 调用ik-自定义这个分析器

创建配置

官方文档地址
https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html

进入 logstash根目录

mkdir -p etc
cd etc
vim product.conf

加入如下:

input {stdin {}jdbc {# mysql 数据库链接,shop为数据库名jdbc_connection_string => "jdbc:mysql://192.168.1.254:3306/shop"# 用户名和密码jdbc_user => "root"jdbc_password => "root"# 驱动jdbc_driver_library => "/home/hadoop/logstash-5.2.1/mysql-connector-java-5.1.40-bin.jar"# 驱动类名jdbc_driver_class => "com.mysql.jdbc.Driver"jdbc_paging_enabled => "true"jdbc_page_size => "50000"# 执行的sql 文件路径+名称statement_filepath => "/home/hadoop/logstash-5.2.1/etc/product.sql"# 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新schedule => "* * * * *"# 索引类型type => "jdbc"}
}filter {json {source => "message"remove_field => ["message"]}
}output {elasticsearch {hosts => ["10.1.5.101:9200"]index => "product"document_id => "%{id}"}stdout {codec => json_lines}
}

说明

index:索引名称
hosts:ES的IP地址及端口
document_id:自增ID
json_lines:JSON格式输出

接着创建 product.sql

vim product.sql

加入

SELECTproduct_id AS id ,title ,market_price ,shop_price ,content ,add_time ,update_time
FROMzh_product
WHEREis_del = 0
AND is_open = 1
AND update_time >=date_add(:sql_last_value,interval 8 hour)

Logstash 修改时区 取巧方法,利用mysql数据库内置函数

date_add(:sql_last_value,interval 8 hour) Logstash使用的标准时间并没有使用的是本地时区时间,这里取个巧,在他的时间基础上增加8小时,不用修改 Logstash 的时区了

说明:
sql_last_value是每次读取数据库表时更新此值,表示最后更新时间
如果input里面use_column_value 设置为true,可以是我们设定的字段的上一次的值。
默认 use_column_value 为 false,这样 :sql_last_value为上一次更新的最后时间,
这样对于新增的值,才会更新,这样就实现了增量更新的目的。
具体请看
https://www.elastic.co/guide/en/logstash/5.2/plugins-inputs-jdbc.html#_state

启动

bin/logstash -f etc/product.conf

查看

浏览器中打开

http://10.1.5.101:9200/product/_search
或
http://10.1.5.101:9200/product/jdbc/_search

分词搜索

curl -XPOST "http://10.1.5.101:9200/product/jdbc/_search?pretty"  -d'
{"query" : { "match" : { "title" : "德国Aptamil爱他美婴幼儿配方奶粉2+段(适合2岁以上宝宝)600g" }},"from" : 0, "size" : 100,"highlight" : {"pre_tags" : ["<font color='red'>"],"post_tags" : ["</font>"],"fields" : {"title" : {}}}
}'

说明:
pretty:加入pretty时,返回的JSON将格式化,方便阅读调试
from定义了目标数据的偏移值
size定义当前返回的事件数目
上面两个综合起来使用就是分页
默认from为0,size为100,即所有的查询默认仅仅返回前100条数据,从第0条开始计数,直到返回100条数据

结果

哈哈,保密

这里用了高亮属性 highlight,直接显示到 html 中,被匹配到的字或词将以红色突出显示。若要用过滤搜索,直接将 match 改为 term 即可
参考:
http://blog.csdn.net/laoyang360/article/details/51747266
http://keenwon.com/1404.html
http://blog.csdn.net/jam00/article/details/52983056
http://www.cnblogs.com/xing901022/p/5235993.html
http://mt.sohu.com/20170102/n477576527.shtml
http://www.cnblogs.com/phpshen/p/6098333.html
http://zhaoyanblog.com/archives/495.html
https://my.oschina.net/xiaohui249/blog/232784

Logstash的logstash-input-jdbc插件mysql数据同步ElasticSearch及词库相关推荐

  1. Elasticsearch 与mysql数据同步

    这里写自定义目录标题 Elasticsearch 与mysql数据同步 安装logstash 启动 注意事项,很重要 Elasticsearch 与mysql数据同步 通过调用Elasticsearc ...

  2. 如何将mysql数据同步到es

    根据业务场景我们有三种方式 如果是历史数据同步我们可以用logstash同步数据库数据到es具体操作如下 1 上传并解压logstash 2 创建文件夹sync并在里面创建文件logstash-db- ...

  3. Mysql 数据同步到 Elasticsearch

    阅读目录 说明 1 同步原理 2 插件 logstash-input-jdbc go-mysql-elasticsearch elasticsearch-jdbc 3 logstash-input-j ...

  4. MYSQL数据同步到ES7

    ** 概述 ** 现在的项目数据量越来越大,全文检索功能使用场景也越来越普遍. 而我们一般的生产数据是在mysql,或其它一些数据库, 我们的产品数据就是mysql,而又要使用全文检索, 所以要把my ...

  5. datax实现mysql数据同步

    前言 DataX 是阿里内部广泛使用的离线数据同步工具/平台,可以实现包括 MySQL.Oracle.HDFS.Hive.OceanBase.HBase.OTS.ODPS 等各种异构数据源之间高效的数 ...

  6. liunx下通过Canal将MySQL数据同步到Elasticsearch

    liunx下通过Canal将MySQL数据同步到Elasticsearch 一.canal背景信息 Canal是Github中开源的ETL(Extract Transform Load)软件 cana ...

  7. ES和MySQL数据同步(简略版)

    一.在docker配置elasticsearch和kibana 1.注:elasticsearch和kibana的版本要一致 elesticsearch --拉取镜像 docker pull dock ...

  8. 使用canal实时同步MySQL数据到Elasticsearch

    使用canal实时同步MySQL数据到Elasticsearch 搭建环境 安装 elasticsearch 安装 kibana 下载和安装canal 1.下载canal 2.配置MySQL 3.配置 ...

  9. MySql数据同步(双机热备)已正式应用上平台

    经过一个多月的测试MYSQL的双机同步数据还是很不错的. 在家庭ADSL的4M的带宽下,有10个人在应用此网络,MYSQL数据同步还是照样正常,我想在正常的平台环境肯定更即时,效率更高! 但同时需要注 ...

  10. MySQL数据同步的一个很初级运用

    PHP程序员基本上都离不开MySQL,今天转载一篇关于MySQL数据同步的一个很初级运用. 今天由于工作需要,配置了一下主从同步,这里记录一下配置过程,以备查阅. 事先度娘了一番,主从同步需要保证主从 ...

最新文章

  1. 从 LRU Cache 带你看面试的本质
  2. 一天搞定CSS(扩展):CSS Hack
  3. C语言实现queue队列的算法(附完整源码)
  4. 博客园首页博问闪存新随笔联系订阅管理 随笔- 252 文章- 0 评论- 45 HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法...
  5. 研究发现:一心多用会使认知水平下降
  6. MyBatis中的注解
  7. 《啊哈算法》 解密 QQ 号 —— 队列(python实现)
  8. Python寻找给定序列中相差最小的两个数字
  9. ARMv8-A Exception Handling
  10. 数据分析及数据挖掘学习路线
  11. OpenPose Demo
  12. php微信h5支付对接流程,微信H5支付接口开发的流程与常见问题
  13. R语言 K-折交叉验证 十折交叉验证 数据集的等分 随机森林回归为例
  14. K3-openwrt交换机模式-挂载磁盘-部署kodexplorer可道云私有云盘-极简单版
  15. 移动应用开发者的阶级状况:多数是无产阶级
  16. Java 第三阶段增强分析需求,代码实现能力【满汉楼】
  17. html后代选择器的语法,后代选择器 | Descendant selectors
  18. 怎样正确的维护使用电脑
  19. EntityComponentSystemSamples学习笔记
  20. 全球与中国高氧潜水电脑市场深度研究分析报告

热门文章

  1. 在 Emacs 里修改现有文件的编码格式(转载)
  2. select完成单线程,多用户
  3. 关于co-NP的理解
  4. oracle ogg下载安装,牛刀小试Oracle GoldenGate--OGG安装(一)
  5. php扫雷算法,扫雷游戏算法 - osc_qv1fwke0的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. python的wget用法介绍_Python使用wget实现下载网络文件功能示例
  7. 拓端tecdat|Python在线零售数据关联规则挖掘Apriori算法数据可视化
  8. caffe目录结构 及 caffe源码文件说明
  9. python之format函数学习
  10. VC维含义的个人理解