mysqlデータをES 6に同期する.4(全量+増分)

3010 ワード

インストールパッケージをダウンロードするときに、指定したフォルダにダウンロードすることに注意します.ここではOPTフォルダの次に置きます.logstashをインストールしてoptフォルダに入ります.端末を開いて、次のコマンドwget-cを実行します.https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.zipプラス-cサポートブレークポイント続伝2:解凍logstashunzip logstash-6.4.0.zip 3:logstash binディレクトリcd logstash-6.4に入ります.0/bin 4:logstash-jdbc./をインストールlogstash-plugin install logstash-input-jdbc 5:プロファイル(jdbc.sqlとjdbc.confを作成し、binディレクトリの下vim jdbc.confを推奨する)6:まずbinディレクトリの下にmysqlディレクトリを新規作成し、jdbcを含む.conf,jdbc.sqlファイル、mysqlのドライバjdbcを追加conf内容:
input {
    stdin {
    }
    jdbc {
      #                ,      ,  SSL  ,      
      jdbc_connection_string => "jdbc:mysql://     :   /    ?characterEncoding=UTF-8&useSSL=false&autoReconnect=true"
      #       
      jdbc_user => "  "
      jdbc_password => "  "
      #          ,        
      jdbc_driver_library => "mysql/mysql-connector-java-5.1.45-bin.jar"
      #        
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"

    #        
      codec => plain { charset => "UTF-8"}

       #        ,      
      use_column_value => true
       #           
    tracking_column => testid      
    record_last_run => true     
    #   sql_last_value        ,                     
    last_run_metadata_path => "mysql/station_parameter.txt"

      jdbc_default_timezone => "Asia/Shanghai"
 
      statement_filepath => "mysql/jdbc.sql"
      

    #     last_run_metadata_path    ,                          
    clean_run => false

      #        ,             ,      
      schedule => "* * * * *"
      type => "jdbc"
    }
}


filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}
 
 
output {
    elasticsearch {
        #      Elasticsearch     
        hosts => "192.168.105.180:9200"
        #      Elasticsearch      
        index => "db_anytest"
        #     (       )
        document_type => "table_anytest"
        #     (       )
        document_id => "%{testid}"
        
    }

    stdout {
        # JSON    
        codec => json_lines
    }
    
}

 
jdbc.sqlには直接sql文を書けばいいです
全量同期sql文はtestidを書かない増分同期にwhere条件where testid>:sql_last_value 7:インポートを開始します(rootアカウントで起動する必要があります).logstash -f mysql/jdbc.conf