일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- flask
- MySQL
- 파이썬
- zip 파일 암호화
- 900gle
- API
- analyzer test
- Kafka
- licence delete curl
- zip 암호화
- License
- matplotlib
- plugin
- 차트
- Elasticsearch
- query
- Python
- aggs
- Java
- token filter test
- aggregation
- sort
- license delete
- high level client
- TensorFlow
- ELASTIC
- Mac
- docker
- Test
- springboot
- Today
- Total
목록분류 전체보기 (477)
개발잡부
Elasticsearch에서 eager_global_ordinals는 키워드와 같이 정렬, 집계 또는 필터링에 사용되는 필드의 고유 term들을 빠르게 참조하기 위해 내부적으로 생성하는 글로벌 오디널(Global Ordinals)을 인덱스 새로고침(refresh) 시점에 미리 계산하도록 지시하는 설정입니다. 글로벌 오디널(Global Ordinals)이란?정의:글로벌 오디널은 특정 필드의 모든 고유 term들을 정수 형태로 매핑한 데이터 구조로, 이를 통해 정렬, 집계, 필터링 등의 연산 시 문자열 비교 대신 정수 비교를 사용하여 성능을 개선할 수 있습니다.사용 목적:키워드 필드와 같은 텍스트 데이터를 대상으로 빠른 집계 및 정렬을 가능하게 하며, 이러한 작업의 속도와 메모리 효율을 높이는 역할을 합니..

외래어 추출.. 을 하라고 한다..애매하다..로그에서 외래어라고 판단하는건 사람이 해야 하는데.. 추출을 하면 그게 또 근거를 제시해야 하는..아무튼.. 생각해낸 방법은 한국어 어문규범 여기에 등록된 67,184개의 외래어를 이용했다. 일단 이걸 색인으로 만들었다. 시간이 없어서 지피티 선생님을 활용해 인덱스 생성 쿼리를 급하게 만들고색인쿼리도 급 제작 최근 검색어 최근 1주일(3/13 ~ 3/20)최근검색어 (실패검색어로 변경) 에서 상위 30,000개 추출추출된 검색어와 외래어를 비교하여 추출 (추출기준 하단 참고)공백없이 한단어로 이루어진 단어 (5,322개)추출된 외래어와 편집거리 1에서 비슷한 단어 검색로그에서 추출 (유입수 10 이상)작업자의 판단으로 진행여부 결정 (약 250개 예상..
Elasticsearch의 top_hits 집계는 각 버킷에 대해 상위 N개의 문서를 검색할 수 있는 메트릭 집계 유형입니다. 예를 들어 terms, date_histogram 같은 버킷 집계와 함께 사용하여, 버킷별로 샘플 문서를 가져오고자 할 때 유용합니다. 이때 avg, sum과 같은 메트릭 값을 계산하는 대신, 실제 문서를 직접 조회하는 방식입니다.예시: 카테고리별 상위 인기 게시글예를 들어, 블로그 게시글을 저장한 인덱스가 있고, 각 문서에는 title, category, views 필드가 있다고 가정합시다. 카테고리별로 조회수가 가장 높은 게시글 3개를 검색하고자 할 때 아래와 같은 쿼리를 사용할 수 있습니다. GET /your_index/_search{ "size": 0, "aggs": ..

쿼리 튜닝을 해서 배포를 했는데 데이터를 검증 해야한다.. 근데 .. 양이 많네.. promoInfos 정보를 가져오는 부분이 쿼리가 튜닝 되었으니 해당 정보만 가져온다. { "track_total_hits": true, "size": 10000, "_source": [ "itemNo", "itemStoreInfo.storeId", "promoInfos" ], "query": { "bool": { "must": [ { "exists": { "field": "promoInfos" } }, { "term": { "itemStoreInfo.stor..
Vavr는 Java에서 함수형 프로그래밍(FP)을 지원하는 라이브러리입니다.이 라이브러리는 Java의 전통적인 객체 지향 프로그래밍 스타일을 보완하며, 함수형 프로그래밍 패러다임을 더 쉽게 구현할 수 있도록 도와줍니다. Vavr은 Java에서 부족한 함수형 프로그래밍 관련 기능을 제공하고, 불변성, 함수형 데이터 구조, 고차 함수, 패턴 매칭 등의 개념을 지원합니다.주요 기능함수형 데이터 구조: Vavr은 불변 컬렉션과 데이터 구조를 제공합니다. 예를 들어, List, Map, Set 등 Java 표준 라이브러리의 컬렉션들과 유사한 자료구조를 제공하지만, 이들은 모두 불변입니다. 불변성은 멀티스레드 환경에서 안전하게 사용할 수 있다는 장점이 있습니다.옵셔널 타입: Java의 Optional 클래스와 유사..

AS-IS: 6서버 1노드 1샤드 (primary 3, replica 1) 각 데이터 노드별로 1개의 샤드 구성 - 운영과 동일한 구조TO-BE: 6서버 1노드 1샤드 (primary 3, replica 3) 각 데이터 노드별로 2개의 샤드 구성 데이터 구성As-is: prd data copy index (07월10일 PRD데이터)To-be: prd data copy index (07월10일 PRD데이터)QA api 호출100건/초데이터 추출 기준: 2024-03-01 09:00:00 ~ 2024-03-01 09:30:00 까지 5분간격 으로 10,000 개씩 7만개 추출 (중복제거를 하지 않은 request 추출)sleep 0.3초최초 1회 es cache 초기화 후 실행7만개 키워드 1회 실행 후 ..

샤드 구성을 변경해서 data node 재부팅샤드 맞춤 _cluster/reroute테스트19:00 이후 Auto test 실행 Shard 구성 AS-IS: 6서버 1노드 1샤드 (primary 3, replica 1) 각 데이터 노드별로 1개의 샤드 구성 - 운영과 동일한 구조TO-BE: 6서버 1노드 1샤드 (primary 3, replica 3) 각 데이터 노드별로 2개의 샤드 구성 TEST2024-08-07 19:00:00 이후 테스트 결과 낮시간대 테스트 cpu 사용률 응답시간

뭐 대충 이런느낌 이랄까트래픽이 왔을때 8core 16Gb 로 띄운 X 6대의 data node prd data copy index 0710 (운영데이터) alias 변경 local api (Local to ES)200건/초중복제거키워드 (10,000 x 2)sleep 0.3초최초 1회 es cache 초기화 후 실행이렇게 테스트 하면 저런 결과가 나온다. 샤드 구성도 맞춰놓고 샤드 구성 변경 reroute api POST _cluster/reroute{ "commands": [ { "move": { "index": "prd-ds-item-20240710", "shard": 1, "from_node": "node-qa-totalsearch-data..

난 샤드 크기와 도큐먼트 사이즈가 알고싶다. kibana 명령어 GET /_cat/shards?v&h=index,shard,prirep,state,docs,store,node 결과

이게 나를 요즘 .. 데이터 노드의 구성은 1서버 1노드 1샤드 primary 3 , replica 1 어느부분이 문제를 일으키는지는 알고 있다. 제거 하고 다시 실행, 하지만 이 로직을 뺄수는 없다.. 문제를 일으키는 로직은 검색결과에서 집계를 통해 필터를 만들어 내는 로직 이 로직을 파보니 query_cache 가 특정샤드에서만 상대적으로 적게 생성이 된다. 집계를 통한 필터 생성이여서 request cache 가 먹혀야 하는 구조였는데 아무튼 마지막 구간에서 엄청나게 안정적인 흐름을 보이는.. 그럼 다시 널뛰는 cpu 로 만들어 놓고 해결방법try 1cpu 는 트래픽이 적을땐 저렇게 하나만 튀는 현상이 없었다. redis cache 를 사용해서 트레픽을 줄여본다. 캐시전략 ..