Indizierung von Daten in Amazon Service OpenSearch - OpenSearch Amazon-Dienst

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Indizierung von Daten in Amazon Service OpenSearch

Da Amazon OpenSearch Service eine REST-API verwendet, gibt es zahlreiche Methoden für die Indizierung von Dokumenten. Sie können Standard-Clients wie curl oder eine beliebige Programmiersprache verwenden, die HTTP-Anforderungen senden können. Um den Prozess der Interaktion damit weiter zu vereinfachen, verfügt OpenSearch Service über Clients für viele Programmiersprachen. Fortgeschrittene Benutzer können direkt fortfahren mit Streaming-Daten in Amazon OpenSearch Service laden.

Wir empfehlen Ihnen dringend, Amazon OpenSearch Ingestion für die Datenaufnahme zu verwenden. Dabei handelt es sich um einen vollständig verwalteten Datensammler, der in Service integriert ist. OpenSearch Weitere Informationen finden Sie unter Amazon OpenSearch Ingestion.

Eine Einführung in die Indizierung finden Sie in der Dokumentation. OpenSearch

Namensbeschränkungen bei Indizes

OpenSearch Für Dienstindizes gelten die folgenden Einschränkungen bei der Benennung:

  • Alle Buchstaben müssen Kleinbuchstaben sein.

  • Indexnamen dürfen nicht mit _ oder - beginnen.

  • Indexnamen dürfen keine Leerzeichen, Kommas, :, ", *, +, /, \, |, ?, #, > oder < enthalten.

Nehmen Sie keine vertraulichen Informationen in Index-, Typ- oder Dokument-ID-Namen auf. OpenSearch Der Dienst verwendet diese Namen in seinen Uniform Resource Identifiers (URIs). Server und Anwendungen protokollieren oft HTTP-Anforderungen. Dies kann dazu führen, dass unnötigerweise Daten preisgegeben werden, wenn URIs sensible Informationen enthalten.

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"

Auch wenn Sie keine Berechtigungen zum Anzeigen des zugehörigen JSON-Dokuments haben, könnten Sie von dieser gefälschten Protokollzeile ableiten, dass einer von Dr. Does Patienten mit der Telefonnummer 202–555–0100 im Jahr 2018 die Grippe hatte.

Wenn der OpenSearch Dienst eine echte oder vermeintliche IP-Adresse in einem Indexnamen erkennt (z. B.my-index-12.34.56.78.91), maskiert er die IP-Adresse. Ein Anruf bei _cat/indices ergibt die folgende Antwort:

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

Um unnötige Verwirrung zu vermeiden, sollten Sie es vermeiden, IP-Adressen in Indexnamen zu verwenden.

Reduzierung der Antwortgröße

Antworten der _index- und _bulk-APIs enthalten ziemlich viele Informationen. Diese Informationen können bei der Fehlerbehebung von Anfragen oder der Implementierung von Logik für Wiederholversuche nützlich sein. Sie benötigen allerdings beträchtliche Bandbreite. In diesem Beispiel führt die Indizierung eines 32-Byte-Dokuments zu einer 339-Byte-Antwort (einschließlich Kopfzeilen):

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

Antwort

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

Diese Antwortgröße mag minimal erscheinen, aber wenn Sie 1 000 000 Dokumente pro Tag indizieren – ungefähr 11,5 Dokumente pro Sekunde – ergeben 339 Byte pro Antwort 10,17 GB Download-Datenverkehr pro Monat.

Wenn Datenübertragungskosten ein Problem darstellen, verwenden Sie den filter_path Parameter, um die Größe der OpenSearch Serviceantwort zu reduzieren. Achten Sie jedoch darauf, dass Sie keine Felder herausfiltern, die Sie benötigen, um fehlgeschlagene Anfragen zu identifizieren oder erneut zu versuchen. Diese Felder variieren je nach Client. Der filter_path Parameter funktioniert für alle OpenSearch Service-REST-APIs, ist aber besonders nützlich bei APIs, die Sie häufig aufrufen, wie z. B. die _bulk APIs _index und:

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

Antwort

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

Anstatt Felder zu integrieren, können Sie Felder mit einem --Präfix ausschließen. filter_path unterstützt auch Platzhalter:

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

Antwort

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

Indexcodecs

Index-Codecs bestimmen, wie die in einem Index gespeicherten Felder komprimiert und auf der Festplatte gespeichert werden. Der Index-Codec wird durch die statische index.codec Einstellung gesteuert, die den Komprimierungsalgorithmus angibt. Diese Einstellung wirkt sich auf die Größe des Index-Shards und die Betriebsleistung aus.

Eine Liste der unterstützten Codecs und ihrer Leistungsmerkmale finden Sie in der Dokumentation unter Unterstützte Codecs. OpenSearch

Beachten Sie bei der Auswahl eines Index-Codec Folgendes: