일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- zip 파일 암호화
- Kafka
- Elasticsearch
- License
- 차트
- flask
- zip 암호화
- Java
- plugin
- licence delete curl
- sort
- aggs
- high level client
- 900gle
- 파이썬
- API
- MySQL
- springboot
- Test
- query
- aggregation
- token filter test
- ELASTIC
- Python
- Mac
- TensorFlow
- docker
- analyzer test
- license delete
- matplotlib
- Today
- Total
목록전체 글 (475)
개발잡부
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 를 사용해서 트레픽을 줄여본다. 캐시전략 ..
import asyncioimport aiohttpimport timefrom urllib import parseimport urllib3import matplotlib.pyplot as pltimport numpy as npfrom time import sleepfrom datetime import datetime, timedeltafrom elasticsearch import Elasticsearchimport sslimport os#API cache 사용과 응답속도 확인urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)async def fetch(session, url): try: async with sessio..
import asyncioimport aiohttpimport timefrom urllib import parseimport urllib3import matplotlib.pyplot as pltimport numpy as npfrom time import sleepfrom datetime import datetime, timedeltaurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)async def fetch(session, url): try: async with session.get(url, ssl=False, timeout=aiohttp.ClientTimeout(total=600)) as response: ..