해결된 질문
작성
·
49
0
안녕하세요 궁금한게 있어서 질문 남깁니다.
기존 인덱스 맵핑을 업데이트 하는 방법의 경우 새로 인덱스를 생성하고 리인덱싱 api 를 이용하여 데이터를 옮기고 색인을 새로 하는 걸로 강의를 보고 학습했습니다.
그렇다면 실무환경에서 롤오버되어있는 인덱스의 경우 어떻게 처리를 하면 좋을지 질문 남깁니다.
롤오버 될 경우
rollover-test-000001
rollover-test-000002
rollover-test-000003
...
이런식으로 인덱스가 생성이 되어있을텐데
전부 새로 생성하고 리인덱싱 해줘야 하는 부분일까요
아니면 실무에서는 다른 방법을 사용하는걸까요
답변 1
1
안녕하세요 박제원님,
롤오버 인덱스를 사용할 때의 맵핑 업데이트 방법은 일반적인 인덱스와는 조금 다릅니다. 롤오버 인덱스 구조에서는 매번 새 인덱스가 생성되기 때문에, 맵핑 변경 시 모든 기존 인덱스를 다 리인덱싱하는 것은 비효율적입니다.
실무에서 롤오버 인덱스의 맵핑을 업데이트하는 방법은 보통 다음과 같은 단계로 진행됩니다
롤오버 인덱스를 생성할 때는 보통 인덱스 템플릿을 사용하여 인덱스의 맵핑 및 설정을 자동으로 적용하게 합니다. 그래서 새로운 맵핑이 필요하다면, 먼저 인덱스 템플릿을 업데이트합니다. 이렇게 하면 다음 롤오버 시 새로 생성되는 인덱스부터는 업데이트된 맵핑이 적용됩니다.
인덱스 템플릿을 업데이트한 후에 기존 인덱스에 대해서는 롤오버를 통해 새로운 인덱스를 생성합니다. 이 새로운 인덱스에는 업데이트된 맵핑이 적용됩니다.
기존에 생성된 롤오버 인덱스들에 대해서도 업데이트된 맵핑이 적용되어야 한다면, 리인덱싱이 필요합니다. 하지만 롤오버 구조에서는 이전 데이터는 종종 변경되지 않거나, 읽기 전용으로 사용되므로 꼭 모든 인덱스를 리인덱싱할 필요는 없습니다. 새로 추가된 맵핑 필드가 필요한 경우나 변경된 필드에 대한 접근이 필요할 때만 리인덱싱을 고려하면 됩니다.
필드가 점진적으로 추가되는 경우: 기존의 모든 롤오버 인덱스에 대한 리인덱싱 없이도 새로운 인덱스에만 적용할 수 있습니다.
읽기 전용 인덱스 관리: 오래된 인덱스는 읽기 전용으로 설정하고 변경이 필요한 경우 최소한의 리인덱싱을 수행해 비용과 리소스를 절약할 수 있습니다.
데이터 수명 주기 관리: ILM(인덱스 수명 주기 관리)을 사용하여 특정 시간 이후에 오래된 인덱스를 아카이브하거나 삭제하는 전략을 사용할 수 있습니다.
흐음... 쉽게 말하자면, 롤오버 인덱스에서 맵핑 업데이트가 필요한 경우 새로운 템플릿을 설정하고, 이후 새롭게 롤오버되는 인덱스에 새로운 맵핑을 적용하는 방식이 실무에서 흔히 사용됩니다. 꼭 필요한 경우에만 기존 인덱스에 대해 리인덱싱을 고려하는 것이 좋습니다.
웬만하면 기존 롤오버된 인덱스의 경우 그대로 두고 새로 생성되는 인덱스부터 적용하는게 낫다는 의견이시군요. 상세한 답변 감사합니다.