DataOps/Elasticsearch7 Elasticsearch Data Streams 시계열 데이터를 다루는 많은 엔지니어들이 직면하는 문제가 있습니다. 시간이 지남에 따라 계속 쌓이는 로그, 메트릭, 이벤트 데이터를 어떻게 효율적으로 관리할 것인가? 특히 대규모 환경에서는 이러한 데이터의 저장, 관리, 쿼리가 상당한 도전이 됩니다. Elasticsearch의 Data Streams 기능은 이런 문제를 해결하기 위한 우아한 솔루션을 제공합니다.Data Streams란 무엇인가?Elasticsearch 7.9 버전에서 정식 출시된 Data Streams는 시계열 데이터를 위한 특별한 추상화 계층입니다. 기존에 여러 개의 인덱스를 수동으로 관리하던 방식에서 벗어나, 마치 하나의 인덱스처럼 동작하는 데이터 관리 패러다임을 제공합니다.가장 중요한 점은 Data Streams가 백엔드에서 여러 인.. 2025. 3. 27. [Elasticsearch] 8. 엘라스틱서치의 내부 동작 상세 개요 데이터 읽기와 쓰기 작업 요청 들어왔을 때 엘라스틱서치 내부가 어떤 단계를 거쳐 동작하는지 살펴본다. 어떻게 요청의 동시성 제어를 하는지? 샤드에 문제가 생겼을 때 어떻게 복구되는지 8.1 엘라스틱서치의 데이터 분산 처리 과정 8.1.1 쓰기 작업 시 엘라스틱서치 동작과 동시성 제어 쓰기 작업의 3단계 1. 조정 단계(coordination stage) 2. 주 샤드 단계(primary stage) 요청을 넘겨받은 이후 수행하는 작업들 in-sync 복제본 마스터 노드가 관리하는 작업을 복제받을 샤드 목록 주 샤드는 in-sync 복제본에 병렬적으로 요청을 넘긴다. 모든 복제본들이 작업을 성공적으로 수행하고 주 샤드에 응답을 돌려주면 주 샤드가 작업 완료 응답을 보낸다. 3. 복제 단계(replic.. 2024. 4. 3. [Elasticsearch] 3. 인덱스 설계 (Template, Routing) 3.4 템플릿 템플릿의 필요성 운영하다 보면 수시로 많은 양의 유사한 구조를 가진 인덱스를 생성해야 할 때가 많다. 매번 인덱스 매핑 설정값을 지정하는 건 수고가 많이 들어간다. 템플릿을 사용하면 재사용할 수 있으므로, 업무 효율을 향상시키고 반복 작업을 줄일 수 있다. 또 사람의 실수를 줄일 수 있다. 3.4.1 인덱스 템플릿 https://www.elastic.co/guide/en/elasticsearch/reference/current/index-templates.html PUT _index_template/template_1 { "index_patterns": ["te*", "bar*"], "priority": 1, "template": { "settings": { "number_of_shards.. 2024. 3. 13. [Elasticsearch] 3. 인덱스 설계 (Analyzer, Tokenizer) TL;DR- 애널라이저: 문장이 들어오면 변형, 필터링을 거쳐 의도한 Term 단위로 저장할 때 사용함- 캐릭터 필터: HTML 와 같은 포맷에서 필요한 문장만 뽑아냄- 토크나이저: 문장을 원하는 방식으로 쪼갬- 토큰 필터: 불용어, 공백 등 토크나이징된 결과물 중 필요없는 단어 제거- 애널라이저는 캐릭터 필터, 토크나이저, 토큰 필터로 구성된다.- 노말라이저는 키워드 타입에 적용 가능하므로, 토크나이저가 없다. (키워드는 토크나이징을 거치지 않는다) 3.3 애널라이저와 토크나이저의미들어온 문자열에 변형을 가해 분석 완료된 “텀”을 얻는다.구성캐릭터 필터0개 이상문자열 변형토크나이저1개토큰 쪼개기토큰 필터0개 이상토큰 변형3.3.1 analyze API애널라이저와 각 구성 요소 동작을 쉽게 테스트할 수 .. 2024. 3. 13. [Elasticsearch] 3. 인덱스 설계 (설정, 맵핑, doc_values, _source) TL;DR 인덱스 설계에 신경써야 하는 이유 설정에 따라 동작과 특성이 매우 달라진다. 인덱스 설정은 직접해야한다. 문서 생성으로 자동x 3.1 인덱스 설정 인덱스 확인 GET my_index/_settings 3.1.1 number_of_shards 이 인덱스가 데이터를 몇 개의 샤드로 쪼갤 것인지 지정하는 값 주의 한 번 지정하면 reindex 같은 동작을 통해 인덱스를 통쨰로 재색인하는 등 특별한 작업을 수행하지 않는 한 바꿀 수 없다. 클러스터에 샤드 숫자가 너무 많아지면 클러스터 성능이 떨어진다. 운영 엘라스틱서치 7부터 1로 변경됨, 미만까지는 5였음 오버샤딩하는 경향을 확인해 기본값을 수정한 것 다만 실제 운영 환경에서 데이털르 담기 시작하면 반드시 이 값을 적절한 값으로 조정해야한다. 3... 2024. 3. 4. [Elasticsearch] 2. 엘라스틱서치 기본 동작과 구조 기본 실습 1. 문서 색인 PUT POST 2. 문서 조회 GET 3. 문서 업데이트 POST _version, _seq_no 그대로임 4. 문서 검색 GET { "query":{ "match": { "stock": "3" } } } w전용 DSL(domain specific languag) 을 제공 GET, POST 둘 다 제공하는데, 각 상황 철학에 맞는 엔드포인트 사용하면됨 문서를 분석해서 역색인을 만들고 검색어 분석해서 유사도 높은 문서를 찾는다 문서가 복수 검색됨 _score 에서 유사도 점수 확인 가능 5. 문서 삭제 DELETE result 가 deleted 로 온다 2024. 1. 26. [Elasticsearch] 1. 엘라스틱 서치란? 역사 2010년 2월 샤이 배논이 아파치의 루씬 라이브러리를 기반으로 만든 분산 검색 엔진 → 루씬은 중요한 역할을 하니 기억할 것 2012년에 설립한 엘라스틱에서 관리 2013년 키바나, 로그스태시가 엘라스틱에 합류 2015년 비츠가 합류하면서 엘라스택 스택 완성 소개 검색 엔진 분야에서 가장 각광받고 있는 시스템 분산 처리나 고가용성, 수평적 확장성 등 엔터프라이즈 영역에 필요한 주요 기능을 제공 데이터 수집부터 시각화를 위한 플랫폼 구축까지 한번에 소화할 수 있어 인기가 많음 JSON 기반 문서 자정, 색인 NoSQL 스토리지 성격도 가지고 있음 주요 개념 루씬 데이터를 색인하고 검색 기능을 제공하는 검색 엔진의 코어 라이브러리 엘라스틱 서치는 루씬을 코어로 이용해 JSON 문서 저장, 색인, 검색.. 2024. 1. 26. 이전 1 다음