아마존 서비스에서의 비동기 검색 OpenSearch - Amazon OpenSearch Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

아마존 서비스에서의 비동기 검색 OpenSearch

Amazon OpenSearch Service의 비동기 검색을 사용하면 백그라운드에서 실행되는 검색 쿼리를 제출하고, 요청 진행 상황을 모니터링하고, 이후 단계에서 결과를 검색할 수 있습니다. 검색이 완료되기 전에 사용할 수 있게 되므로 부분 결과를 검색할 수 있습니다. 검색이 완료된 후 나중에 검색 및 분석할 수 있도록 결과를 저장합니다.

비동기 검색에는 OpenSearch 1.0 이상 또는 Elasticsearch 7.10 이상이 필요합니다.

이 설명서에서는 비동기 검색에 대한 간략한 개요를 제공합니다. 또한 오픈 소스 클러스터가 아닌 관리형 Amazon OpenSearch Service 도메인에서 비동기 검색을 사용할 때의 제한 사항에 대해서도 설명합니다. OpenSearch 사용 가능한 설정, 권한, 전체 API 참조를 포함한 비동기 검색의 전체 설명서는 설명서의 비동기 검색을 참조하십시오. OpenSearch

샘플 검색 호출

비동기 검색을 수행하려면 다음 형식을 사용하여 HTTP 요청을 _plugins/_asynchronous_search로 전송합니다.

POST opensearch-domain/_plugins/_asynchronous_search
참고

OpenSearch 버전 대신 Elasticsearch 7.10을 사용하는 경우 모든 비동기 검색 요청에서 로 바꾸세요. _plugins _opendistro

다음 비동기 검색 옵션을 지정할 수 있습니다.

옵션 설명 기본값 필수
wait_for_completion_timeout

결과를 기다릴 시간을 지정합니다. 일반 검색과 마찬가지로 이 시간 내에 얻은 결과를 확인할 수 있습니다. ID를 기반으로 나머지 결과를 폴링할 수 있습니다. 최댓값은 300초입니다.

1 아니요
keep_on_completion

검색이 완료된 후 결과를 클러스터에 저장할지를 지정합니다. 나중에 저장된 결과를 검토할 수 있습니다.

false 아니요
keep_alive

결과가 클러스터에 저장되는 시간을 지정합니다. 예를 들어 2d는 결과가 48시간 동안 클러스터에 저장됨을 의미합니다. 이 기간 이후 또는 검색이 취소된 경우 저장된 검색 결과가 삭제됩니다. 여기에는 쿼리 런타임이 포함됩니다. 쿼리가 이 시간을 초과하면 프로세스가 이 쿼리를 자동으로 취소합니다.

12시간 아니요

샘플 요청

POST _plugins/_asynchronous_search/?pretty&size=10&wait_for_completion_timeout=1ms&keep_on_completion=true&request_cache=false { "aggs": { "city": { "terms": { "field": "city", "size": 10 } } } }
참고

표준 _search 쿼리에 적용되는 모든 요청 파라미터가 지원됩니다. 버전 대신 Elasticsearch 7.10을 사용하는 경우 로 바꾸세요. OpenSearch _plugins _opendistro

비동기 검색 권한

비동기 검색은 세분화된 액세스 제어를 지원합니다. 사용 사례에 맞게 권한을 혼합하고 일치시키는 방법에 대한 자세한 내용은 비동기 검색 보안을 참조하세요.

세분화된 액세스 제어가 활성화된 도메인의 경우 역할에 대해 다음과 같은 최소 권한이 필요합니다.

# Allows users to use all asynchronous search functionality asynchronous_search_full_access: reserved: true cluster_permissions: - 'cluster:admin/opensearch/asynchronous-search/*' index_permissions: - index_patterns: - '*' allowed_actions: - 'indices:data/read/search*' # Allows users to read stored asynchronous search results asynchronous_search_read_access: reserved: true cluster_permissions: - 'cluster:admin/opensearch/asynchronous-search/get'

세분화된 액세스 제어가 비활성화된 도메인의 경우 IAM 액세스 및 보안 키를 사용하여 모든 요청에 서명합니다. 비동기 검색 ID를 사용하여 결과에 액세스할 수 있습니다.

비동기 검색 설정

OpenSearch API를 사용하여 사용 가능한 모든 비동기 검색 설정을 변경할 수 있습니다. _cluster/settings OpenSearch 서비스에서는 다음 설정만 변경할 수 있습니다.

  • plugins.asynchronous_search.node_concurrent_running_searches

  • plugins.asynchronous_search.persist_search_failures

클러스터 간 검색

다음과 같은 사소한 제한 사항과 함께 클러스터 전체에서 비동기 검색을 수행할 수 있습니다.

  • 소스 도메인에서만 비동기 검색을 실행할 수 있습니다.

  • 클러스터 간 검색 쿼리의 일부로 네트워크 왕복을 최소화할 수 없습니다.

연결 별칭이 cluster_bdomain-a -> domain-b와 연결 별칭이 cluster_cdomain-a -> domain-c 간에 연결을 설정하는 경우, 다음과 같이 domain-a, domain-bdomain-c를 비동기 검색합니다.

POST https://src-domain.us-east-1.es.amazonaws.com/local_index,cluster_b:b_index,cluster_c:c_index/_plugins/_asynchronous_search/?pretty&size=10&wait_for_completion_timeout=500ms&keep_on_completion=true&request_cache=false { "size": 0, "_source": { "excludes": [] }, "aggs": { "2": { "terms": { "field": "clientip", "size": 50, "order": { "_count": "desc" } } } }, "stored_fields": [ "*" ], "script_fields": {}, "docvalue_fields": [ "@timestamp" ], "query": { "bool": { "must": [ { "query_string": { "query": "status:404", "analyze_wildcard": true, "default_field": "*" } }, { "range": { "@timestamp": { "gte": 1483747200000, "lte": 1488326400000, "format": "epoch_millis" } } } ], "filter": [], "should": [], "must_not": [] } } }

응답

{ "id" : "Fm9pYzJyVG91U19xb0hIQUJnMHJfRFEAAAAAAAknghQ1OWVBczNZQjVEa2dMYTBXaTdEagAAAAAAAAAB", "state" : "RUNNING", "start_time_in_millis" : 1609329314796, "expiration_time_in_millis" : 1609761314796 }

자세한 정보는 Amazon OpenSearch 서비스의 클러스터 간 검색을 참조하세요.

UltraWarm

UltraWarm 색인을 사용한 비동기 검색은 계속 작동합니다. 자세한 정보는 UltraWarm 아마존 OpenSearch 서비스용 스토리지을 참조하세요.

참고

에서 비동기 검색 통계를 모니터링할 수 있습니다. CloudWatch 전체 지표 목록은 비동기 검색 지표 섹션을 참조하세요.