Amazon OpenSearch 서비스의 데이터 인덱싱 - 아마존 OpenSearch 서비스

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

Amazon OpenSearch 서비스의 데이터 인덱싱

Amazon OpenSearch 서비스는 REST API를 사용하기 때문에 문서를 인덱싱하기 위한 다양한 방법이 있습니다. curl 같은 표준 클라이언트를 사용해도 되고, HTTP 요청을 보낼 수 있는 프로그래밍 언어를 사용해도 됩니다. OpenSearch 서비스와의 상호 작용 프로세스를 더욱 단순화하기 위해 Service에는 다양한 프로그래밍 언어에 대한 클라이언트가 있습니다. 고급 사용자는 바로 Amazon OpenSearch 서비스에 스트리밍 데이터 로드 단원으로 건너뛸 수 있습니다.

서비스에 구축된 완전 관리형 데이터 수집기인 Amazon OpenSearch Ingestion을 사용하여 데이터를 수집하는 것이 좋습니다. OpenSearch 자세한 내용은 Amazon OpenSearch Ingestion을 참조하십시오.

인덱싱에 대한 소개는 설명서를 참조하십시오. OpenSearch

인덱스에 대한 이름 지정 제약 조건

OpenSearch 서비스 인덱스에는 다음과 같은 이름 지정 제한이 있습니다.

  • 모든 문자는 소문자여야 합니다.

  • 인덱스 이름은 _ 또는 -로 시작할 수 없습니다.

  • 인덱스 이름에는 공백, 쉼표, :, ", *, +, /, \, |, ?, #, > 또는 <가 포함될 수 없습니다.

색인, 유형 또는 문서 ID 이름에 민감한 정보를 포함시키지 마세요. OpenSearch 서비스는 이러한 이름을 URI (통합 리소스 식별자) 에 사용합니다. 서버 및 애플리케이션에서 흔히 HTTP 요청을 로깅하는데, 그럴 경우 URI에 민감한 정보가 포함된다면 불필요한 데이터 노출이 발생할 수 있습니다.

2018-10-03T23:39:43 198.51.100.14 200 "GET https://opensearch-domain/dr-jane-doe/flu-patients-2018/202-555-0100/ HTTP/1.1"

연결된 JSON 문서를 볼 수 있는 권한이 없는 경우에도 이 가짜 로그 줄을 통해, Doe 박사의 환자 중 전화번호가 202-555-0100인 환자가 2018년에 독감에 걸린 적이 있음을 유추할 수 있습니다.

OpenSearch 서비스가 인덱스 이름 (예:my-index-12.34.56.78.91) 에서 실제 또는 인식된 IP 주소를 탐지하면 해당 IP 주소를 마스킹합니다. _cat/indices 호출 시 다음 응답을 산출합니다.

green open my-index-x.x.x.x.91 soY19tBERoKo71WcEScidw 5 1 0 0 2kb 1kb

불필요한 혼동을 방지하기 위해, 인덱스 이름에 IP 주소를 포함하지 마십시오.

응답 크기 감소

_index_bulk API의 응답에는 많은 정보가 포함되어 있습니다. 이 정보는 요청을 해결하거나 재시도 로직을 구현하는 데 유용할 수 있지만 상당한 대역폭을 사용할 수 있습니다. 이 예제에서 32바이트 문서를 인덱싱하면 339바이트의 응답이 발생합니다(헤더 포함).

PUT opensearch-domain/more-movies/_doc/1 {"title": "Back to the Future"}

응답

{ "_index": "more-movies", "_type": "_doc", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 3, "_primary_term": 1 }

이 응답 크기는 최소한으로 보일 수 있지만 하루에 1,000,000개의 문서(초당 약 11.5개 문서)를 인덱싱하는 경우 응답당 339바이트는 매월 10.17GB의 다운로드 트래픽으로 작동합니다.

데이터 전송 비용이 우려되는 경우 filter_path 파라미터를 사용하여 OpenSearch 서비스 응답 크기를 줄이되, 실패한 요청을 식별하거나 재시도하는 데 필요한 필드를 필터링하지 않도록 주의하십시오. 이러한 필드는 클라이언트에 따라 다릅니다. 이 filter_path 파라미터는 모든 OpenSearch 서비스 REST API에 사용할 수 있지만, 특히 자주 호출하는 API (예: 및 API) 에 _index 유용합니다. _bulk

PUT opensearch-domain/more-movies/_doc/1?filter_path=result,_shards.total {"title": "Back to the Future"}

응답

{ "result": "updated", "_shards": { "total": 2 } }

필드를 포함하는 대신 - 접두사가 있는 필드를 제외할 수 있습니다. filter_path는 와일드카드도 지원합니다.

POST opensearch-domain/_bulk?filter_path=-took,-items.index._* { "index": { "_index": "more-movies", "_id": "1" } } {"title": "Back to the Future"} { "index": { "_index": "more-movies", "_id": "2" } } {"title": "Spirited Away"}

응답

{ "errors": false, "items": [ { "index": { "result": "updated", "status": 200 } }, { "index": { "result": "updated", "status": 200 } } ] }

인덱스 코덱

인덱스 코덱은 인덱스에 저장된 필드를 압축하여 디스크에 저장하는 방법을 결정합니다. 인덱스 코덱은 압축 알고리즘을 지정하는 정적 index.codec 설정에 의해 제어됩니다. 이 설정은 인덱스 샤드 크기 및 작업 성능에 영향을 줍니다.

지원되는 코덱 목록과 성능 특성은 설명서의 지원되는 코덱을 참조하십시오. OpenSearch

인덱스 코덱을 선택할 때는 다음 사항을 고려하세요.