• Logstash同步多数据库多表到ES的配置文件


    input {
        stdin{
        }
        jdbc {
          # 连接的数据库地址和哪一个数据库,指定编码格式,禁用SSL协议,设定自动重连
          jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/userdb?characterEncoding=UTF-8&useSSL=false&autoReconnect=true"
          # 用户名密码
          jdbc_user => "user"
          jdbc_password => "password"
          
          #以下配置是为了达到增量同步的目的,每次同步结束之后会记录最后一条数据的tracking_column列,这里设置的是id,就会将这个值记录在last_run_metadata_path中。下次在执行同步的时候会将这个值,赋给sql_last_value
          
          # 是否记录上次执行结果,true表示会将上次执行结果的tracking_column字段的值保存到last_run_metadata_path指定的文件中;
          record_last_run => "true"
          # 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值;
          use_column_value => "true"
          # 需要记录的字段,用于增量同步,需是数据库字段
          tracking_column => "id"
          # record_last_run上次数据存放位置;
          last_run_metadata_path => "/u02/tomcat-8.5.9/logstash-7.6.2/bin/user_last_id"
          # 是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false;
          clean_run => "false"
          
          # jar包的位置
          jdbc_driver_library => "/u02/tomcat/mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar"
          # mysql的Driver
          jdbc_driver_class => "com.mysql.jdbc.Driver"
          jdbc_default_timezone => "Asia/Shanghai"
          # 开启分页查询(默认false不开启)
          jdbc_paging_enabled => "true"
          # 单次分页查询条数(默认100000,若字段较多且更新频率较高,建议调低此值)
          jdbc_page_size => "500"
          #注意这个sql不能出现type,这是es的保留字段
          statement => "select * from user where id > :sql_last_value ORDER BY  id asc  limit  20000"
          # 同步频率(分 时 天 月 年),默认每分钟同步一次;当前配置每10分钟执行一下 
          schedule => "*/10 * * * *"
        }
        jdbc {
          # 连接的数据库地址和哪一个数据库,指定编码格式,禁用SSL协议,设定自动重连
          jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/userdb?characterEncoding=UTF-8&useSSL=false&autoReconnect=true"
          # 用户名密码
          jdbc_user => "user"
          jdbc_password => "password"
          
          
          #这些配置是为了达到增量同步的目的,每次同步结束之后会记录最后一条数据的tracking_column列,这里设置的是id,就会将这个值记录在last_run_metadata_path中。下次在执行同步的时候会将这个值,赋给sql_last_value
          
          # 是否记录上次执行结果,true表示会将上次执行结果的tracking_column字段的值保存到last_run_metadata_path指定的文件中;
          record_last_run => "true"
          # 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值;
          use_column_value => "true"
          # 需要记录的字段,用于增量同步,需是数据库字段
          tracking_column => "id"
          # record_last_run上次数据存放位置;
          last_run_metadata_path => "/u02/tomcat-8.5.9/logstash-7.6.2/bin/dept_last_id"
          # 是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false;
          clean_run => "false"
          
          # jar包的位置
          jdbc_driver_library => "/u02/tomcat/mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar"
          # mysql的Driver
          jdbc_driver_class => "com.mysql.jdbc.Driver"
          jdbc_default_timezone => "Asia/Shanghai"
          # 开启分页查询(默认false不开启)
          jdbc_paging_enabled => "true"
          # 单次分页查询条数(默认100000,若字段较多且更新频率较高,建议调低此值)
          jdbc_page_size => "500"
          #注意这个sql不能出现type,这是es的保留字段
          statement => "select * from dept where id > :sql_last_value   ORDER BY  id asc  limit  20000"
          schedule => "*/10 * * * *"
        }
    }
    
    output {
        if [type]=="user" {
            elasticsearch {
                hosts => "127.0.0.1:9200"
                # index名
                index => "monitor_user"
                # type名
                document_type => "_doc"
                # 数据唯一索引(建议使用数据库KeyID)
                document_id => "%{id}"
            }
            # JSON格式输出
            stdout {
                codec => json_lines
            }
        }
    
        if [type]=="dept" {
            elasticsearch {
                hosts => "127.0.0.1:9200"
                # index名
                index => "monitor_dept"
                # type名
                document_type => "_doc"
                # 数据唯一索引(建议使用数据库KeyID)
                document_id => "%{id}"
            }
            # JSON格式输出
            stdout {
                codec => json_lines
            }
        }
        
    }
  • 相关阅读:
    linux rz -e
    (转载)总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
    Searching the Web论文要点
    搜索提示(search suggest)文献阅读
    C++常用数据结构(对照python)
    FM,FFM,GBDT推导
    Ranking relevance in yahoo search (2016)论文阅读
    荀子劝学篇
    不要尝试去锯木屑
    3服务器Java虚拟机配置
  • 原文地址:https://www.cnblogs.com/wueryuan/p/13230849.html
Copyright © 2020-2023  润新知