Indexación de datos en Amazon OpenSearch Service
Dado que Amazon OpenSearch Service utiliza una API de REST, existen numerosos métodos para indexar documentos. Puede utilizar clientes estándar como curl
Le recomendamos mucho que utilice Amazon OpenSearch Ingestion para incorporar datos, que es un recopilador de datos totalmente administrado e integrado en OpenSearch Service. Para más información, consulte Amazon OpenSearch Ingestion.
Para ver una introducción a la indexación, consulte la documentación de OpenSearch
Restricciones de nomenclatura de los índices
Los índices de OpenSearch Service tienen las siguientes restricciones de nomenclatura:
-
Todas las letras deben estar en minúsculas.
-
Los nombres de los índices no pueden empezar por
_ni-. -
Los nombres de los índices no pueden contener espacios, comas,
:,",*,+,/,\,|,?,#,>o<.
No incluya información confidencial en los nombres de ID de índice, tipo o documento. OpenSearch Service utiliza estos nombres en sus identificadores uniformes de recursos (URI). A menudo, los servidores y las aplicaciones registran solicitudes HTTP, lo que puede dar lugar a que se expongan datos innecesariamente si los URI contienen información confidencial:
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"
Aunque no tenga permisos para ver el documento JSON asociado, puede inferir de esta línea de registro falsa que uno de los pacientes del Dr. Doe, cuyo número de teléfono es el 202-555-0100, tuvo gripe en 2018.
Si OpenSearch Service detecta una dirección IP real o percibida en un nombre de índice (por ejemplo, my-index-12.34.56.78.91), enmascara la dirección IP. Una llamada a _cat/indices produce la siguiente respuesta:
green open my-index-x.x.x.x.91 soY19tBERoKo71WcEScidw 5 1 0 0 2kb 1kb
Para evitar confusiones innecesarias, evite incluir direcciones IP en los nombres de los índices.
Reducción del tamaño de la respuesta
Las respuestas de las API _index y _bulk contienen bastante información. Esta información puede resultar útil para resolver problemas de las solicitudes o para implementar la lógica de reintentos, aunque puede utilizar una banda ancha considerable. En este ejemplo, la indexación de un documento de 32 bytes se traduce en una respuesta de 339 bytes (incluidos los encabezados):
PUTopensearch-domain/more-movies/_doc/1 {"title": "Back to the Future"}
Respuesta
{ "_index": "more-movies", "_type": "_doc", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 3, "_primary_term": 1 }
Este tamaño de respuesta puede parecer mínimo, pero si indexa 1 000 000 de documentos al día (aproximadamente 11,5 documentos por segundo), 339 bytes por respuesta equivalen a 10,17 GB de tráfico de descarga al mes.
Si los costos de transferencia de datos son una preocupación, utilice el parámetro filter_path para reducir el tamaño de la respuesta de OpenSearch Service, pero procure no filtrar campos que necesita para poder identificar o reintentar solicitudes que fallaron. Estos campos varían por cliente. El parámetro filter_path funciona para todas las API de REST de OpenSearch Service, pero resulta especialmente útil con las API a las que se llama con frecuencia, como las API _index y _bulk:
PUTopensearch-domain/more-movies/_doc/1?filter_path=result,_shards.total {"title": "Back to the Future"}
Respuesta
{ "result": "updated", "_shards": { "total": 2 } }
En lugar de incluir campos, puede excluir campos con un prefijo -. filter_path también es compatible con comodines:
POSTopensearch-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"}
Respuesta
{ "errors": false, "items": [ { "index": { "result": "updated", "status": 200 } }, { "index": { "result": "updated", "status": 200 } } ] }
Códecs de índice
Los códecs de índice determinan cómo se comprimen y almacenan en el disco los campos almacenados en un índice. El códec de índice se controla mediante la configuración index.codec estática, que especifica el algoritmo de compresión. Esta configuración afecta el tamaño de la partición del índice y el rendimiento de la operación.
Para obtener una lista de los códecs compatibles y sus características de rendimiento, consulte los Códecs compatibles
Cuando elija un códec de índice, tenga en cuenta lo siguiente:
-
Para evitar los problemas que supone cambiar la configuración del códec de un índice existente, pruebe una carga de trabajo representativa en un entorno que no sea de producción antes de utilizar una nueva configuración de códec. Para más información, consulte Cambio de un códec de índice
. -
No puede usar los códecs de compresión Zstandard
( "index.codec": "zstd"o"index.codec": "zstd_no_dict") para los índices k-NNo Security Analytics .