Skip to content
APE
  • 首页

Tag logstash

  • 首页   /  
  • 标签: "logstash"
Elasticsearch, logstash, MySQL 11 月 24,2022

logstash 配置jdbc数据源 output 到 Elasticsearch

input {
  jdbc {
    # MySQ驱动配置
    jdbc_driver_library => "D:\apps\logstash-7.14.0\config\mysql-connector-java-5.1.42.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/db_name?characterEncoding=UTF-8&useSSL=false"
    jdbc_user => root
    jdbc_password => root
    #是否进行分页
    #jdbc_paging_enabled => "false"
    #jdbc_page_size => "5000"
    #增量查询参考字段(SQL中 :sql_last_value 变量会替换为该值)
    tracking_column => "vr_id"
    tracking_column_type => "numeric"
    #这个文件需要自己创建出来 作用就是记录tracking_column的值(重启不会重置) 下次执行同步数据库的操作的时候直接从这个标识查起,文件名随意起
    last_run_metadata_path => "D:\apps\logstash-7.14.0\config\last_run_metadata\textrepair.txt"
    use_column_value => true
    # statement_filepath => "sql文件路径,与下面的执行语句二选1"
    statement => "SELECT * FROM table_name WHERE vr_id > :sql_last_value"
    # 设置监听间隔  各字段含义(由左至右)秒、分、时、天、月、年,全部为*默认含义为每分钟都更新
    # "*/5 * * * * *"  5秒钟执行一次
    schedule => "*/5 * * * * *"
  }
  
  jdbc {
    jdbc_driver_library => "D:\apps\logstash-7.14.0\config\mysql-connector-java-5.1.42.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/db_name?characterEncoding=UTF-8&useSSL=false"
    jdbc_user => root
    jdbc_password => root
    #是否进行分页
    #jdbc_paging_enabled => "false"
    #jdbc_page_size => "5000"
    #增量查询参考字段(SQL中 :sql_last_value 变量会替换为该值)
    tracking_column => "vr_id"
    tracking_column_type => "numeric"
    #这个文件需要自己创建出来 作用就是记录tracking_column的值(重启不会重置) 下次执行同步数据库的操作的时候直接从这个标识查起,文件名随意起
    last_run_metadata_path => "D:\apps\logstash-7.14.0\config\last_run_metadata\videorepair.txt"
    use_column_value => true
    # statement_filepath => "sql文件路径,与下面的执行语句二选1"
    statement => "SELECT * FROM table_name WHERE vr_id > :sql_last_value"
    # 设置监听间隔  各字段含义(由左至右)秒、分、时、天、月、年,全部为*默认含义为每分钟都更新
    schedule => "*/5 * * * * *"
  }
  
  jdbc {
    #如果配置多个数据源需要用type来区分
    type => "schematic_diagram"
    jdbc_driver_library => "D:\apps\logstash-7.14.0\config\mysql-connector-java-5.1.42.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/db_name?characterEncoding=UTF-8&useSSL=false"
    jdbc_user => root
    jdbc_password => root
    #是否进行分页
    #jdbc_paging_enabled => "false"
    #jdbc_page_size => "5000"
    #增量查询参考字段(SQL中 :sql_last_value 变量会替换为该值)
    tracking_column => "product_id"
    tracking_column_type => "numeric"
    #这个文件需要自己创建出来 作用就是记录tracking_column的值(重启不会重置) 下次执行同步数据库的操作的时候直接从这个标识查起,文件名随意起
    last_run_metadata_path => "D:\apps\logstash-7.14.0\config\last_run_metadata\schematic_diagram.txt"
    use_column_value => true
    # statement_filepath => "sql文件路径,与下面的执行语句二选1"
    statement => "SELECT * FROM table_name WHERE product_id > :sql_last_value"
    # 设置监听间隔  各字段含义(由左至右)秒、分、时、天、月、年,全部为*默认含义为每分钟都更新
    schedule => "*/5 * * * * *"
  }
  
  jdbc {
    #如果配置多个数据源需要用type来区分
    type => "program"
    jdbc_driver_library => "D:\apps\logstash-7.14.0\config\mysql-connector-java-5.1.42.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/db_name?characterEncoding=UTF-8&useSSL=false"
    jdbc_user => root
    jdbc_password => root
    #是否进行分页
    #jdbc_paging_enabled => "false"
    #jdbc_page_size => "5000"
    #增量查询参考字段(SQL中 :sql_last_value 变量会替换为该值)
    tracking_column => "program_id"
    tracking_column_type => "numeric"
    #这个文件需要自己创建出来 作用就是记录tracking_column的值(重启不会重置) 下次执行同步数据库的操作的时候直接从这个标识查起,文件名随意起
    last_run_metadata_path => "D:\apps\logstash-7.14.0\config\last_run_metadata\program.txt"
    use_column_value => true
    # statement_filepath => "sql文件路径,与下面的执行语句二选1"
    statement => "SELECT * FROM table_name WHERE program_id> :sql_last_value"
    # 设置监听间隔  各字段含义(由左至右)秒、分、时、天、月、年,全部为*默认含义为每分钟都更新
    schedule => "*/5 * * * * *"
  }
}

output {
  if[type]=="text"{
    elasticsearch {
      document_id => "%{vr_id}"
      index => "knowledge_textrepaires"
      hosts => ["localhost:9200"]
      template_overwrite => true
    }
  }
  
  if[type]=="video"{
    elasticsearch {
      document_id => "%{vr_id}"
      index => "knowledge_videorepaires"
      hosts => ["localhost:9200"]
      template_overwrite => true
    }
  }
  
  if[type]=="schematic_diagram"{
    elasticsearch {
      document_id => "%{product_unique_code}"
      index => "knowledge_schematicdiagrames"
      hosts => ["localhost:9200"]
      template_overwrite => true
    }
  }
  
  if[type]=="program"{
    elasticsearch {
      document_id => "%{program_id}"
      index => "knowledge_programes"
      hosts => ["localhost:9200"]
      template_overwrite => true
    }
  }
  
  # 这里输出调试,正式运行时可以注释掉
  stdout{
    codec => rubydebug
  }
}

注意事项

  1. 如果SQL查询结果中存在type字段output中根据type控制输出位置使用的是查询返回的type,此时配置文件中的type无效,展现出来的效果会误认为通过if控制输出位置无效

运行环境

  • logstash 7.14.0
  • Elasticsearch 7.14.0
  • MySQL 5.7
作者 peng

Just For You - 李嘉格,李唯枫

http://cdn.ape.ren/wp-content/uploads/2020/09/1600942088-Just-For-You-李嘉格李唯枫.mp3

近期文章

  • logstash 配置jdbc数据源 output 到 Elasticsearch 2022年11月24日
  • MySQL SQL性能分析Explain执行计划 2020年12月11日
  • CentOS 7安装MySQL8.0配置主从复制 2020年12月8日
  • Nginx配置二级目录访问ThinkPhp 2020年1月20日
  • Android Gradle更换为阿里源 2019年11月26日
  • Swift5 iOS 集成支付宝支付 2019年10月27日
  • Swift5 iOS 集成百度语音识别 2019年7月10日
  • Swift5 UISwitch基本使用方法 2019年5月18日
  • Swift5 监听TextField/TextView软键盘return按钮点击事件 2019年5月17日
  • Swift5监听软键盘弹出、隐藏事件 2019年5月17日
  • Android图像加载之Picasso 2019年5月14日

近期评论

    归档

    • 2022 年 11 月 (1)
    • 2020 年 12 月 (2)
    • 2020 年 1 月 (1)
    • 2019 年 11 月 (1)
    • 2019 年 10 月 (1)
    • 2019 年 7 月 (1)
    • 2019 年 5 月 (4)

    分类

    • Android (2)
    • Elasticsearch (1)
    • iOS (5)
    • logstash (1)
    • MySQL (3)
    • Nginx (1)
    • Swift (5)
    • 前端 (5)

    标签

    Alipay Android CentOS 7 Elasticsearch Gradle iOS logstash MySQL MySQL8.0 Nginx PHP SQL优化 Swift ThinkPHP 支付宝 语音识别

    其他操作

    • 登录
    • 条目 feed
    • 评论 feed
    • WordPress.org

    渝ICP备19006962号-1
    All Rights Reserved by BusiProf. Designed and Developed by WordPress Theme.