ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [엘라스틱 서치] Aliasese
    ElasticSearch 2024. 5. 7. 14:33

    이 시리즈에서는 엘라스틱서치 가이드(:8.13) 의 Alias 챕터에 대해 다루고 있습니다.

    https://www.elastic.co/guide/en/elasticsearch/reference/current/aliases.html


    Aliases

    별칭은 데이터 스트림 또는 인덱스 그룹의 보조 이름입니다.(*쉽게 말해, 1~n개를 뭉뚱그려 부르기 위한 별명이라고 생각하면 됨)

     

    대부분의 Elasticsearch API는 데이터 스트림이나 인덱스 이름 대신 별칭을 허용합니다.

    애플리케이션의 Elasticsearch 요청에 별칭을 사용하면 코드 상에서 특정 인덱스의 이름을 따로 지정하지 않아도 언제든지 인덱스의 변경및 재색인이 가능합니다.

    Alias types

    별칭에는 두 가지 유형이 있습니다.

    • data stream alias : 하나 이상의 데이터 스트림을 가리킵니다.
    • index alias : 하나 이상의 인덱스를 가리킵니다.
    더보기
    • Data Streams는 Elasticsearch 7.9 이상에서 소개된 새로운 개념으로, 관련된 데이터의 연속 흐름 (예를 들어 시간에 따라 변하는 로그 데이터 등)을 나타냅니다.

     

    Indices: 독립된 데이터 집합을 저장하는 데 사용합니다.

    Data Streams: 시간이 지남에 따라 변하는 연속적인 데이터 스트림을 관리하는 데 사용합니다.

    하나의 alias가 데이터스트림과 인덱스 둘다 가리킬수는 없습니다. 

    Add an alias : 별칭 추가

    POST _aliases
    {
      "actions": [
        {
          "add": {
            "index": "logs-nginx.access-prod",
            "alias": "logs"
          }
        }
      ]
    }

    기존 인덱스에 alias를 추가하기 위해서 index이름과, 지정할 alias를 명시합니다. 

    (인덱스 이름을 한번에 와일드 카드(*)로 지정 가능)

     

    Remove an alias : 별칭 제거하기

    POST _aliases
    {
      "actions": [
        {
          "remove": {
            "index": "logs-nginx.access-prod",
            "alias": "logs"
          }
        }
      ]
    }

    actions타입을 add, remove로 변경함으로써 별칭을 붙이거나 제거할수 있습니다.

     

    POST _aliases
    {
      "actions": [
        {
          "remove": {
            "index": "logs-nginx.access-prod",
            "alias": "logs"
          }
        },
        {
          "add": {
            "index": "logs-my_app-default",
            "alias": "logs"
          }
        }
      ]
    }

    한번에 여러 작업을 수행할 수도 있습니다. 

     

    Add an alias at index creation

    또는 인덱스를 생성하는 시점에서 별칭 정보를 함께 제공해 별칭을 추가할수 있습니다.

    # PUT <my-index-{now/d}-000001>
    PUT example-index
    {
      "aliases": {
        "my-alias": {}
      }
    }

     

    View aliases : 존재하는 별칭 확인

    모든 별칭 확인하기

    GET _alias

    다음과 같이 클러스터내 모든 인덱스에 대해 {인덱스 : 별칭 목록}이 반환됩니다.

    example-index1 : {
      "aliases": {
        "my-alias": {}
      }
    }, ..

     

    특정 인덱스의 별칭 확인하기

    GET my-data/_alias

    지정한 인덱스에 대해 {인덱스 : 별칭 목록}이 반환됩니다.

    인덱스의 이름 뿐만 아니라 인덱스를 지정할 수 있는 모든 방법(와일드 카드, 패턴, 별칭 등)을 사용할 수 있습니다. 

     

    특정 별칭을 가지고 있는 인덱스 확인하기

    GET _alias/logs (별칭 이름)

    지정한 별칭에 대해 {인덱스 : 지정한 별칭}이 반환됩니다.

     

    이 외에도 "actions - add" 요청에서 다음과 같은 동작들을 정의할 수 있습니다.

    is_write_index 특정 별칭에 대한 모든 쓰기 요청을 이 별칭을 포함하는 (하나의)인덱스 또는 데이터 스트림으로 라우팅합니다.
    filter 특정 별칭이 액세스할 수 있는 문서를 제한합니다.
    routing 특정 별칭에 대한 요청을 특정 샤드로 라우팅합니다.

     

Designed by Tistory.