Elasticsearch에서 기본 샤드 수를 늘리는 방법

Elasticsearch에서 기본 샤드 수를 늘리는 방법을 살펴봅니다.

Elasticsearch가 처음이신가요? Elasticsearch 입문용 웨비나에 참여하세요. 지금 무료 클라우드 체험을 시작하거나, 내 기기에서 Elastic을 사용해 볼 수 있습니다.

기존 인덱스의 기본 샤드 수는 늘릴 수 없으므로, 기본 샤드 수를 늘리려면 인덱스를 다시 생성해야 합니다. 이러한 상황에서 일반적으로 사용되는 메서드는 _reindex API와 _split API의 두 가지입니다.

split API는 _reindex API보다 더 빠른 방법인 경우가 많습니다. 두 작업 전에 인덱싱을 중지해야 하며, 그렇지 않으면 source_index와 target_index 문서 수가 달라집니다.

방법 1 - 분할 API 사용

분할 API는 설정을 복사하고 기존 인덱스를 매핑하여 원하는 기본 샤드 수로 새 인덱스를 생성하는 데 사용됩니다. 생성 시 원하는 기본 샤드 수를 설정할 수 있습니다. 분할 API를 구현하기 전에 다음 설정을 확인해야 합니다:

  1. 소스 인덱스는 읽기 전용이어야 합니다. 즉, 인덱싱 프로세스를 중지해야 합니다.
  2. 대상 인덱스의 기본 샤드 수는 소스 인덱스의 기본 샤드 수의 배수여야 합니다. 예를 들어, 소스 인덱스에 기본 샤드가 5개인 경우, 대상 인덱스 기본 샤드를 10,15,20 등으로 설정할 수 있습니다.

참고: 기본 샤드 번호만 변경해야 하는 경우, 재인덱스 API보다 훨씬 빠른 분할 API를 사용하는 것이 좋습니다.

분할 API 구현하기

테스트 인덱스를 만듭니다:

소스 인덱스는 읽기 전용이어야 분할할 수 있습니다:

설정 및 매핑은 소스 인덱스에서 자동으로 복사됩니다:

진행 상황을 확인할 수 있습니다:

설정과 매핑은 소스 인덱스에서 복사되므로 대상 인덱스는 읽기 전용입니다. 대상 인덱스에 대한 쓰기 작업을 활성화해 보겠습니다:

원본 인덱스를 삭제하기 전에 소스 및 대상 인덱스 docs.count를 확인하세요:

인덱스 이름과 별칭 이름은 같을 수 없습니다. 소스 인덱스를 삭제하고 소스 인덱스 이름을 대상 인덱스에 별칭으로 추가해야 합니다:

test_split_source 별칭을 test_split_target 인덱스에 추가한 후 이를 테스트해야 합니다:

방법 2 - 재인덱스 API 사용

리인덱스 API로 새 인덱스를 생성하면 기본 샤드 개수를 얼마든지 지정할 수 있습니다. 원하는 수의 기본 샤드로 새 인덱스를 생성한 후, 소스 인덱스의 모든 데이터를 이 새 인덱스로 다시 색인할 수 있습니다.

분할 API 기능 외에도, 재인덱스 AP의 ingest_pipeline을 사용하여 데이터를 조작할 수 있습니다. 수집 파이프라인을 사용하면 필터에 맞는 지정된 필드만 쿼리를 사용하여 대상 인덱스로 색인됩니다. 간편한 스크립트를 사용하여 데이터 콘텐츠를 변경할 수 있으며, 여러 인덱스를 단일 인덱스로 병합할 수 있습니다.

재색인 API 구현하기

테스트 재인덱스를 만듭니다:

소스 인덱스에서 설정 및 매핑을 복사합니다:

설정, 매핑, 원하는 샤드 수로 대상 인덱스를 생성합니다:

*주: number_of_replicas: 0, refresh_interval: -1로 설정하면 재인덱싱 속도가 빨라집니다.

재색인 프로세스를 시작합니다. requests_per_second=-1 및 slices=auto를 설정하면 재인덱스 속도가 조정됩니다.

재인덱스 API를 실행하면 task_id를 볼 수 있습니다. 이를 복사하여 _tasks API로 확인합니다:

재색인 작업이 완료된 후 설정을 업데이트합니다:

원본 인덱스를 삭제하기 전에 소스 인덱스와 대상 인덱스 docs.count를 확인하면 동일해야 합니다:

인덱스 이름과 별칭 이름은 같을 수 없습니다. 소스 인덱스를 삭제하고 소스 인덱스 이름을 대상 인덱스에 별칭으로 추가합니다:

test_split_source 별칭을 test_split_target 인덱스에 추가한 후 다음을 사용하여 테스트합니다:

요약

기존 인덱스의 기본 샤드 수를 늘리려면 새 인덱스에 대한 설정과 매핑을 다시 만들어야 합니다. 이를 위한 두 가지 주요 방법은 재색인 API와 분할 API입니다. 두 방법 중 하나를 사용하기 전에 활성 인덱싱을 중지해야 합니다.

관련 콘텐츠

최첨단 검색 환경을 구축할 준비가 되셨나요?

충분히 고급화된 검색은 한 사람의 노력만으로는 달성할 수 없습니다. Elasticsearch는 여러분과 마찬가지로 검색에 대한 열정을 가진 데이터 과학자, ML 운영팀, 엔지니어 등 많은 사람들이 지원합니다. 서로 연결하고 협력하여 원하는 결과를 얻을 수 있는 마법 같은 검색 환경을 구축해 보세요.

직접 사용해 보세요