Elasticsearch 에 csv 파일을 import 하는 여러방법들 중에 logstash 를 이용한 방법을 사용해보았다. 


나는 Gitlab을 사용하고 있어 해당 서비스에서 이슈들을 csv 파일로 추출하여 사용하였다. 

Gitlab 이슈를 csv 파일로 추출하였을 때 description 컬럼때문에 파싱이 정상적으로 되지 않아 해당 컬럼만 제거함.


아래와 같이 logstash 에서 사용할 conf 파일을 생성한다. 파일명은 본인이 원하는 것으로 생성


파일명: csv.conf

input { 

    file { 

        path => "/Users/kyungseop/Dev/Programs/elasticsearch/samples/gitlab.csv"

        start_position => "beginning"

    }

}

filter {

  csv {

    columns => ["Issue ID","URL","Title","State","Author","Author Username","Assignee","Assignee Username","Confidential","Due Date","Created At","Updated At","Cloesed At","Mildstone","Labels","Tiem Estimate","Time Spent"]

  }

}

output {

  elasticsearch { 

      hosts => ["localhost:9200"] 

      index => "gitlab"

  }

  stdout { codec => rubydebug }

}


위와 같이 config 파일을 생성하였다면 logstash 를 실행한다. 


./logstash -f csv.conf



블로그 이미지

kyungseop

공부한 내용 정리

,

* elasticsearch.yaml 파일의 reindex.remote.whitelist 프로퍼티에 remote 연결할 주소를 적는다. 여러개 일경우 콤마로 구분

예) reindex.remote.whitelist: 192.168.0.1:9200, 192.168.0.2:92000


POST _reindex

{

  "source": {

    "remote": {

      "host": "http://192.168.0.1:9200:9200",

      "socket_timeout": "1m",

      "connect_timeout": "10s"

    },

    "index": "my_source_index"

  },

  "dest": {

    "index": "my_dest_index"

  }

}

블로그 이미지

kyungseop

공부한 내용 정리

,

Elasticsearch 버전: 5.5.0


POST 인덱스/타입/_update_by_query

{

  "script": {

    "inline": "ctx._source.remove('삭제하려는 필드명')"

  },

  "query": {

    "bool": {

      "must": {

        "exists": {

          "field": "삭제하려는 필드명"

        }

      }

    }

  }

}

블로그 이미지

kyungseop

공부한 내용 정리

,

Android Studio 에서 Lombok 적용하는 방법


안드로이드가 compile-time-only dependency 라는 개념을 이해하지 못하기 떄문에 현재는 provided 형태로 

추가가 되어야 하며, lombok.config 파일을 생성하여 일부 설정도 변경해 주어야 한다.


1. Gradle

  • Add Lombok to your application's dependencies block:

     provided "org.projectlombok:lombok:1.12.6"


2. lombok.config

  • lombok.anyConstructor.suppressConstructorProperties = true
  • lombok.addGeneratedAnnotation = false


프로젝트 최상위 경로의 lombok.config 파일

3. Android Studio

Follow the previous instructions (Gradle). In addition to setting up your gradle project correctly, you need to add the Lombok IntelliJ plugin to add lombok support to Android Studio:

  • Go to File > Settings > Plugins
  • Click on Browse repositories...
  • Search for Lombok Plugin
  • Click on Install plugin
  • Restart Android Studio


Lombok 플러그인 설치



4. Result


Lombok의 @Data 적용








블로그 이미지

kyungseop

공부한 내용 정리

,