TIL💡/Elastic Stack(6)
-
[Elastic Stack] 키바나
인덱스 패턴 키바나에서 시각화를 하기 위해서는 반드시 엘라스틱 서치 인덱스에 연결되어야만 한다. 키바나는 데이터 소스를 엘라스틱서치 인덱스에서 가져오는데 이를 인덱스 패턴(index patterns)라고 한다. 키바나에서는 인덱스패턴을 통해서만 엘라스틱서치 인덱스에 접근할 수 있다. 키바나는 엘라스틱서치 인덱스가 아니라 키바나 인덱스 패턴을 데이터 소스로 인식하기 때문이다. 인덱스 패턴이 있으면 키바나 데이터 탐색과 시각화가 가능하다.
2022.11.09 -
[Elastic Stack] 로그 스태시
로그 활용을 위해 로그를 수집하는 쪽에서 로그 형태를 분석하고 시스템에서 인식할 수 있도록 로그를 정제하는 작업이 필요한데, 로그스태시는 이 과정을 쉽고 편하게 할 수 있도록 지원한다. 어떤 형태의 로그에 대해서도 로그를 수집 - 가공 - 전송하는 일련의 과정을 간편하게 구현하기 위한 강력한 기능까지 제공한다. 로그 스태시 특징 플러그인 기반 로그 스태시의 파이프라인을 구성하는 각 요소들은 전부 플러그인 형태로 만들어져 있다. 모든 형태의 데이터 처리 대다수의 데이터 소스에서 JSON, XML 등의 구조화된 텍스트뿐만 아니라 다양한 형태의 데이터를 입력받아 가공한 다음에 저장할 수 있다. 특히 이벤트 데이터, 즉 시간에 따라 발생하는 데이터를 처리하는 데 최적화되어 있다. 성능 자체적으로 내장되어 있는 ..
2022.11.08 -
[Elastic Stack] 쿼리
엘라스틱 서치는 검색을 위해 쿼리를 지원하는데, 크게 리프 쿼리와 복합 쿼리로 나눌 수 있다. 리프 쿼리는 특정 필드에서 용어를 찾는 쿼리로, 매치, 용어, 범위 쿼리 등이 있다. 반면 복합 쿼리는 쿼리를 조합해 사용되는 쿼리로, 대표적으로 논리 쿼리 등이 있다. 리프 쿼리 중에는 Full Text Query와 Term Level Query를 살펴본다. Full Text Query와 Term Level Query Full Text Query는 전문 검색을 하기 위해 사용되며, 전문 검색을 할 필드는 인덱스 매핑 시 텍스트 타입으로 매핑해야 한다. GET qindex/_search { "query": { "match": { "contents": "elastic world" } } } 반면 Term Leve..
2022.11.06 -
[Elastic Search] 매핑
관계형 데이터베이스는 테이블을 만들 때 반드시 스키마 설계가 필요하다. 여기서 말하는 스키마는 테이블을 구성하는 구성 요소 간의 논리적인 관계와 정의를 의미한다. 구조를 명확히 하지 않고는 테이블이 생성되지 않고, 추후에 인덱싱 칼럼이나 조인 칼럼 등에서도 문제가 발생하기 때문이다. 쉽게 말하면 JSON 형태의 데이터를 루씬이 이해할 수 있도록 바꿔주는 작어빙다. 엘라스틱서치가 검색 엔진으로 전문 검색과 대용량 데이터를 빠르게 실시간 검색할 수 있는 이유는 매핑이 있기 때문인데, 매핑을 엘라스틱 서치가 자동으로 하면 다이내믹 매핑, 사용자가 직접 설정하면 명시적 매핑이다. 텍스트 데이터 타입 비교 text: 전문 검색이 필요한 데이터로 텍스트 분석기가 텍스트를 작은 단위로 분리 keyword: 정렬이나 ..
2022.11.05 -
[Elastic Stack] 인덱스와 도큐먼트
엘라스틱 서치를 이해하기 위해서는 인덱스와 도큐먼트가 무척 중요하다. 인덱스는 도큐먼트를 저장하는 논리적 구분자이며, 도큐먼트는 실제 데이터를 저장하는 단위다. 일반적으로 엘라스틱을 이용해 시스템을 개발하면 하나의 프로젝트에서 하나의 클러스터를 생성한다. 그리고 클러스터 내부는 데이터 성격에 따라 여러 개의 인덱스를 생성한다. 하나의 클러스터에 편의상 하나의 인덱스만 표현했다. 인덱스 내부에는 JSON 형태로 된 다수의 도큐먼트가 존재하고, 도큐먼트는 복수의 필드들을 갖는다. 인덱스 인덱스는 도큐먼트를 저장하는 논리적 단위로, 관계형 데이터베이스의 테이블과 유사한 개념이다. 하나의 인덱스에 다수의 도큐먼트가 포함되는 구조인데, 동일한 인덱스에 있는 도큐먼트는 동일한 스키마를 갖는다. 그리고 모든 도큐먼트..
2022.11.05 -
[Elastic Stack] 엘라스틱의 구성요소
엘라스틱서치: 분산 검색 엔진 엘라스틱 서치는 검색 엔진이지만 구글이나 네이버같은 포털 서비스와는 다르다. 검색 엔진은 내부적으로 각 도큐먼트를 인덱싱하고 빠르게 검색하는 데 사용하는 기술로 우리는 검색 엔진을 이용해 상위에서 구글, 네이버 같은 서비스를 만들게 된다. 엘라스틱 서치는 모든 레코드를 JSON 도큐먼트 형태로 입력하고 관리하고 있으며, 일반적인 데이터베이스와 마찬가지로, 쿼리한 결과에 대해 일치하는 원본 도큐먼트를 반환하게 된다. 또한 엘라스틱 서치는 텍스트 외에도 숫자, 날짜, IP 주소, 지리 정보 등 다양한 데이터 타입에 대해 최적화되어 있다. 검색 엔진이면서 데이터베이스이기도 하고 텍스트 외에 다양한 데이터 타입을 지원한다는 점이 엘라스틱서치라는 이름과 쉽게 매칭되지 않지만 엘라스틱..
2022.11.05