'aliases'에 해당되는 글 2건

  1. 2014.02.24 [elasticsearch] alias 설정 시 주의 사항.
  2. 2013.04.17 [elasticsearch] Indices API - Aliases

[elasticsearch] alias 설정 시 주의 사항.

Elastic/Elasticsearch 2014. 2. 24. 13:46

[참고문서]

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-aliases.html


elasticsearch에서 제공하고 있는 alias 기능은 매우 유용하게 사용할 수 있습니다.


1. 기본기능 - 별칭

- 분리 구성된 여러개의 인덱스를 묶어 하나의 인덱스처럼 사용이 가능합니다. 물론 검색 시 여러 인덱스로 질의할 수 있으나 매개변수로 지정해야 하는 불편함이 존재 하게 됩니다.

- 말 그대로 alias 기능의 별칭은 검색 목적에 맞게 인덱스 구성을 할 수 있다는 장점을 제공해 줍니다.


2.검색기능 - 필터

- 별칭 지정 후 filter 기능을 이용하여 별도 색인 또는 데이터 가공없이 가상의 인덱스를 구성할 수 있게 됩니다. 어디서 활용이 가능 할까요? 실시간 분석이나 사전 색인데이터 필터링을 통해 기능 확장이 가능해 보입니다.

- 검색 조건에서 사용하는 필터와 같은 기능을 제공하기 때문에 활용 범위는 다양합니다.


3. 분산/게이트웨이기능 - 라우팅

- 색인 시 지정한 샤드로만 데이터를 모을수도 있고, 검색 시 지정한 샤드로만 검색 질의를 수행할 수 있습니다.

- 즉, 불필요한 데이터 분산(샤딩) 작업을 줄일 수 있는 기능 입니다.

※ 샤드 지정 시 string 으로 지정해야 정상적으로 설정이 됨.


전에도 언급한적이 있지만 별칭을 통해 전체색인한 인덱스를 변경할 경우 서비스 다운타임 없이 적용하는데 유용한 기능이니 참고 하시면 좋을 것 같습니다.

:

[elasticsearch] Indices API - Aliases

Elastic/Elasticsearch 2013. 4. 17. 10:26

본 문서는 개인적인 테스트와 elasticsearch.org 그리고 community 등을 참고해서 작성된 것이며,

정보 교환이 목적입니다.


잘못된 부분에 대해서는 지적 부탁 드립니다.

(예시 코드는 성능 및 보안 검증이 되지 않았습니다.)



[elasticsearch API 리뷰]

원문 링크 : http://www.elasticsearch.org/guide/reference/api/admin-indices-aliases/


[Indices Aliases]

이 API 는 index name 의 별칭을 생성 및 삭제를 할 수 있도록 한다.

하나의 별칭에 여러개의 index name 을 등록 할 수도 있으며 filter 를 통해 같은 index 의 또 다른 view 를 구현 할 수 있다.

관련 예제는 원문에 잘 나와 있기 때문에 Java API 샘플 코드만 살펴 보도록 한다.


[샘플코드 : IndicesAliasesRequestBuilder.java]

clientManager.openClient();                    // singletone 객체를 이용한 connection manager

Client client = clientManager.getClient();

AdminClient admin = client.admin();

ClusterAdminClient cluster = admin.cluster();

IndicesAdminClient indices = admin.indices();


IndicesAliasesRequestBuilder aliases = new IndicesAliasesRequestBuilder(indices);

IndicesAliasesResponse response = aliases.addAlias("blog", "aliases_blog2")

.removeAlias("blog",  "aliases_blog1")

.execute()

.actionGet();


log.debug("{}", response);        // slf4j logger


[Filtered Aliases]

curl -XPOST 'http://localhost:9200/_aliases' -d ' { "actions" : [ { "add" : { "index" : "test1", "alias" : "alias2", "filter" : { "term" : { "user" : "kimchy" } } } } ]

}'

- 이미 위에서 언급 했듯이 RDBMS 에서 사용하는 view table 과 비슷한 목적으로 사용이 가능 하다고 이해 하면 쉽다.

: