[Elastic] Elastic Contributor Program - 2022, 2021
Elastic 2022. 2. 10. 13:032022년에는 방식이 변경 된다고 해서 활동을 거의 하지 않았는데 다행히 Bronze 를 주셨네요. ^^
참여 하고 싶으신 분들은 아래 링크 통해서 하시면 됩니다.
https://contributor-program.app.elstc.co/
Elastic Bronze Contributor 2022
'elastic'에 해당되는 글 130건
[Elastic] Elastic Contributor Program - 2022, 2021Elastic 2022. 2. 10. 13:032022년에는 방식이 변경 된다고 해서 활동을 거의 하지 않았는데 다행히 Bronze 를 주셨네요. ^^ 참여 하고 싶으신 분들은 아래 링크 통해서 하시면 됩니다.
https://contributor-program.app.elstc.co/ Elastic Bronze Contributor 2022
Elastic Bronze Contributor 2021[Elasticsearch] Exists Query...Elastic/Elasticsearch 2022. 1. 28. 11:44공식 문서) Exists query | Elasticsearch Guide [7.16] | Elastic
exists query 는 field 자체가 아래 이유등으로 인해 생성 되자 않는 문서를 찾습니다. 즉, - null 또는 empty array (빈문자열 "" 은 해당 되지 않습니다.) - index: false - ignore_above 설정 값을 넘었을 때 - ignore_malformed 설정에 걸렸을 때
검색 엔진 특성상 null, empty string 에 대해서는 전처리를 통해서 명확히 제거 하거나 목적에 맞게 변형 하는 것이 좋습니다.
검색엔진을 이용해서 field:"" 또는 field: " " 과 같은 질의를 작성 하는 것은 좋지 않습니다.
[Elasticsearch] Aggs - Cardinality, Derivative, Cumulative...Elastic/Elasticsearch 2022. 1. 28. 11:37공식 문서) Cardinality aggregation | Elasticsearch Guide [7.16] | Elastic Derivative aggregation | Elasticsearch Guide [7.16] | Elastic Cumulative cardinality aggregation | Elasticsearch Guide [7.16] | Elastic
현재 값과 직전 값에 대한 차이를 구합니다. 공식 문서에 자세한 내용들이 나와 있으니 보시면 좋습니다.
제가 사용 했던 예제는 공식 문서에 있는 거 활용 했습니다.
DAU 를 cardinality aggs 로 구하고 Daily DAU 에 대한 누적 카운트를 cumulative_cardinality aggs 로 구하고 (여기서 buckets_path 는 cardinality aggs) Daily DAU 에 대한 변화를 derivative aggs 로 구했습니다. (여기서 buckets_path 는 cumulative_cardinality aggs)
아래는 공식 문서 예제 올려 둔 내용입니다.
[Elasticsearch] TotalHits.Relation 알아보기.Elastic/Elasticsearch 2021. 12. 30. 16:45Elasticsearch 에서 질의 후 매칭된 문서의 수를 알아 내는 방법은 두 가지가 있습니다.
1. track_total_hits 2. _count API
여기서 WAS 의 에러로그 발생에 대한 알람을 구성 할 경우 어떤걸 사용 하면 좋을까요?
1. track_total_hits false true numeric 이와 같이 값을 설정 할 수 있는데요. false 이면 total hits 값을 구할 수 없습니다. true 이면 total hits 값을 구할 수 있습니다. 특정 값을 넣게 되면 그 값 보다 작거나, 같은 값을 구할 수 있으며, relation 을 통해서 실제 매칭 문서의 규모를 파악 할 수 있습니다.
2. _count API 기본적으로 non-scoring API 이며, 어떤 데이터도 요청 하지 않기 때문에 빠릅니다.
Lucene Core 에 TotalHits.Relation 이 들어 있습니다.
보시는 것 처럼 eq 아니면 gte 가 리턴 됩니다. 그래서 특정 수치 이상을 점검 하기 위해서는 relation:gte 로 조건을 잡으셔야 합니다.
그냥 위에서 처럼 1,2 번을 놓고 보면 _count API 를 사용하는게 일반적입니다. 그러나 대상 문서의 규모가 넓고 많을 경우 track_total_hits 에 특정 임계 값을 넣어서 질의 하는게 더 빠를 수 있습니다.
[Elasticsearch] LLRC + Springboot 성능 튜닝 팁Elastic/Elasticsearch 2021. 12. 7. 09:14대부분의 성능 이슈는 서버 엔진 보다는 클라이언트 단에서 사용을 잘 못 하는 경우가 많이 있습니다.
Low Level Rest Client 와 Springboot 조합으로 API 개발 시 튜닝 요소를 조금 정리 합니다. 나중에 또 기억 못할 것 같으니...
RestClientBuilder 에 보면 아래와 같이 기본 설정이 되어 있습니다.
이 기본 값으로 그냥 사용하게 되면 너무 리소스를 제한적으로 사용하기 때문에 성능이 제대로 나오지 않게 됩니다. 해당 값을 적절하게 튜닝을 하셔야 하는데 모든 케이스에 다 적용 가능한 부분은 아니지만 그래도 가늠 할 수 있는 기준 정도로는 사용이 가능 할 것 같아 공유 합니다.
아래는 실제 코드 내부에 작성 되어 있는 코멘트를 보여 드리기 위해 캡쳐 했습니다.
코드에서도 동일하게 기본 설정은 너무 제한적일 수 있다고 되어 있습니다.
Embedded Tomcat 에서의 기본 Max Connection 은 8192 개 입니다. Tomcat 과 HttpClient 그리고 Elasitcsearch 에 대한 각각의 Connection, Thread Count 를 잘 조정 하셔야 성능을 최적화 할 수 있습니다.
추가적으로 Connection 과 Route 의 비율은 10:1 정도가 적절해 보입니다.
아래는 Tomcat 기본 설정 내용입니다.
[Elasticsearch] LowLevelRestClient 를 이용한 개발 시 Json 결과 처리Elastic/Elasticsearch 2021. 11. 25. 14:08보통 Elasticsearch LLRC 를 이용해서 RESTful API 요청 하게 되면
ASIS)
TOBE)
[Logstash] filter split 예제Elastic/Logstash 2021. 11. 18. 12:12참고문서) https://www.elastic.co/guide/en/logstash/current/plugins-filters-split.html
예제코드)
[Elasticsearch] Term vs Terms QueryElastic/Elasticsearch 2021. 10. 27. 16:14보셔야 하는 클래스는 - TermQueryBuilder - TermsQueryBuilder 입니다.
두 Query 의 큰 차이는 단독으로 사용 되었을 때 Scoring 이 어떻게 되느냐 인데요. Term 은 Score 계산이 되어서 나오고 Terms 는 Constant Score Query 처럼 1.0 으로 나온다는 것입니다.
코드를 좀 더 따라 가다 보면 - MapperFieldType 클래스 내 Query API 들에 대한 Interface 나 Implement 코드를 확인해 보실 수 있습니다.
아래는 Terms Query 에 대한 코드를 가져온 내용입니다.
뭐 혼자 기억 하기 위한 기록 이라서 이 정도까지만 기록해 두겠습니다.
[Kibana] Discover 에서 데이터 요청 시 _source 와 fieldsElastic/Kibana 2021. 10. 27. 09:35Kibana Discover 에서 데이터 요청 시 _source 는 false 로 가져 오지 않습니다.
이걸 기록 하는 이유는
이 과정에서 kibana 에서 불필요한 데이터 요청을 하는 것 같아 확인을 해보니 Table 뷰와 JSON 뷰가 다르다는 걸 확인한 결과를 기록 한 부분 입니다.
기본 요청은 _source:false 이기 때문에 불필요한 요청을 하지 않습니다.
불필요한 요청이라고 하는 이유는 fields 는 _source 에서 정보를 가져오기 때문에 중복입니다. [Logstash] Proxy 구성을 이용한 Plugin 설치Elastic/Logstash 2021. 10. 26. 12:21$ vi .bashrc export http_proxy=http://proxy.host:port
$ bin/logstash-plugin install plugins...
외부 인터넷 망이 막혀 있는 경우 proxy 를 이용해서 plugin 설치를 하면 됩니다. output elasticsearch proxy 랑은 다른 내용입니다.
|