Dev_duri

MariaDB to Elasticsearch_Study 본문

test_case

MariaDB to Elasticsearch_Study

marcel 2023. 1. 27. 17:41

MariaDB에 있는 데이터를 Logstash 이용하여 원하는 컬럼만 Select Elasticsearch로 적재 

 

이후, Elasticsearch에 적재되며 추가된 Timestamp 포함하여 Elastic에 붙은 PrestoDB에서 Logstash 이용하여 MariaDB에 적재하는 과정까지 테스트

초기 MariaDB에 적재되어있는 Data

> Logstash 이용하여 원하는 컬럼만 SELECT 

input {
  jdbc {
    jdbc_validate_connection => true
    jdbc_driver_library => "/usr/local/mariadb-java-client-1.1.7.jar"
    jdbc_driver_class => "Java::org.mariadb.jdbc.Driver"
    jdbc_connection_string => "jdbc:mariadb://MariadbIP/dbname"
    jdbc_user => "root"
    jdbc_password => "password"
    #schedule => "*/1 * * * *"
    statement => "SELECT colum1, colum2 from DB.Tablename"
    sql_log_level => "debug"
    record_last_run => true
    #last_run_metadata_path => "/etc/logstash/jdbc_last_run_metadata_path/mariadb"
  }
}

output {
  elasticsearch {
    hosts => ["http://hostIP:9200"]
    index => "name"
    #data_stream => "true"
    #user => "username"
    #password => "password"
  }
}​

Kibana에서 Get 쿼리로 조회한 Elasticsearch data

  •  여기까지 MariaDB  >  Logstash  >  Elasticsearch(Kibana로 조회)

 

Elasticsearch에 담긴 데이터 조회

>  Data가 담길때마다 @timestamp와 @version이 자동으로 찍히는 것을 확인할 수 있음

>  여기서 찍힌 Timestamp값을 MariaDB로 가져오고 싶어져서 간단하게 진행해보았다. 

 

Logstash 이용하여 Presto에서 MariaDB로의 Input, Output 구성  

input {
  jdbc{
       jdbc_connection_string => "jdbc:presto://10.65.41.141:8080/elsticsearch?SSL=false"
            jdbc_driver_library => "/usr/local/presto-jdbc-0.276.jar"
            jdbc_user => "user"
            jdbc_password => ""

            jdbc_driver_class => "com.facebook.presto.jdbc.PrestoDriver"
            statement => "SELECT * FROM elasticsearch.default.mariafilter"
    }
}

output {

        jdbc {
                driver_jar_path => "/usr/local/mariadb-java-client-1.1.7.jar"
                driver_class => "org.mariadb.jdbc.Driver"
                connection_string => "jdbc:mariadb://MariadbIP:3306/DB?user=root&password=Password"
                
                statement => [ "INSERT INTO DBname.TableName (colum1, colum2, timestamp) VALUES(?, ?, ?)", "colum1","colum2","@timestamp" ]
        }

}

Logstash 통해서 Timestamp 포함하여 적재한 MariaDB 데이터 조회

 

 

 

++

> Presto to MariaDB의 Logstash 코드 실행 시 warnig 뜨면서 shutdown 되는 현상 발생 > SQL이 문제라고 하는데 정확히 모르겠다. 추후 오류 수정 예정 

 

 

'test_case' 카테고리의 다른 글

Elastic/PrestoDB to Kafka_Study  (0) 2022.12.10