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

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

Amazon OpenSearch Service의 데이터 인덱싱

Amazon OpenSearch Service에서는 REST API를 사용하기 때문에 문서를 인덱싱하는 방법이 무수히 많습니다. curl 같은 표준 클라이언트를 사용해도 되고, HTTP 요청을 보낼 수 있는 프로그래밍 언어를 사용해도 됩니다. OpenSearch Service는 상호 작용 과정을 한층 더 간소화하기 위해 각종 프로그래밍 언어용 클라이언트도 갖추고 있습니다. 고급 사용자는 바로 Amazon OpenSearch 서비스에 스트리밍 데이터 로드 단원으로 건너뛸 수 있습니다.

Amazon OpenSearch Ingestion을 사용하여 데이터를 수집하는 것이 좋으며, 이는 OpenSearch Service 내에 구축된 완전 관리형 데이터 수집기입니다. 자세한 내용은 Amazon OpenSearch Ingestion을 참조하세요.

인덱싱에 대한 소개는 OpenSearch 설명서를 참조하세요.

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

OpenSearch Service 인덱스에는 다음과 같은 이름 지정 제약 조건이 있습니다.

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

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

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

인덱스, 유형 또는 문서 ID 이름에는 민감한 정보를 포함하지 않습니다. OpenSearch Service는 URI(Uniform Resource Identifier)에 이러한 이름을 사용합니다. 서버 및 애플리케이션에서 흔히 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 Service가 인덱스 이름에서 실제 또는 특정 IP 주소를 감지하는 경우(예: my-index-12.34.56.78.91) 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 Service 응답의 크기를 줄입니다. 하지만 실패한 요청을 식별하거나 재시도하는 데 필요한 필드를 필터링하지 않도록 주의합니다. 이러한 필드는 클라이언트에 따라 다릅니다. filter_path 파라미터는 모든 OpenSearch Service REST API에 대해 작동하지만 _index_bulk API와 같이 자주 호출하는 API에 특히 유용합니다.

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 설명서의 지원되는 코덱을 참조하세요.

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

  • 기존 색인의 코덱 설정을 변경하는 문제를 피하려면 새 코덱 설정을 사용하기 전에 비프로덕션 환경에서 대표적인 워크로드를 테스트하세요. 자세한 내용은 인덱스 코덱 변경을 참조하세요.

  • k-NN 또는 보안 분석 인덱스에는zstdzstd_no_dict 압축 코덱을 사용할 수 없습니다.

  • ZStandard 인덱스의 경우 UltraWarm 인스턴스로의 마이그레이션이 비활성화되어 있습니다.