본문 바로가기
반응형

OpenSearch (ElasticSearch)17

[API] Ingest APIs 인덱싱을 하다보면 필요에 따라 데이터를 가공해야될 때가 있다. 인덱스 별로 가공해야 될 필드가 다르고 필드명 또한 다른 경우 매번 인덱스에 해당하는 프로세스를 만들고, 배포하는 과정은 불편하기 마련이다. 이런 경우 Pipeline을 설정하여 데이터를 가공할 수 있다. 우선적으로 Pipeline을 설정하기 위해서는 Ingest Node가 활성화 되어있어야 한다. // pipeline 설정 기본 구성 예시 PUT _ingest/pipeline/{id} { "description" : "A description for your pipeline", "processors" : [ { "set" : { "field": "field-name", "value": "value" } } ] } 위에 processors는 .. 2022. 3. 18.
[API] Index APIs 1. Index Exist Path and HTTP methods HEAD / ** https://opensearch.org/docs/latest/opensearch/rest-api/index-apis/exists/ 2. Delete Index Path and HTTP methods DELETE / ** https://opensearch.org/docs/latest/opensearch/rest-api/index-apis/delete-index/ 3. Get Index Path and HTTP methods GET / ** https://opensearch.org/docs/latest/opensearch/rest-api/index-apis/get-index/ 4. Close Index Path and HT.. 2022. 3. 18.
[15] 스냅샷 생성 및 복원 스냅샷은 클러스터 인덱스 및 상태의 백업을 의미한다. 상태에는 클러스터 설정, 노드 정보, 인덱스 메타데이터 ( 매핑, 설정, 템플릿 등 ) 및 샤드 할당이 포함된다. 스냅샷은 크게 두 가지 용도로 사용된다. 복구 시 - 예를 들어 클러스터 상태가 빨간색이 되면 스냅샷으로 복원할 수 있다. 한 클러스터에서 다른 클러스터로 마이그레이션 - A에서 B인 프로덕션 클러스터로 이동하는 경우 전자의 스냅샷을 만들어 후자에 적용할 수 있다. 스냅샷은 즉각적이지 않고 완료하는데 시간이 걸리며 클러스터의 완벽한 시점을 나타내지 않는다. 스냅샷이 진행되는 동안 여전히 문서를 인덱싱하고 클러스터에 다른 요청을 할 순 있지만 일반적으로 새 문서와 기존 문서에 대한 업데이트는 스냅샷에 포함되지 않는다. 스냅샷에는 OpenSe.. 2022. 3. 18.
[14] 샤드 인덱싱 backpressure (인덱싱 작업 부하에 대한 조정) 클러스터에 부담이 있을 때 인덱싱 요청을 동적으로 거부하는 샤드 당 스마트 거부 메커니즘입니다. 부하가 높은 노드나 샤드에서 요청을 다른 노드나 아직 정상 상태인 샤드로 전송하는 작업을 합니다. 느린 노드, 중단된 작업, 리소스 집약적인 요청, 트래픽 급증, 왜곡된 샤드 할당 등으로 인한 성능 저하로 인해 클러스터의 노드가 계단식 오류로 실행되는 것을 방지할 수 있습니다. 이 방법은 하나의 기본 매개변수와 하나의 보조 매개변수가 위반된 경우에만 적용됩니다. :: 기본 매개변수 기본 매개변수는 클러스터가 긴장 상태에 있다는 초기 지표입니다. 샤드 메모리 제한 위반 : 샤드의 메모리 사용량이 할당된 메모리의 95%를 초과하면 위반. 노드 메모리 제한 위반 : 노드의 메모리 사용량이 할당된 메모리의 70%를 .. 2022. 3. 18.
[13] OpenSearch Logs OpenSearch 로그에는 클러스터 작업을 모니터링하고 문제를 해결하는데 유용한 정보가 포함되어 있습니다. 로그 위치는 설치 유형에 따라 다릅니다. Docker에서 OpenSearch는 대부분의 로그를 콘솔에 쓰고 opensearch/logs/ 안에 저장합니다. tarball 설치 또한 같은 폴더를 사용합니다. 대부분의 리눅스 설치에서는 /var/log/opensearch/에 로그를 저장하게 됩니다. 보다 자세한 내용은 : https://opensearch.org/docs/latest/opensearch/logs/ 참고. 어플리케이션 로그 슬로우 로그 (slow log) 지원하지 않는 로그 2022. 3. 18.
[12] 검색 템플릿 Full-text 검색들을 검색 템플릿으로 만들어 사용자의 입력을 받아 쿼리에 동적으로 적용하도록 할 수 있습니다. 예를 들어, 웹 사이트나 어플리케이션의 검색 엔진으로 백엔드 OpenSearch를 사용한다면, 사용자가 직접 입력하게 검색어를 입력하게 하여 검색 템플릿의 파라미터로 보낼 수 있습니다. 사용자의 입력값을 OpenSearch의 쿼리 코드로 변환해야하는 작업을 할 때 검색 템플릿을 사용하여 코드를 단순화할 수 있습니다. 검색 쿼리에 필드를 추가해야 하는 경우, 코드를 변경하지 않고 템플릿을 수정하기만 하면 됩니다. 아래 기능 예시 : https://opensearch.org/docs/latest/opensearch/search-template/ 검색 템플릿 만들기 검색 템플릿 저장 및 실행 검.. 2022. 3. 18.
[11] 쿼리 DSL (Domain-Specific Language) HTTP 요청 파라미터를 사용하여 간단한 검색을 수행할 수 있지만 더 넓은 범위의 검색 옵션을 제공하는 쿼리 DSL을 사용할 수 있습니다. 쿼리 DSL은 HTTP 요청의 request body를 사용하므로 쿼리를 보다 쉽게 사용자 지정하여 원하는 결과를 얻을 수 있습니다. 참조: https://opensearch.org/docs/latest/opensearch/query-dsl/index/ OpenSearch는 데이터를 검색할 때 term-level 쿼리와 full-text 쿼리, boolean 쿼리라는 세 가지 유형의 쿼리를 지원합니다. term-level 쿼리 : 쿼리와 일치하는 문서를 반환합니다. ( https://opensearch.org/docs/latest/opensearch/query-dsl.. 2022. 3. 18.
[10] 데이터 재인덱싱 인덱스를 만든 후 모든 문서에 새 필드를 추가하거나 여러 인덱스를 결합하여 새 필드를 구성하는 등 광범위한 변경 작업을 수행해야 할 수 있습니다. 인덱스를 삭제하고 오프라인으로 변경한 다음 데이터를 다시 인덱싱하는 대신에 reindex 작업을 사용할 수 있습니다. 이 reindex작업 쿼리를 통해 선택한 문서 전체 또는 하위 집합을 다른 인덱스에 복사할 수 있습니다. 가장 기본적인 형식은 source index와 target index를 지정합니다. 재인덱싱은 source index의 크기에 따라 비용이 많이 드는 작업일 수 있습니다. number_of_replicas를 0으로 설정하여 복제본을 비활성화하고 재인덱싱 프로세스가 완료되면 복제본을 다시 활성화하는 것이 좋습니다. 데이터 재인덱싱 기능 목차 .. 2022. 3. 18.
[9] 집계 - 버킷 집계 버킷 집계 버킷 집계는 문서 세트를 버킷으로 분류합니다. 버킷 집계 유형은 주어진 문서가 버킷에 속하는지 여부를 결정합니다. :: terms terms 집계는 각 고유한 terms필드에 대한 버킷을 동적으로 생성합니다. // 아래 예시는 웹 로그 데이터의 응답 코드 별 문서의 수를 찾아서 집계합니다. GET opensearch_dashboards_sample_data_logs/_search { "size": 0, "aggs": { "response_codes": { "terms": { "field": "response.keyword", "size": 10 } } } } // 응답 예시 ... "aggregations" : { "response_codes" : { "doc_count_error_upper_.. 2022. 3. 13.
반응형