Indexation des données dans Amazon Service OpenSearch - Amazon OpenSearch Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Indexation des données dans Amazon Service OpenSearch

Amazon OpenSearch Service utilisant une API REST, il existe de nombreuses méthodes pour indexer les documents. Vous pouvez utiliser des clients standard, tels que curl, ou n'importe quel langage de programmation capable d'envoyer des requêtes HTTP. Pour simplifier davantage le processus d'interaction avec celui-ci, OpenSearch Service a des clients pour de nombreux langages de programmation. Les utilisateurs avancés peuvent passer directement à l'étape Chargement de données de streaming dans Amazon OpenSearch Service.

Nous vous recommandons vivement d'utiliser Amazon OpenSearch Ingestion pour ingérer des données, un collecteur de données entièrement géré intégré au OpenSearch Service. Pour plus d'informations, consultez Amazon OpenSearch Ingestion.

Pour une introduction à l'indexation, consultez la OpenSearchdocumentation.

Restrictions de dénomination des index

OpenSearch Les index de service sont soumis aux restrictions de dénomination suivantes :

  • Toutes les lettres doivent être en minuscules.

  • Les noms d'index ne peuvent pas commencer par _ ni -.

  • Les noms d'index ne peuvent pas contenir d'espaces, de virgules, :, ", *, +, /, \, |, ?, #, >, ni de <.

N'incluez pas d'informations sensibles dans les noms d'index, de type ou d'identifiant de document. OpenSearch Le service utilise ces noms dans ses identifiants de ressources uniformes (URI). Les serveurs et les applications journalisent souvent les demandes HTTP, ce qui peut entraîner une exposition inutile des données si les URI contiennent des informations sensibles :

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"

Même si vous ne disposez pas des autorisations nécessaires pour afficher le document JSON associé, vous pourriez déduire à partir de cette ligne de journal fictive que l'un des patients du Dr Untel, dont le numéro de téléphone est le 202-555-0100, a eu la grippe en 2018.

Si le OpenSearch Service détecte une adresse IP réelle ou perçue dans un nom d'index (par exemple,my-index-12.34.56.78.91), il masque l'adresse IP. Un appel à _cat/indices donne la réponse suivante :

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

Pour éviter toute confusion inutile, évitez d'inclure des adresses IP dans les noms d'index.

Réduction de la taille des réponses

Les réponses envoyées par les API _index et _bulk contiennent un grand nombre d'informations. Ces informations peuvent s'avérer utiles pour résoudre les problèmes liés aux demandes ou pour mettre en œuvre une logique de nouvelle tentative. Elles peuvent toutefois utiliser une grande quantité de bande passante. Dans cet exemple, l'indexation d'un document de 32 octets génère une réponse de 339 octets (en-têtes inclus) :

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

Réponse

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

Cette taille de réponse peut sembler minime, mais si vous indexez 1 000 000 documents par jour (soit environ 11,5 documents par seconde), 339 octets par réponse représentent 10,17 Go de trafic de téléchargement par mois.

Si les coûts de transfert de données vous préoccupent, utilisez le filter_path paramètre pour réduire la taille de la réponse du OpenSearch service, mais veillez à ne pas filtrer les champs dont vous avez besoin pour identifier ou réessayer les demandes ayant échoué. Ces champs varient selon le client. Le filter_path paramètre fonctionne pour toutes les API REST de OpenSearch service, mais il est particulièrement utile pour les API que vous appelez fréquemment, telles que les _bulk API _index et :

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

Réponse

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

Au lieu d'inclure des champs, vous pouvez exclure des champs à l'aide du préfixe -. filter_path prend également en charge les caractères génériques :

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"}

Réponse

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

Codecs d'index

Les codecs d'index déterminent la manière dont les champs stockés dans un index sont compressés et stockés sur disque. Le codec d'index est contrôlé par le index.codec paramètre statique, qui spécifie l'algorithme de compression. Ce paramètre a un impact sur la taille de la partition d'index et les performances opérationnelles.

Pour obtenir la liste des codecs pris en charge et leurs caractéristiques de performance, consultez la section Codecs pris en charge dans la documentation. OpenSearch

Lorsque vous choisissez un codec d'index, tenez compte des points suivants :