Elasticsearch에서 여러 인덱스를 가리키는 인덱스 별칭을 설정하는 방법



인덱스 앨리어싱은 인덱스를 제어할 수 있는 기능을 제공하는 Elasticsearch의 강력한 기능입니다. 가능한 한 많은 인덱스를 생성하고 별칭을 사용하여 올바른 인덱스를 가리키거나 인덱스 별칭이 모든 인덱스를 가리킬 수 있습니다(애플리케이션 요구 사항에 따라 다름).

시나리오



애플리케이션 요구 사항을 위해 Elasticsearch로 작업할 때 다음과 같은 시나리오가 있다고 상상해 보십시오.

  • 시나리오 1: 새 클러스터로 복원해야 하는 인덱스의 스냅샷이지만 복원하는 것을 잊고 대신 새 인덱스를 생성했습니다. 시간이 지남에 따라 새로 생성된 인덱스에 새 데이터가 축적되었고 스냅샷의 데이터를 새 인덱스와 결합해야 한다는 것을 깨달았습니다.

  • 시나리오 2: 특정 스키마 변경 또는 재인덱싱이 필요한 인덱스가 있습니다. 사용자가 가동 중지 시간이 거의 없이 인스턴스에서 검색할 수 있도록 하려면 새로운 스키마 변경으로 새 인덱스를 설정하고 데이터를 다시 인덱싱하십시오.

  • 다중 인덱스 앨리어싱을 소개합니다. 여러 인덱스를 가리키는 단일 인덱스 별칭을 생성할 수 있습니다. 단일 원자 작업에서 하나 이상의 별칭 작업을 수행할 수 있는 Elasticsearch의 엔드포인트가 있습니다.

    전제 조건


  • _alias/alias-name 엔드포인트 - HEAD _alias/my-alias를 사용하여 사용하려는 별칭이 아직 사용되지 않았는지 확인합니다.
  • 404를 반환하면 별칭을 사용할 수 있으며 다중 인덱스 별칭 설정에 사용할 수 있음을 의미합니다
  • .
  • 200을 반환하면 사용 중이며 다른 별칭을 선택해야 함을 의미합니다
  • .

  • 클러스터/인스턴스 내에서 색인을 쉽게 사용할 수 있는지 확인하십시오.

  • 단계


  • 이전 스냅샷이 준비되었는지 확인합니다(보조 인덱스 설정이 없는 경우).
  • 스냅샷 인덱스를 복원할 때 충돌을 방지하기 위해 인덱스 이름이 새로 생성된 이름과 달라야 합니다.
  • 필요한 경우 이전 스냅샷/클러스터에서 인덱스를 복제합니다
  • .

  • 지정된 클러스터에 대해 다음 POST 요청을 실행합니다.

  • POST /_aliases
    {
      "actions": [
        {
          "add": {
            "index": "new_index",
            "alias": "new_index_alias"
          }
        },
        {
          "add": {
            "index": "old_index",
            "alias": "new_index_alias"
          }
        }
      ]
    }
    


    하지만 새 데이터를 특정 인덱스에 기록하도록 지정하려면 어떻게 해야 할까요?



    다음과 같이 페이로드에 **is_write_index** 매개변수를 전달할 수 있습니다.

    POST /_aliases
    {
      "actions": [
        {
          "add": {
            "index": "new_index",
            "alias": "new_index_alias",
            "is_write_index": true
          }
        },
        {
          "add": {
            "index": "old_index",
            "alias": "new_index_alias"
          }
        }
      ]
    }
    


    보시다시피 Elasticsearch 인스턴스 내의 여러 인덱스를 가리키는 인덱스 별칭을 설정하는 것은 매우 간단합니다.

    별칭에서 데이터를 쿼리하려면 다음을 수행하기만 하면 됩니다.

    GET /new_index_alias/_search
    


    이렇게 하면 두 인덱스 new_indexold_index에서 쿼리하는 데 도움이 됩니다.

    이익



  • 가동 중지 시간 없음: 새로운 변경 사항이 포함된 새 인덱스를 가져오고, 준비가 되면 별칭을 새 인덱스로 지정합니다. 나중에 참조하거나 백업용으로 필요할 경우를 대비하여 이전 인덱스를 부실한 상태로 유지하십시오.

  • 다중 인덱스: 다중 인덱스를 쿼리할 수 있기를 원하십니까? 그런 다음 여러 인덱스를 가리키는 별칭을 만듭니다.

  • 자원


  • https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
  • https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-alias-exists.html
  • 좋은 웹페이지 즐겨찾기