TIL98 Elastic Search : 엘라스틱 스택 개발부터 운영까지 - 2 3. 엘라스틱 서치 기본 분석기 : 역인덱스를 위해 문자열을 나누는 기준이 중요한데 이를 지원하기 위한 모듈 분석기의 구성 : 캐릭터 필터 (전처리 과정), 토크나이저(like 형태소 분리), 토큰 필터(후처리 과정) ex) standard, simple (숫자, 특수문자 제외 토큰화), whitespace(공백 기준 토큰화), stop (simple과 유사하지만 stop 필터 추가) 필터 캐릭터 필터 : 문자 전처리, 대부분의 제공되는 분석기에선 사용하지 않으므로 사용하고 싶으면 커스텀 분석기를 만들어 사용해야 함 토큰 필터 : 토크나이저에 의해 토큰화되어 있는 문자들에 필터를 적용 커스텀 분석기 필터 적용 순서 : [필터1, 필터2]로 구성되어 있으면 필터1 -> 필터2 순으로 적용됨. 소문자로 먼저.. 2024. 1. 3. Elastic Search : 엘라스틱 스택 개발부터 운영까지 - 1 [엘라스틱 스택의 구성 요소] 엘라스틱 서치 루씬 기반으로 만들어짐. (루씬은 라이브러리 형태라 더 필요한 개발이 많았으나 엘라스틱서치는 애플리케이션) 전문 검색(full text search) 기능 제공 목적으로 등장하였으나 현재 빅데이터 플랫폼의 일부로 발전 중 루씬에서 제공하는 데이터 타입벼로 최적화된 자료구조 지원, 스코어링 등의 기능을 이어받아 강점이 있음. REST API 방식 (GET, POST. PUT, DELETE 로 사용) 로그스태시 오픈소스 데이터 수집 도구 비츠 무거운 로그스태시 대신 실제 서비스 호스트에 설치하기 좋은 수집기. (로그스태시 수준의 이벤트 가공은 지원하지 않음.) 흔히 비츠에서 각 서비스 호스트의 정보를 수집하고 로그스태시에서 이를 취합하고 가공해 엘라스틱 서치로 전.. 2024. 1. 3. [스프링 뉴스] 스프링부트 3.2.0-M1 / 스프링 프레임워크 6.1-M4 배포 보호되어 있는 글 입니다. 2023. 8. 21. 데이터 중심 어플리케이션 설계 - 9장. 일관성과 합의 개인적으로 9장 내용은 많으면서 쉽지 않기도 했고, 실제 라이브러리나 DB의 구현 내용을 살펴보는 것들이라 당장에 써먹을 만한 점들이나 적합한 사례들을 찾으면서 공부할 수 없어서 다소 어렵게 느껴졌다. (책 내용이 다소 미괄적인 것도 한 몫 했다) 학습 목표 : 내결함성을 지닌 분산 시스템을 구축하는 데 쓰이는 알고리즘과 프로토콜의 몇 가지 예를 알아보고 결함을 견뎌낼 방법을 찾는다. (분산 시스템에서 제공될 수 있는 보장과 추상화의 범위를 알아보고 합의와 합의 관련 문제를 해결하는 알고리즘을 살핀다.) 일관성 보장 복제 DB는 대부분 최소한 최종적 일관성을 제공. (= DB에 쓰기를 멈추고 불특정 시간 동안 기다리면 결국 모든 읽기 요청이 같은 값을 반환한다) → 불일치는 일시적, 결국 스스로 해소. .. 2023. 7. 28. 데이터 중심 어플리케이션 설계 - 6장. 파티셔닝 학습 목표 : 대용량 데이터셋을 파티셔닝하는 몇 가지 방법을 살펴보고 데이터 색인과 파티셔닝의 상호작용을 알아본다. 클러스터에 노드를 추가하거나 제거할 때 필요한 재균형화에 대해서도 알아본다. 데이터베이스가 어떻게 요청을 올바른 파티션에 전달하고 질의를 실행하는지 살펴본다. 파티션(=샤딩) : 데이터셋이 매우 크거나 질의 처리량이 매우 높다면 복제만으로는 부족하고 데이터를 쪼갠다. 이 때의 단위가 파티션. 데이터 파티셔닝의 주요 이유 : 확장성 → 공유 클러스터에서 다른 파티션은 다른 노드에 저장될 수 있다. 따라서 여러 디스크에 분산될 수 있고 질의 부하도 여러 프로세서에 분산. 1. 파티셔닝과 복제 복제 + 파티셔닝을 이용해서 각 파티션의 복사본을 여러 노드에 저장. (즉, 각 레코드는 정확히 한 파.. 2023. 6. 6. 데이터 중심 어플리케이션 설계 - 5장. 복제 1. 리더와 팔로워 모든 쓰기는 모든 레플리카에서 처리되어야 한다. → 리더 기반 복제 (= 능동/수동, 마스터-슬레이브 복제) 리더 (= 마스터, 프라이머리) 팔로워 (읽기 복제 서버(replica), 슬레이브, 2차(secondary), 핫 대기(hot standby)) 리더가 로컬 저장소에 새로운 데이터 기록 시 데이터 변경을 복제 로그나 변경 스트림의 일부로 팔로워에게 전송한다. 쓰기는 리더에게만 요청하고 읽기는 리더나 임의의 팔로워에게 요청한다. → 사용처 : 여러 관계형 데이터베이스 및 비관계형 데이터베이스, 고가용성 큐 같은 분산 메시지 브로커 a. 동기식 대 비동기식 복제 동기식 : 팔로워가 쓰기를 수신했는지 여부의 응답을 받는다. ( ∴ 한 노드의 장애가 전체 시스템의 문제가 될 수 있으.. 2023. 5. 30. 이전 1 2 3 4 5 6 ··· 17 다음