뒤로가기

Elastic

elasticsearch scroll, slice(sliced scroll) 성능 비교

엘라스틱 서치에서 scroll 검색과 scroll 검색에 slice(sliced scroll)를 활용하여 성능 비교"

최현복 2021.06.17.

동적색인 프로세스 변경 사례

이번에 제휴사에서 대량 처리하기 위한 동적색인 사례를 소개합니다. 기존 구성은 제휴사에서는 변경 데이터가 dynamicIndex(이하 DI) API로 요청이 오게되면, DI에서는 큐에 적재하고, DI 내부 스케줄을 통해 큐의 메시지를 소비합니다. 예전에는 하나의 프로세스를 통해 충분히 대응이 가능하였지만 어느 순간 부터는 큐의 처리량이 부족하여 큐 메시지 소비 전용 프로세스인 dymaicIndexProcess(이하 DIP)를 통해 큐의 메시지 소비량을 높혀 사용하였습니다. 현재는 제휴사 한곳에서 약 1억건 이상의 요청이 오기 때문에 두 프로세스만으로는 소비보단 적재하는 TPS가 크기 때문에 큐에는 늘 소비 되지 못한 메시지가 쌓여 있었습니다. 제휴사에서는 점점 데이터양이 늘어나고 있고, 노후화된 프로세스라 전체 구조를 변경하기로 결정하였습니다.

김준우 2021.03.18.

디서치 관리도구 사용법 #14 - 파이프라인

안녕하세요. 이번 포스팅 내용은 다나와에서 개발한 디서치 관리도구(엘라스틱서치 관리도구)에서 파이프라인 메뉴에 대해 소개하는 시간을 가지도록 하겠습니다.

선지호 2021.01.20.

엘라스틱서치 Left Join API 개선사항

지난번 엘라스틱서치 API방식으로 전환이 후 CPU 사용률이 높아 성능개선한 부분에 대해 공유합니다. 그리고 추가된 밀터필드 조건 기능도 소개드립니다. Left Join API의 구성 및 사용법은 아래 링크를 통해 확인 부탁드립니다.

김준우 2021.01.20.

엘라스틱서치 Left 조인 (확장 API 방식)

지난번 엘라스틱서치 Left Join Plugin 소개 포스팅을 통해 엘라스틱서치의 플러그인을 소개해드렸습니다. 하지만 엘라스틱서치 버전 7.9.0 부터 현재 최신 버전인 7.10.1까지 엘라스틱서치 플러그인 이슈가 발생하였습니다. 그렇기에 플러그인 방식은 제한된 사용이 되며 엘라스틱서치에 종속적이기 때문에 다른 방식으로 Left 조인 기능을 구현해야 했습니다. 이번에 소개하는 방식은 엘라스틱서치 앞단에 es-tention-api 서버를 두고 _left 앤드포인트를 제외한 모든 앤드포인트를 엘라스틱서치로 포워드합니다. _left 앤드포인트로 접근시 QuerySDL을 해석하여 Parent, Child 각각 검색을 요청 후 응답하는 방식으로 개발해보았습니다.

김준우 2021.01.06.

엘라스틱서치 플러그인 이슈

다나와에선 엘라스틱서치 버전을 기존 7.6.2를 사용하고 있었습니다. 그리고 당시 최신이였던 7.9.1 버전으로 업그레이드를 진행하였습니다. 그리고 잘사용하던 중 알수없는 현상이 발생하기 시작하였습니다. 테스크가 쌓이기 시작하였고, 특정 노드에는 API 호출이 안되는 현상이 발생하였습니다. 어떤 작업을해도 테스크가 해소되지 않았고, 엘라스틱서치 클러스터를 결국 재시작해야하는 상황까지 발생하였습니다. 원인파악을 위해 알아보던 중 엘라스틱서치 플러그인에 제공되는 NodeClient에 문제가 확인되어 공유하기 위해 포스팅하였습니다.

김준우 2020.12.30.

Ingest PipeLine 설정을 통한 데이터 전처리

PipeLine 내에 여러 processor를 적용하여 색인 전 데이터를 가공해보기

하선호 2020.09.04.

디서치 관리도구 사용법 #13 - 클러스터설정

안녕하세요, 이번 포스팅에서는 클러스터설정 메뉴에 대해 소개하도록 하겠습니다. 클러스터설정에서는 엘라스틱의 클러스터 모든 설정을 확인할 수 있습니다. 클러스터 설정에는 기본설정, 영구설정, 임시설정이 있습니다. 각 설정별로 분류하여 쉽게 확인이 가능 하도록 하였습니다.

김준우 2020.08.18.

디서치 관리도구 사용법 #12 - API

안녕하세요. 이번 포스팅 내용은 다나와에서 개발한 디서치 관리도구(엘라스틱서치 관리도구)에서 API메뉴에 대해 소개하도록 하겠습니다. API 메뉴는 엘라스틱의 _cat API의 요청을 UI로 쉽게 요청하고, 보기 편한 형태로 결과를 확인하는 메뉴입니다.

김준우 2020.08.18.

디서치 관리도구 사용법 #11 - 서버

안녕하세요. 이번 포스팅 내용은 다나와에서 개발한 디서치 관리도구(엘라스틱서치 관리도구)에서 서버메뉴에 대해 소개하도록 하겠습니다.

김준우 2020.08.18.

디서치 관리도구 사용법 #10 - 래퍼런스UI

안녕하세요. 이번 포스팅 내용은 다나와에서 개발한 디서치 관리도구(엘라스틱서치 관리도구)에서 레퍼런스UI 메뉴에 대해 소개하도록 하겠습니다.

김준우 2020.08.18.

디서치 관리도구 사용법 #9 - JDBC

이번 포스팅 내용은 다나와에서 개발한 디서치 관리도구(엘라스틱서치 관리도구)에서 JDBC 메뉴에 대해 소개하는 시간을 가지도록 하겠습니다.

김준우 2020.08.18.

디서치 관리도구 사용법 #8 - 인덱스

디서치 관리도구 인덱스 메뉴에 대해 소개하고 사용하는 방법에 대해 설명 하도록 하겠습니다.

선지호 2020.08.14.

디서치 관리도구 사용법 #7 - 템플릿

디서치 관리도구 템플릿 메뉴에 대해 소개하고 사용하는 방법에 대해 설명 하도록 하겠습니다.

선지호 2020.08.14.

디서치 관리도구 사용법 #6 - 컬렉션

디서치 관리도구 컬렉션 메뉴에 대해 소개하고 사용하는 방법에 대해 설명 하도록 하겠습니다.

선지호 2020.08.14.

디서치 관리도구 사용법 #5 - 클러스터

디서치 관리도구 클러스터 메뉴에 대해 소개하고 사용하는 방법에 대해 설명 하도록 하겠습니다.

선지호 2020.08.13.

디서치 관리도구 사용법 #4 - 랭킹튜닝

디서치 관리도구 랭킹튜닝 대해 소개하고 사용하는 방법에 대해 설명 하도록 하겠습니다.

선지호 2020.08.13.

디서치 관리도구 사용법 #3 - 분석도구

디서치 관리도구 분석도구 메뉴에 대해 소개하고 사용하는 방법에 대해 설명 하도록 하겠습니다.

선지호 2020.08.13.

디서치 관리도구 사용법 #2 - 사전

디서치 관리도구 사전에 대해 소개하고 사용하는 방법에 대해 설명 하도록 하겠습니다.

선지호 2020.08.13.

디서치 관리도구 사용법 #1 - 소개

디서치 관리도구 사용법에 대해 전체적으로 메뉴를 소개하도록 하겠습니다.

선지호 2020.08.12.

엘라스틱서치 Left Join Plugin 소개

이번 포스팅 내용은 엘라스틱서치에서 제공하는 join을 사용하지 않고, 자체적으로 개발한 Left Join 플러그인을 소개하도록 하겠습니다. RDB에서 join은 아래 이미지 처럼 A, B 테이블이 있을때 조인을 통해 원하는 결과로 조합할 수 있습니다. 엘라스틱서치에서는 아래 이미지에서 나오지 않는 조인 기능을 제공하고있습니다. A를 검색했을때 B의 결과를 가져오거나, B를 검색하면 A의 결과를 가져오는 기능만 제공하고 있습니다. 그래서 A의 결과와 B의 결과를 같이 검색을 하는 방법은 없기 때문에 플러그인을 개발하였습니다.

김준우 2020.08.10.

다나와 검색API 개발을 위한 ElasticSearch - GoClient 선택하기

다나와 검색API를 ElasticSearch로 적용하기 위해 적합한 Client를 찾는다.

하선호 2020.08.04.

엘라스틱서치 인덱스와 샤드 분할

엘라스틱서치의 인덱스와 샤드를 어떻게 나누었는지 그 경험을 나누겠습니다

송상욱 2020.07.21.

FASTCAT-ElasticSearch 테스트 - 검색+동적색인

ElasticSearch과 FASTCAT의 검색+동적색인 비교 테스트.

하선호 2020.07.15.

FASTCAT-ElasticSearch 테스트 - 동적색인

ElasticSearch과 FASTCAT의 동적색인 비교 테스트.

하선호 2020.07.09.

FASTCAT-ElasticSearch 테스트 - 검색

ElasticSearch과 FASTCAT의 검색 성능에 대한 테스트.

하선호 2020.07.06.

FASTCAT-ElasticSearch 테스트 - 색인과 배포

ElasticSearch과 FASTCAT의 색인 및 배포 성능에 대한 테스트.

하선호 2020.07.06.

ElasticSearch로 구성한 오타교정 API 결과 분석

여러 방법으로 오타 교정 API를 통해 교정된 결과를 분석하였습니다.

하선호 2020.06.17.

엘라스틱서치 오타교정 API 만들어보기

엘라스틱서치의 Suggest API를 사용하여 검색 키워드에 대한 교정 키워드를 가져오기

하선호 2020.05.21.

[ElasticSearch] 기본 보안

안녕하세요. 다나와의 김준우입니다. 엘라스틱서치의 클러스터 통신에 암호화를 적용하고, 키바나 로그인을 활성화 해보는 내용을 포스팅하였습니다. 엘라스틱서치 클러스터를 구성하면 기본적으로 보안은 비활성화 상태가됩니다. 비활성화 상태로 사용하게 되면 외부에서 PUT/POST API 또는 키바나를 통해 위협이 될 수 있기 때문에 필수로 보안을 활성화하여 운영해야 됩니다.

김준우 2020.05.20.

[ElasticSearch] 색인 테스트

다나와에선 검색엔진을 패스트캣을 사용하고 있습니다. 다나와는 차세대 검색엔진을 엘라스틱서치를 고려하고 있습니다. 엘라스틱은 다양한 서비스를 제공하고 있고, 검색/색인 성능도 좋게 평가되고 있기 때문입니다. 이번에 포스팅 내용은 엘라스틱으로 색인성능을 테스트 해보도록 하겠습니다.

김준우 2020.03.11.