본문 바로가기
반응형

오픈서치12

[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.
[7] 인덱스 템플릿 인덱스 템플릿을 사용하면 이미 정의된 mappings와 settings 그대로 새 인덱스를 초기화할 수 있다. 예를 들어, 지속적으로 인덱싱하는 log data라면, 이런 모든 index가 동일한 수의 샤드와 복제본을 갖도록 인덱스 템플릿을 정의할 수 있다. // Index Template 생성 예시 PUT _index_template/daily_logs // daily_logs라는 이름을 가진 템플릿 생성 { "index_patterns": [ "logs-2022-01-*" ], "template": { "aliases": { "my_logs": {} }, "settings": { "number_of_shards": 2, "number_of_replicas": 1 }, "mappings": { "pro.. 2022. 3. 2.
[6] 데이터 스트림 로그, 이벤트 및 메트릭과 같은 지속적으로 생성되는 시계열 데이터를 수집하는 경우, 문서의 수가 급격하게 증가하고 이전 문서를 업데이트할 필요가 없는 경우가 있을 때가 있습니다. 데이터 스트림은 타임스탬프 필드가 있는지 확인하고 시계열 데이터에 가장 적합한 설정을 시행합니다. 내부적으로 여러 backing 인덱스로 구성되는데, 검색 요청은 모든 backing 인덱스에 라우팅 되는 반면에 인덱싱 요청은 최신 쓰기 인덱스로 라우팅됩니다. ISM 정책을 사용하면 인덱스 롤오버 또는 삭제를 자동으로 처리할 수 있습니다. :: 인덱스 템플릿 만들기 데이터 스트림을 생성하려면 먼저 인덱스 세트를 데이터 스트림으로 구성하는 인덱스 템플릿을 생성해야 합니다. data_stream 객체는 일반적인 인덱스 템플릿이 아닌 .. 2022. 2. 25.
반응형