Develope/Programming

ElasticSearch - 2. Index Rolling

고로이 2017. 10. 31. 13:56
반응형
2. 인덱스 롤링

 2-1. 개요
홈페이지 번역 문서를 보면 인덱스 롤링에 관한 문서가 있다.
인덱스 롤링을 aliase, 별칭을 통해 지정하는데,


설명서 번역본이다. 


2-2. 설정
     1) template 수정
test 템플릿으로 가서, 다음과 같이 추가하였다.

....
  "settings": {
    "index.number_of_shards": 3,
    "index.mapping.total_fields.limit": 10000,
    "index.refresh_interval": "5s"
  },
  "aliases": {
     "test_aliase": {}
  },
  "template": "test*"
}

이제 test 인덱스들은 test_aliase라는 별칭을 가지게 된다.

     2) Index 생성
롤오버를 할 인덱스를 생성한다. 
 curl -XPUT 192.168.0.4:9200/%3Ctest-%7Bnow%2Fd%7D-1%3Erett

위와 같이 put을 했다면 index는  test-2017.05.26(현재날짜)-1(index) << 와 같이 생성된다

     3) java consumer 수정
consumer는 index가 아닌 Aliase를 가르키도록 수정해야 한다.

index_response = client.prepareIndex(index+"_aliase"type)
        .setSource(msg)
        .execute()
        .actionGet();


     4) rollover
curl -XPOST 192.168.0.4:9200/test_aliase/_rollover?pretty -d'{"conditions": {"max_age": "30m","max_docs": 10}}'

test_aliase의 시간이 30분이 지나잇고, doc이 10개가 넘으면 분기하라는 명령어


2-3. 결과

     1) 24시간이 안지나서 파일명의 변경을 확인하지 못하였다.

*in ElasticSearch Document* 
Rolls over to a new index with today’s date, e.g. logs-2016.10.31-000002 if run immediately, or logs-2016.11.01-000002 if run after 24 hours

24시간이 지나면 이름이 바뀐다고 하는데 아직 test 못해봄




170529) 테스트 추가





     2) auto로 적용되는 것이 아닌, 직접 명령어를 실행해야 한다.

일정조건 이상일 때 rolling 되는 것이 아닌
rolling 실행 시, 조건에 맞으면 rollover가 된다..


2-4. 결론1

    1) auto 방법이 있을 것 같은데 아직 찾지를 못하였다.

     2) 아래와 같이 rollover로 끝난 노드들은 aliases 가 없다;

2-5. 결론2. 

Curator를 깔자


반응형