Elasticsearch 4

Elasitcsearch 지정된 mapping 정보만 입력되도록 설정하는 방법

-사용목적 elasticsearch를 사용할때 mapping 정보를 입력해서 사용하곤 합니다. 이는 특정 필드를 특정 타입으로 저장하기 위한 일정의 정의 입니다. 그런데 es를 사용할때 위와 같은 maaping의 경우 지정된 필드명에 다른 타입이 들어가는 것은 맊을 수 있으나 지정되지 않은 다른 이름의 필드가 들어가는 것을 맊을수는 없습니다. 시스템 로그를 수집하기 위해 사용하는 ES의 경우는 지정되지 않은 다른 값이 들어와도 상관 없으나(오히려 받아야됨) 무언가 시스템을 운영하는 목적의 es에는 다른 이름의 필드값이 들어가는 것은 좋은 상환은 아닙니다. "type_num" : { "type": "integer" } 위와 같이 mapping 정보를 입력후에 다른 타입의 데이터를 넣으면 입력 에러가 발생하..

IT/elasticsearch 2023.10.10

[ElasticSearch] 인덱스 mapping / dynamic strict

ElasticSearch의 인덱스 는 기존의 RDB처럼 스키마를 생성할 필요가 없습니다. 이는 기존에 존재하지 않는 인덱스에 Create API 만 호출하면 해당 인덱스가 생성되며, 들어온 정보로 Dynamic 매핑정보를 생성합니다. 이번 블로그에서는 인덱스 필드 속성 즉 mapping에 대해 알아보겠습니다. Dynamic mapping 사용자가 전달한 정보로 ElasticSearch에서 알아서 인덱스의 mapping 정보를 생성합니다. 사용자가 전달한 정보가 스트링이라면 text/keyword , 정수숫자라면 long, 논리값이라면 boolean, 날짜라면 data이런식으로 매핑이 자동으로 생성됩니다. 이런식의 Dynamic 매핑 덕분에 최초의 데이터를 쉽게 넣어서 매핑 정보를 확인 하거나 할때 유용하..

IT/elasticsearch 2023.08.21

Elasticsearch index template 만들기

elasticsearch 에서는 R-DBMS의 테이블의 스키마/아키텍쳐와 같은 것이 elastic의 인덱스(테이블)에는 존재하지 않습니다. 이를 비/반정형 데이터라 부르며 정형 데이터와 달리 넣는 그대로 네이과 내용이 들어간다(elastic은 반정형 데이터 입니다) 그렇다면 elastic에서 데이터의 구조가 없이 들어간다면 나중에 통계나 서치를 하는 부분의 문제가 생길수 있습니다. 그렇기 때문에 보통은 index를 생성할때 mapping이나 setting을 할수 있으나 이도 인덱스가 생성될때 마다 정의를 하기에는 어려운 일입니다. 그래서 elastic에는 index_template 라는 기능이 있으며 , template 사용시 특정인덱스의 생성시 특정 컬럼(이름)의 특정 데이터 형테를 지정할수 있습니다...

IT/elasticsearch 2022.09.14

elasticsearch - ilm 설정하기

elasticsearch 에서는 시계열 인덱스 저장 관리를 hot, warm, cold 로 진행을 할수 있다 이는 서버의 자원을 효율적으로 쓰기위한 방법이라고 생각하면 된다 서버 자원이 전부 좋다고 한다면 hot 혹은 그냥 data_contant 노드에 넣어두면 되나 우리는 조금이라도 서버를 효율적으로 사용해야 하기 때문에 ILM을 설정해서 운영하는것이 효율적이라 할 수 있다 * 추가로 같은 종류의 노드를 운영하는 서버는 스펙이 같은게 좋습니다. 서능이 낮은 서버가 있다면 해당 인덱스의 속도는 하향 평준화 됩니다. 참고 자료 https://www.elastic.co/guide/en/elasticsearch/reference/8.4/index-lifecycle-management.html ILM: Mana..

IT/elasticsearch 2022.08.30