# elastic search

53개의 포스트
post-thumbnail

??? : 주차별 조회할 때, ISO 8601를 베이스로 삼으면서 시작 요일을 일요일로 만들어주세요.

기존 문제 상황 주차별 조회 ( = 주간 조회)를 했을 때의 표기에 대한 정확한 기준이 없었다. 기준이 없다보니 조회 방식에 따라 결과값이 다른, 즉 데이터 정합성의 문제가 있었다. 날짜와 시간을 다루는 부분이 의외로(?) 까다롭다는 얘길 들어서 도전해보고 싶었다. 자원해서 수정 작업에 들어갔다. 요구사항 ISO 8601에 따라, N월 1일이 목요일보다 이전 요일에 있으면 그 주는 N월의 1주차 이다. 위 이미지에서 22주차는 6월 1주차이다. (5월 5주차가 아니다) 하지만 대한민국의 달력은 주로 일요일부터 시작한다는 점에 따라, 한 주의 시작 요일은 일요일 이다. ISO 8601은 월요일부터 시작이지만, 우리는 일요일을 시

2023년 8월 7일
·
0개의 댓글
·

ES 트러블 슈팅(클러스터 상태가 Green이 아니에요)

각 상태에 대한 설명은 아래와 같습니다. | 상태 | 설명 | | :- | - | | green | 프라이머리와 레플리카 샤드가 모두 노드에 정상적으로 배치되어있는 상태 | | yellow | 레플리카 샤드가 정상적으로 배치되어 있지 않은 상태 (색인에는 영향을 주지 않으나, 검색 성능에 영향을 줍니다.) | | red | 프라이머리 샤드가 정상적으로 배치되어 있지 않은 상태 (색인과 검색에 영향을 주며, 문서 유실을 발생시킬 수 있음.) | 영향도를 정확하게 파악하는 것이 중요함. 어떤 인덱스가 yellow or red 인지 확인하는 것이 필요합니다. cat indices 요청을 통해, 아래와 같이 각 인덱스 별 상태를 확인할 수 있습니다. 예시1)  날짜별로 인덱스를 생성하고 있고 하루가 지나면 해당 인덱스에 대한 스냅샷을 찍어두는 상황에서는, 장애 상황이라고 할 수 없습니다. 과거 날짜의 문서를 담고 있는 i

2023년 7월 29일
·
0개의 댓글
·

Elastic Search 모니터링

Elastic Search를 운영에 활용하면서 여러가지 issue가 생기는 경우가 많다. index 설계, 잘못된 매핑 등이 그 이유가 되는 경우도 있지만, 운영 중 장애로 커지는 경우는 주로 자원 사용, 클러스터의 상태 이상에 의해 발생하는 경우가 많았다. 이러한 문제를 예방하기 위해서는 Elastic Search의 현재 상태에 대한 모니터링이 반드시 필요하다. Elastic Search를 모니터링 하는 방법은 여러가지인데, 그 방법은 아래와 같다. 모니터링을 하기위한 별도의 소프트웨어 개발 Kibana 구축(cat API 활용) Elastic Search를 사용하도록 도와주는 별도의 솔루션 활용(Elastic Cloud, OpenSearch) 이 글에서는 Kibana를 통해 확인할 수 있는 지표에 대해 작성을 할 것인데, 아마 다른 서비스에서도 유사한 형태로 확인할 수 있을 것으로 생각한다. Elastic Search 주요 지표 알림이 반드시 필요한

2023년 7월 29일
·
0개의 댓글
·

Elastic Search 기본

Lucene 기반의 검색엔진 준실시간 검색 시스템 실시간에 가까운 데이터 검색(refresh-interval) 고가용성을 위한 클러스터 구성 한 대 이상의 노드로 클러스터를 구성하여 높은 수준의 안정성을 달성하고 부하 분산이 가능함. 동적 스키마 생성 입력될 데이터들에대해 미리 스키마를 정의하지 않아도 동적으로 스키마 생성 가능 Rest API 기반의 인터페이스 Rest API 기반의 인터페이스를 제공하여 비교적 진입장벽 낮음. 클러스터와 노드 여러 대의 노드들이 각자의 역할을 가지고 연결되어 하나의 시스템 처럼 동작한다. 클러스터의 성능이 낮을 때, 노드를 늘려서 대응할 수 있으나, 항상 가능한 것은 아니다. 노드의 종류 마스터 노드 클러스터 상태 관리 및 메타데이터 관리 데이터 노드 문서 색인 및 검색 요청 처리 코디네이팅 노드 검색 요청 처리 인제스트 노드 색인되는 문서의 데이터 전처리 마스터 노드와 마스터

2023년 7월 27일
·
0개의 댓글
·
post-thumbnail

[ ELK Series] Elastic Search - Data 수집 및 시각화

1. 데이터 기본 구조 > ### Index 기본 구조 > ### Aliases ( Index 별칭 관리) > ### Mappings ( Index 필드 타입 관리) > ### Settings ( Index 구성 설정 관리) > ### Index Template (Index 구성정보를 포함하는 Template) 2. 데이터 수집 ![](https://velog.velcdn.com/images/bik1111/post/c579dc68-9825-4990-a2fc-eb4b17271f08/ima

2023년 7월 12일
·
0개의 댓글
·
post-thumbnail

Elastic Search강의순서용 포스팅

2023/07/24 우리조의 이번 과제는 ELK스택의 발표 & 강의 를 하는것이었고 내가 맡은 부분인 Elastic search 와 고가용성 테스트 의 발표를 하기 위해 아래의 목차를 준비하였다. Elastic Search - 고가용성 테스트 Elastic Search - 기본 CRUD 실습 Elastic Search - CRUD Quiz Elastic Search - Batch Process 실습 Elastic Search - 검색 API 실습 Elastic Search - Query DSL 실습 Elastic Search - URL Request 실습 Elastic Search - Query Quiz Elastic Search - 한국어 형태소 분석기 노리 적용 실습 Elastic Search - 노리 스피치 분석기 (음성삭제) Elastic Search - 노리 한자 분석기 Elastic Search - 동의어 사전 정의 추가 Elastic

2023년 7월 2일
·
0개의 댓글
·
post-thumbnail

Elk Toy Project 국민청원 데이터 분석

# 1 청와대 데이터 다운로드 깃헙에서 데이터 다운로드 https://github.com/lovit/petitions_archive 다운 받으면 cmd로 해당 폴더 경로내에서 window - ren petitions_201* *.json linux -ls petitions_201* | xargs -i mv {} {}.json 명령어를 통해 파일명 끝에 .json 을 붙여주자 # 2 데이터 수동 업로드 받은 파일의 데이터의 확장자를 모두 .json 으로 변경 그리고 표시된 부분에 들어간다. 그리고 이곳에 파일을 드래그 해서 import 하고 index를 지정해주기만 하면된다. ![](https://velog.velcdn.com/i

2023년 6월 28일
·
0개의 댓글
·
post-thumbnail

Elasticsearch - sample data 로 _search 사용해보기

# Elasticsearch Sample Data 추가 모든 데이터 보기 GET kibanasampledataflights/search?q=* 1 ms 걸렸고, value 가 10000인건 데이터 갯수, max_score는 1.0 이 제일 높은 점수이다. 그리고 총 데이터는 10개가 나와야 하는데 정말 10개일까 ?. 진짜 10개 이다. AvgTicketPrice 에 대한 정보만 보고싶음, 더 보고싶은게 있다면 추가하면 됨 ![](https://velog.velcdn.com/images/

2023년 6월 25일
·
0개의 댓글
·
post-thumbnail

Elastic Search 설치,개념 및 사용

# Elastic Search 설치 간단히 보고 넘어가는 Elastic Search 활용 사례 고객이 판매하는 제품을 검색 할 수 있는 온라인 웹스토어 운영 Elastic Search 를 사용하여 전체 제품 카탈로그 및 인벤토리를 저장하고 검색 및 자동완성 제안을 제공한다. 로드 또는 트랜잭션 데이터를 수집, 분석 및 조사하여 추세, 통계, 요약 또는 예외를 탐지 이 경우 Logstash 를 사용하여 데이터를 수집, 집계 및 구문 분석 한 다음 Logstash에 이 데이터를 Elastic Search에 제공 데이터가 Elastic Search 에 저장되면 검색 및 집계를 실행하여 관심 있는 정보를 검색 가격에 정통한 고객이 "특정 전자 장치를 구입하는데 관심이 있고 다음달 모든 공급 업체 가가젯 가격이 얼마 이하로 떨어지면 알림을 받고싶다" 등과 같은 규칙을 지정할 수 있는 가격 알림 플랫폼

2023년 6월 24일
·
0개의 댓글
·

[230515] ECE 기출 2회

task 1 작성 후 날리는 쿼리문에서, index를 생성만 한다고 치면 PUT이 맞는데, 생성과 동시에 데이터를 인덱싱 하려면 POST가 맞지 않나 의문 또, 따로 타입을 지정하라는 요구사항이 없는데 mapping을 내가 작성해두는게 맞을지? task 2 mapping은 source index 복사해오면 될 것 같고, 문제 조건을 잘 모르겠음 단순히 title필드를 keyword 타입으로 변경해서 검색이 안 되게 만들면 되는걸까? task 3 cootto는 search request를 날렸을 때 보이지 않음.. 이거 말고 다른 옵션이 있는건가? 가이드 찾아봤는데 mapping parameters에서 내용 찾지 못했음 몰라서 안보이는건지도 task 4 기본 aggregation 작성 문제 작성은 했으나 확인은 해볼 수 없어서 아쉬움 (index 부재) task 5 runtime field script를 작성하는 문제 마찬가지로 직

2023년 5월 15일
·
0개의 댓글
·

[230510] Elastic Certificated Engineer Practice Exam 복습

task 1 설정한 role과 user는 어떻게 테스트 할 수 있는지 질문할 것 user 생성 시, role을 여러 개 선택할 수 있는 것 같던데 선택한 role 사이에 권한이 충돌하면 어떻게 되는지? task1_role : 문제 조건에 맞는 role 설정 task1 이외의 모든 인덱스에 대해 read 권한만 가짐 test_role : 궁금해서 만들어본 role 설정 모든 인덱스에 대해 all 권한 부여 하나의 유저에 task1role과 testrole 모두 부여했는데 문제 없이 저장되었음 task 2 문제 없음! clear! task 3 해설은 dynamic template 사용했는데, 결과만 맞으면 mapping을 하나하나 정의해도 시험에서 큰 문제 없는지? task 4 ignore_missing에 대한 이야기가 문제에 제시되지 않았는데, 해설에서는 해당 옵션을 true로 설정함 일반적으로 필수로 설정하는 옵션인가? task

2023년 5월 10일
·
0개의 댓글
·

[230509] practice exam 1

task 1 조건에 맞추어 User와 Role 설정하는 문제 lab에서 실습하지 않은 내용이지만, 키바나 잘 확인하면 무리 없이 작성 가능 task 2 query를 사용해 범위를 좁히고, 중첩 구조의 aggregation을 진행하는 문제 lab에서 진행하던 것과 상황 설정만 다를 뿐, 거의 같음 task 3 dynamic templates 사용하는 것 이외에는 lab 실습과 크게 다를 것 없는 문제 dynamic 개념을 완전 뒤로하고 있었는데 개념 상기도 되고 실습을 처음 진행해보기도 했음 실제 시험 중에는 답안을 확인할 수 없으니, 메뉴얼의 드롭다운을 모두 확인해보면서 어떤 개념이 있는지 미리 살펴보고, 시험 중에라도 막히는 경우 메뉴얼 싹 훑어보는 것이 좋을 듯 task 4 특정 필드에 대해 따로 타입 설정 해주지 않는 것 확인함.. 코드도 에러로 동작하지 않음 ㅠㅠ -> 하나하나 비교해가면서 다시 뜯어볼 예정 => ingest pipeline 작성

2023년 5월 9일
·
0개의 댓글
·

[230508] module 5~8 복습

5.2장 solution 5번 runtime이라고 이름을 붙인 aggregation의 결과를 보면, runtime 내에 values가 있고, 또 이 내부에 50.0과 그 결과가 있는 구조임 이 결과를 활용해서 정렬을 진행하는 것이 문제의 핵심인데, request를 보면 runtime.50으로 활용하고 있는 것을 확인할 수 있음 내가 생각하기에는 활용하는 값은 runtime.values.50이 되어야 맞는 것 같았는데. runtime.10으로 변경해도 잘 작동하는 것을 확인함 percentiles aggregation은 데이터를 다 계산한 결과를 가지고 있고, 내가 그 중에서 어떤 데이터만 출력할지를 지정해주는 방식인 듯 GET _cat/indices?v에서 결과로 나오는 docs.deleted가 실제로 지금까지 해당 인덱스에서 지워진 document 개수인지 궁금해짐 5개의 document를 가진 인덱스를 임의 생성하고 `GET _

2023년 5월 8일
·
0개의 댓글
·

[230503] module 5~8 복습

constant keyword 필드를 data stream 인덱스에 설정해두면 rollover 될 때마다 가장 처음 들어오는 document에 의해 그 값이 결정됨 default로 rollover 되어도 같은 값을 유지하게 할 수 있음 -> 모든 인덱스가 같은 값을 가진다면, 무슨 의미가 있는지? 어떤 상황에 주로 사용하는지? 예시가 잘 상상이 안 됨. 질문할 것 7.4장 sanpshot repository 만드는 데에서 자꾸 실패 실습 불가능 CCR 실습 결국 못해봄... 설정 관련된 내용을 공식 문서랑 자료에서 못 찾았다ㅠ 앞 부분 복습 후 리뷰타임 때에 yml 파일 관련 설정 질문 예정 CCR 하나에 매달리기보다 전체 복습 1번을 더 하자고 판단 profiler에서 self time이랑 total time의 차이점? boosting의 두 가지 방법 best_fields : default. 여러 필드들

2023년 5월 3일
·
0개의 댓글
·
post-thumbnail

[230502] module 1~4 복습

1.2장 solution2번 답안에는 PUT으로 되어있는데, POST로 작성해도 문제 없이 돌아가긴 함 t2myindex에서 자료를 보면 하나밖에 안 들어있는데, Index Management 메뉴에서 보면 document가 2개로 뜸 하나는 뭘까? ![](https://velog.velcdn.com/images/jyo__c/po

2023년 5월 2일
·
3개의 댓글
·

몽고디비 - Search

검색엔진 MySQL > match...against 를 사용하여 full text search 구현. https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html 엘라스틱 서치 MongoDB >Atlas에서 지원 local mongoDB에서 TEXT 데이터 타입 및 인덱스를 사용하여 Full Text 검색엔진을 지원 몽고 아틀라스 Search 로컬에 설치하는 몽고디비가 아닌 클라우드에서 사용하느 Atlas 사용. > 몽고의 검색엔진 구현 방법은 두가지입니다. 순서 Database - Browse Collections - Search - create index - Visuor Editor - 인덱스 이름 설정 + 적용할 컬렉션 선택 - Refine your index - 완료 Search 탭에서 적용된 Search Index를 확인 가능하고 인덱스의 Query 버튼을 통해 테스트가 가능하

2023년 5월 2일
·
0개의 댓글
·
post-thumbnail

[230428] module 7,8 실습 기록

aliases 실습 과정 중에서 궁금한 점이 생겼다. 위 코드를 순서대로 실행하면, 현재 write 설정된 인덱스는 2초간만 유효하기 때문에 바로 다음 넘버링 인덱스가 생성된다. 그런데 이 설정이 계속 유지되는 건 아닌지 다음 넘버링이 나는 2초마다 생길 줄 알았는데, 한 번 생기고 그 다음 넘버링 인덱스가 생성되지 않는 것을 확인했다. 자동으로 매 시간마다 넘겨주거나 매 document의 수마다 넘겨주는 설정이 분명 있을텐데. 7.1장에서 aliases 실습으로 만든 인덱스들은 index management 화면에서 보였는데, 7.2장에서 data stream 실습으로 만든 인덱스들은 찾아볼 수가 없다... 왜? poll interval이 정확히 어떤 것에 대한 간격인지 잘 모르겠음 일반적으로는 10분으로 설정한다는데, lifecycle에 대한 확인 시간인가? 7.3장 lifecycle 설정하는 부분 => 약간의 오차는 있지만 이건 서버적인 부분

2023년 4월 28일
·
0개의 댓글
·
post-thumbnail

Window 환경에서 Docker를 사용하여 Elastic Search, Kibana 설치

목차 > ** 터미널에서 Docker Pull 명령어로 elasticsearch 버전 8.6.0 Install Docker Network 생성 elastic search 실행 elastic search 비밀번호 초기화 elastic search 인증서 로컬로 복제 elastic search 접속 인증 elastic search 확인 kibana 설치 ** Docker Pull 도커에서 터미널에서 elastic search를 install 해줍니다. Docker Network 생성 도커에서 새로운 네트워크를 생성해줍니다. 이 네트워크를 통해 나중에 컨테이너끼리 통신을 할 수 있습니다.(kibana와 통신) elastic search 실행 docker에서 elastic search를 실행해줍니다. 저는 도커로 elastic search를 실행 했더니 에러가 발생했습니다. 로그를 확인해봤더니 최소로

2023년 4월 28일
·
0개의 댓글
·
post-thumbnail

Elastic Search

ElasticSearch란 검색에 최적화 되어있는 광범위한 개방형 검색 플래폼이며 다양한 프로그래밍 언어와 HTTP의 JSON 인터페이스를 지원해줍니다. Elasticsearch 용도 ElasticSearch는 검색 엔진이며 로그분석, 이벤트 분석, 성능 분석등 분석 및 인사이트를 제공해줍니다. Elasticsearch는 트랜잭션 및 JOIN을 지원해주지 않습니다. Elasticsearch 요청과 응답 모든 동작을 REST API로 제공합니다. 입력 : PUT 조회 : GET 삭제 : DELETE 수정 : POST Elasticsearch 요소 다큐먼트 RDBMS의 Row와 유사 데이터가 저장되는 기본 단위 JSON 형식의 필드와 값 > Document ![](https://velog.velcdn.com/images/ekxk1234/post/fd7862f8-dfab-4e96-8b1d-bab8196

2023년 4월 27일
·
0개의 댓글
·

[230426] module 5~6 실습 기록

5.3의 5번 solution moving_fn이 어떤 역할을 하는지 잘 모르겠음 6.1의 7번 solution => node 3번이 보이지 않음 primary 1, 2번이 각각 node1, node2에 배치된것은 확인했는데, replicas는 왜 모두 unassigned인지 의문 _cat/shard?v&s=,,,&h=,,,에서 s,h가 각각 무슨 의미일까 => 하나씩 실행해보니, h는 어떤 항목을 표시할지 결정하는 부분 s는 sort. 어떤 기준으로 정렬할지 앞쪽부터 우선순위 GET _tasks?actions=*reindex&detailed runtime error 발생했을 때, 아직 해당 쿼리가 백그라운드에서 돌아가고 있을 수 있음 그 때에 돌아가고 있을 작업을 확인하는 것 아마 뒤에 reindex를 명시해서 _reindex 작업에 대한 디테일만 나오는 것 같은데, 다양한 옵션이 있을 것으로 예상 => 공부해볼 내용 -

2023년 4월 26일
·
0개의 댓글
·