Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

벌꿀오소리가 되고싶은

[엘라스틱서치]Logstash와 JDBC를 사용해 Elasticsearch와 관계형 데이터베이스의 동기화를 유지하는 방법 본문

개발/엘라스틱서치

[엘라스틱서치]Logstash와 JDBC를 사용해 Elasticsearch와 관계형 데이터베이스의 동기화를 유지하는 방법

허니배져 2022. 8. 16. 14:25

도커 호스트 to 컨테이너 파일전송

mysql driver jar 파일 전송

How to Use Docker Cp to Copy Files Between Host and Containers

 

How to Use Docker Cp to Copy Files Between Host and Containers

Need to get some files into or out of a Docker container? The docker cp command lets you copy between host and container filesystems so you can add config details, create backups, and restore existing data.

www.howtogeek.com

Logstash와 JDBC를 사용해 RDBMS와 Elasticsearch의 동기화를 유지하는 방법

 

Logstash와 JDBC를 사용해 RDBMS와 Elasticsearch의 동기화를 유지하는 방법

Elasticsearch가 기존 관계형 데이터베이스(RDBMS)와 더불어 검색 솔루션으로 배포될 때, 두 데이터 저장소 간에 데이터 동기화를 유지하는 것이 중요합니다. Logstash JDBC 입력 플러그인을 이용해 손쉽

www.elastic.co

pipeline/logstash.conf

input {
  jdbc {
    jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/**mysql-connector-java-5.1.49-bin.jar**"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://**172.19.0.5**:3306/es_db?useUnicode=true&characterEncoding=utf8"
    jdbc_user => "root"
    jdbc_password => "password"
    tracking_column => "unix_ts_in_secs"
    use_column_value => true
    tracking_column_type => "numeric"
    statement => "SELECT *, UNIX_TIMESTAMP(modification_time) AS unix_ts_in_secs FROM es_table WHERE (UNIX_TIMESTAMP(modification_time) > :sql_last_value AND modification_time < NOW()) ORDER BY modification_time ASC"
    jdbc_pool_timeout => 10
    jdbc_paging_enabled => true
    jdbc_page_size => 10000

    schedule => "*/5 * * * * *"
  }

}
filter {
  mutate {
    copy => { "id" => "[@metadata][_id]"}
    remove_field => ["id", "@version", "unix_ts_in_secs"]
  }
}

output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
      hosts => ["172.19.0.2:9200"]
      index => "rdbms_sync_idx"
      document_id => "%{[@metadata][_id]}"
  }
}
  • docker network 생성하여 네트워크 묶어줄것 내부 통신 가능

실행 명령어 예시

bin/logstash --path.data data_ -f pipeline/logstash.conf
Comments