분류 전체보기152 [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. [Node] Stream 이란 (실제 개선 예시) 짜집기한 글입니다. TL;DR - Stream은 데이터, 패킷 ,비트 등의 일련 연속성을 갖는 흐름을 의미하는데-음성,영상,데이터 등의 작은 조각들을 하나의 줄기를 이루어 전송하는 데이터열이다. - 스트림은 데이터를 청크 단위로 쪼개 처리해야 할 때 적절하게 사용할 수 있다. - Node Stream은 결국 EventEmitter의 인스턴스이다. 따라서 이벤트 핸들러를 작성할 수 있다. Stream 이란? Stream은 추상적인 개념으로 데이터를 통일된 방식으로 다루기 위한 가상의 개념이다. 큰 데이터를 다룰 때나, 외부 소스로부터 데이터를 가져올 때 chunk해서 가져온다. 종류 Writable: 데이터를 쓸 수 있는 스트림 쓸 수 있는 스트림(ex. fs.createWriteStream()) fs.c.. 2024. 2. 21. [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. SLASH 23 - 실시간 시세 데이터 안전하고 빠르게 처리하기 (Redis Pub/Sub) TR;DR - Kafka 대신 Redis pub/sub 사용함 (카프카가 지연시간 길었음) 2023. 10. 10. SLASH 22 - 토스증권 실시간 시세 적용기 (Kafka, WebSocket) TL;DR - 웹소켓을 사용해 실시간 정보를 제공한다. (풀링 방식 사용 고려했으나 취소) - 연결 정보는 Redis 에 넣는다. - Kafka Acks 는 1을 사용해서 속도를 높이고, 프로듀서 컨슈머 양쪽 고려해 가장 빠른 lz4 를 사용한다. - WebSocket Connection Leak 은 정상 종료 외 비정상 종료 시에도 연결 끊어줘야한다. - 에러 코드일 때도 닫아줘야한다. 2023. 10. 10. SLASH 23 - 은행 데이터플랫폼 오픈소스로 전환하기 (Airflow, HDFS, Spark) - 마트 이관 방법 - HDFS 를 데이터 마트로 사용 - Oracle -> Impala -> Spark 로 변환 개선 전 - 하둡에 쌓고, 또 Oracle Exa 에 옮기는 불필요한 분산이 존재 - 대부분 PK 만 지원하면 되어서 하둡 사용 - XStream API 사용함. 2.8 차이남 - update 이후에 것만 가져갈 수 있도록 하는 것이 ETL 성능에 도움이 된다. 2023. 10. 10. Slash2023 - 토스ㅣSLASH 23 - Kafka 이중화로 다양한 장애 상황 완벽 대처하기 TL;DR 카프카는 토스에서 핵심 기술로 사용되고 있음(금융 관련 정보 제공, 모든 로그 수집, CDC) 쿼리만으로 실시간 프로세싱이 가능한 ksqlDB 사용 중 Active-Active 로 IDC 이중화하여 DR 시스템 구축 Kafka Connect + Offset Sync로 Kafka 이중화 구성 많은 부분을 자동화해서 사용 중이다 (이중화 토픽들 자동 생성) 카프카로 입수하는 정보 서비스 간 비동기 통신 클라이언트, 서버 네트워크 보안 장비 시스템 로그 서비스 데이터로그 CDC 안정적인 카프카 운영 방법 1. 장애 발생 징후 미리 감지 2.장애 발생 시 대응 시나리오 잘 갖추기 장애 종류 1. 카프카 클러스터 내 일부 노드 장애 -> 카프카는 분산 시스템이라 가용성 해치지 않고 서비스 유지됨, 극복.. 2023. 10. 10. [if(kakao)2022] 카프카, 대규모 클러스터 운영 후기 정리 TL;DR - 카카오 카프카 클러스터는 초당 1,800만 건 메시지를 처리한다. - 주키퍼는 홀수 구성하는 게 좋고 5대 구성하는 것이 좋다. - Non-Raid 를 사용해 디스크 독립 구성을 한다. - 기본적으로 토픽 리텐션은 3일(주말 대비), 토픽 별로 따로 관리하는 경우도 있다. - 소량의 메시지 소실을 감안하고 빠른 장애 복구를 최우선으로 클러스터를 구성한다. - 메트릭 정보는 프로메테우스에 저장해 그라파나로 시각화한다. - 로그는 파일피트로 수집 후 나이파이로 재처리 후 엘라스틱서치로 저장 후 키바나로 시각화한다. - Kraft Mode 도입을 아직, 4.x부터 도입 예정. - 2018년 처음 클러스터 소개 - 데이터 흐름을 모아주는 실시간 분산 스트리밍 플랫폼 - 전체 1.5조 메시지 - 초.. 2023. 9. 29. 이전 1 ··· 4 5 6 7 8 9 10 ··· 16 다음