本文源码:GitHub·点这里 || GitEE·点这里

一、配置详解

场景描述:MySQL数据表以全量和增量的方式向ElasticSearch搜索引擎同步。

1、下载内容

  • elasticsearch 版本 6.3.2
  • logstash 版本 6.3.2
  • mysql-connector-java-5.1.13.jar

2、核心配置

  • 路径:/usr/local/logstash
  • 新建配置目录:sync-config

1)、配置全文

/usr/local/logstash/sync-config/cicadaes.conf

  1. input {
  2. stdin {}
  3. jdbc {
  4. jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/cicada?characterEncoding=utf8"
  5. jdbc_user => "root"
  6. jdbc_password => "root123"
  7. jdbc_driver_library => "/usr/local/logstash/sync-config/mysql-connector-java-5.1.13.jar"
  8. jdbc_driver_class => "com.mysql.jdbc.Driver"
  9. jdbc_paging_enabled => "true"
  10. jdbc_page_size => "50000"
  11. jdbc_default_timezone => "Asia/Shanghai"
  12. statement_filepath => "/usr/local/logstash/sync-config/user_sql.sql"
  13. schedule => "* * * * *"
  14. type => "User"
  15. lowercase_column_names => false
  16. record_last_run => true
  17. use_column_value => true
  18. tracking_column => "updateTime"
  19. tracking_column_type => "timestamp"
  20. last_run_metadata_path => "/usr/local/logstash/sync-config/user_last_time"
  21. clean_run => false
  22. }
  23. jdbc {
  24. jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/cicada?characterEncoding=utf8"
  25. jdbc_user => "root"
  26. jdbc_password => "root123"
  27. jdbc_driver_library => "/usr/local/logstash/sync-config/mysql-connector-java-5.1.13.jar"
  28. jdbc_driver_class => "com.mysql.jdbc.Driver"
  29. jdbc_paging_enabled => "true"
  30. jdbc_page_size => "50000"
  31. jdbc_default_timezone => "Asia/Shanghai"
  32. statement_filepath => "/usr/local/logstash/sync-config/log_sql.sql"
  33. schedule => "* * * * *"
  34. type => "Log"
  35. lowercase_column_names => false
  36. record_last_run => true
  37. use_column_value => true
  38. tracking_column => "updateTime"
  39. tracking_column_type => "timestamp"
  40. last_run_metadata_path => "/usr/local/logstash/sync-config/log_last_time"
  41. clean_run => false
  42. }
  43. }
  44. filter {
  45. json {
  46. source => "message"
  47. remove_field => ["message"]
  48. }
  49. }
  50. output {
  51. if [type] == "User" {
  52. elasticsearch {
  53. hosts => ["127.0.0.1:9200"]
  54. index => "cicada_user_search"
  55. document_type => "user_search_index"
  56. }
  57. }
  58. if [type] == "Log" {
  59. elasticsearch {
  60. hosts => ["127.0.0.1:9200"]
  61. index => "cicada_log_search"
  62. document_type => "log_search_index"
  63. }
  64. }
  65. }

2)、SQL文件

  • user_sql.sql
  1. SELECT
  2. id,
  3. user_name userName,
  4. user_phone userPhone,
  5. create_time createTime,
  6. update_time updateTime
  7. FROM c_user
  8. WHERE update_time > : sql_last_value
  • log_sql.sql
  1. SELECT
  2. id,
  3. param_value paramValue,
  4. request_ip requestIp,
  5. create_time createTime,
  6. update_time updateTime
  7. FROM c_log
  8. WHERE update_time > : sql_last_value

3)、配置参数说明

  • input参数
  1. statement_filepath:读取SQL语句位置
  2. schedule :这里配置每分钟执行一次
  3. type :类型,写入ES的标识
  4. lowercase_column_names :字段是否转小写
  5. record_last_run :记录上次执行时间
  6. use_column_value :使用列的值
  7. tracking_column :根据写入ESupdateTime字段区分增量数据
  8. tracking_column_type :区分的字段类型
  • output参数
  1. hosts ES服务地址
  2. index Index名称,类比理解数据库名称
  3. document_type Type名称,类比理解表名称

3、启动进程

  1. /usr/local/logstash/bin/logstash
  2. -f
  3. /usr/local/logstash/sync-config/cicadaes.conf

二、ES客户端工具

1、下载软件

kibana-6.3.2-windows-x86_64

2、修改配置

kibana-6.3.2-windows-x86_64\config\kibana.yml

添加配置:

  1. elasticsearch.url: "http://127.0.0.1:9200"

3、双击启动

kibana-6.3.2-windows-x86_64\bin\kibana.bat

4、访问地址

  1. http://localhost:5601

三、源代码地址

  1. GitHub·地址
  2. https://github.com/cicadasmile/linux-system-base
  3. GitEE·地址
  4. https://gitee.com/cicadasmile/linux-system-base

MySQL数据以全量和增量方式,同步到ES搜索引擎的更多相关文章

  1. Mysql备份工具xtraback全量和增量测试

    Mysql备份工具xtraback全量和增量测试   xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表) 官方网址http:// ...

  2. MySQL5.7.18 备份、Mysqldump,mysqlpump,xtrabackup,innobackupex 全量,增量备份,数据导入导出

    粗略介绍冷备,热备,温暖,及Mysqldump,mysqlpump,xtrabackup,innobackupex 全量,增量备份 --备份的目的 灾难恢复:意外情况下(如服务器宕机.磁盘损坏等)对损 ...

  3. mysql全量和增量备份详解(带脚本)

    在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 下面对这种备份方案详细说明下:1.MySQLdump增量备份配置执行增量备份的前提条件是M ...

  4. 关于Subversion主从备份方式的调整(全量、增量脚本)更新

    本文引用于http://blog.chinaunix.net/uid-25266990-id-3369172.html 之前对Subversion服务器作了迁移,关于SVN的架构也走了调整,有单一的服 ...

  5. 全量、增量数据在HBase迁移的多种技巧实践

    作者经历了多次基于HBase实现全量与增量数据的迁移测试,总结了在使用HBase进行数据迁移的多种实践,本文针对全量与增量数据迁移的场景不同,提供了1+2的技巧分享. HBase全量与增量数据迁移的方 ...

  6. innobackupex在线备份及恢复(全量和增量)

    Xtrabackup是由percona开发的一个开源软件,它是innodb热备工具ibbackup(收费的商业软件)的一个开源替代品.Xtrabackup由个部分组成:xtrabackup和innob ...

  7. datax实例——全量、增量同步

    一.全量同步 本文以mysql -> mysql为示例: 本次测试的表为mysql的系统库-sakila中的actor表,由于不支持目的端自动建表,此处预先建立目的表: CREATE TABLE ...

  8. Python实现目录文件的全量和增量备份

    目标: 1.传入3个参数:源文件路径,目标文件路径,md5文件 2.每周一实现全量备份,其余时间增量备份 1.通过传入的路径,获取该路径下面的所有目录和文件(递归) 方法一:使用os.listdir ...

  9. MySQL定时备份(全量备份+增量备份)

    MySQL 定时备份 参考 zone7_ 的 实战-MySQL定时备份系列文章 参考 zmcyu 的 mysql数据库的完整备份.差异备份.增量备份 更多binlog的学习参考马丁传奇的 MySQL的 ...

随机推荐

  1. Ansible-上部

    Ansible概述 Ansible是一个配置管理系统configuration management systempython 语言是运维人员必须会的语言ansible 是一个基于python 开发的 ...

  2. MySQL如何删除#sql开头的临时表

    1.  现象 巡检时发现服务器磁盘空间不足,通过查看大文件进行筛选是发现有几个#sql开头的文件,且存在超过100G及10G以上的文件. 2. 原因 如果MySQL在一个 ALTER TABLE操作( ...

  3. pipelinedb 常用sql语句

    -- 创建普通表create table simple_user (name varchar(80), age int , phone varchar(30), birthday date ); -- ...

  4. 清晰明了的javascript版动态规划

    算法是一种艺术,给人感觉很不好接近,但是一旦你和ta熟络了,你就能发现这门艺术的内在是多么美妙且多变. 对于前端来说,算法也许不是最重要的,在日常工作中,几乎很少用到.所以很多人也不是很感冒. 不过呢 ...

  5. Caffe源码-Solver类

    Solver类简介 Net类中实现了网络的前向/反向计算和参数更新,而Solver类中则是对此进行进一步封装,包含可用于逐次训练网络的Step()函数,和用于求解网络的优化解的Solve()函数,同时 ...

  6. PHP7.3安装event扩展

    安装支持库libevent wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libe ...

  7. adb 获取平台号

    获取 Android 的 PLATFORM_VERSION :adb shell getprop ro.build.version.release获取 Android 的 APP_PACKAGE 和 ...

  8. Oracle11g在虚拟机win7上的详细安装过程(包括win7在虚拟机上的安装)

    http://www.imsdn.cn/这个是镜像文件的下载地址,之前下载雨林和深度的VM识别不了. 这个好了之后就可以去这个网址下看安装教程很详细.https://blog.csdn.net/u01 ...

  9. 【转】淘宝UED上关于chrome的transition闪烁问题的解决方案

    最近在用BetterScroll实现一个功能的时候,在滚动区域中会有一个绝对定位的按钮,结果在IOS中出现了快速滚动,停止的时候,会先消失后显现的问题,所以查找了相关的文章,发现是transition ...

  10. Java 读取excel表格文件

    注意,本文使用的Jar包为jxl.jar,只能处理97-03版本xls格式的Excel jar包 maven依赖: <dependency> <groupId>net.sour ...