로그 스태시란? 로그 스태시는 지어진 이름 처럼 과거에는 어플리케이션들에서 발생하는 로그들을 엘라스틱서치에 전달하는 역활만을 해왔다. 이는 가장 많이 활용해왔던 수단 중 하나였지만 점점 발점해오면서 데이터 전달하고 필터링 하는 역활도 할 수 있게 되었고 나중에는 인기 있는 데이터 파이프 라인 툴 중 하나로 자리잡게 되었다. 로그스태시는 다양한 이벤트들을 전달받아 핸들링할 수 있다. 이러한 이점은 다양한 형태의 데이터 처리 할 수 있다는 의미이기도 하다. 예를 들어 로그 파일, 이커머스 주문 정보들, 고객 정보들, 채팅 메시지 등 다양한 정보들을 카프카, 이메일, HTTP 엔드포인트등 다양한 곳으로 전송 된다. 로그 스태시의 세가지 단계 로그스태시의 파이프라인은 3가지의 단계를 거쳐서 활용된다. 바로 입력..
Elasticsearch
매핑이란? 애널라이저를 알기전에 가장 먼저 알아야 하는 것은 매핑이다. 매핑을 데이터 베이스와 비교하자면 테이블을 정의한 스키마와 비슷하다고 볼 수 있다. 인덱스의 필드와 타입을 정의하여 활용할 수 있습니다. 예시 curl -XPUT 127.0.0.1:9200/movies -d { "mappings": { "properties": { "year": {"type": "date"} } } } Elasticsearch는 기본적으로 REST API를 통해 통신을 하기 때문에 curl을 활용하여 인덱스를 정의했다. movies라는 인덱스를 생성하고 인덱스안에서는 year라는 필드가 존재하고 date타입인 것을 확인할 수 있다. 그외에도 인덱스는 아래와 같이 활용할 수 있다. 필드 타입 정의 엘라스틱은 date타입..
성능 개선과 안정화 더 빠른 상위 검색: 이전에는 "이것", "을"과 같이 빈번하게 등장하는 용어를 쿼리에 입력했을 때 도큐먼트의 점수를 계산하도록 하였지만 이는 검색을 최적화하는데 효과적이지 못했다. 그래서 이제는 이런 빈번한 단어들은 건너뛰고 전체 도큐먼트가 아닌 top 10,000개의 도큐먼트에서 쿼리를 합니다 Adaptive Replica Selection Elasticsearch는 데이터를 분산 처리하기 위해 샤딩(sharding)을 사용합니다. Elasticsearch 7에서는 샤딩 관련 알고리즘과 프로세스를 개선하여 샤딩을 더 효율적으로 관리하게 되었고, 이로 인해 대규모 데이터 세트에 대한 검색 및 인덱싱 성능이 향상되었습니다. 이전에는 라운드로빈 방식으로 레플리카 노드에 전달되었지만 이제..
Elastic search Download(Mac) 아래에서 링크를 통해 다운로드하고자 하는 엘라스틱서치 버전을 선택하여 다운로드 합니다. https://www.elastic.co/kr/downloads/past-releases#elasticsearch Past Releases of Elastic Stack Software Looking for a past release of Elasticsearch, Logstash, Kibana, es-hadoop, Shield, Marvel, or our language clients? You're in the right place. www.elastic.co 다운로드 받은 파일을 압축해제합니다. 터미널을 실행시키고 설치된 엘라스틱서치 디렉토리로 이동후 ./bin/..
Elaticsearch 1 IndexCreationException 트러블 슈팅 레거시 버전을 사용하다가 아래와 같은 에러 발생으로 Index를 생성하는데에 실패하였다. Custom Analyzer [custom_analyzer] failed to find tokenizer under name [my_tokenizer] 현재 프로젝트에서는 한글 형태소(ko-tokenizer)를 사용하고 있지만 현재 설치된 플러그인에는 존재하지 않기 때문에 발생하는 문제였다. elastic7 부터는 nori 라는 tokenizer를 공식적으로 지원하고 있지만 레거시 버전인 ES1 같은 경우는 따로 지원하지 않기 때문에 따로 플러그인을 설치해줘야한다. Mecap 플러그인 설치 ./bin/plugin --install ana..
elasticsearch를 사용해야되는 상황이 생겨서 직접 실습하고 사용하기전에 elasticsearch에 대한 전체적인 구조에 대한 간단한 이해와 elasticsearch와 함께 사용되는 툴들이 어떤 것이 있고 어떤 용도로 활용되는지 이해하기 위해 글로 정리하려고 한다. 인덱스(index) VS 역인덱스(inverted index) Elastic Search는 Lucene의 역인덱스(역색인)을 활용하여 높은 검색 성능을 자랑하는데 대체 역색인이 어떤 구조를 가지고 있고 어떤 역활을 하기에 Elasticserach의 높은 검색 성능에 도움을 주는지 인덱스와 비교하여 알아보려고한다. 인덱스(Index) 인덱스부터 간단하게 설명하자면 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스의 테이블에서 특정 ..