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.
Umgang mit grundlegenden Änderungen am Index
OpenSearch kann Ihrem Index dynamisch neue Attribute hinzufügen. Nachdem die Zuweisungsvorlage allerdings für einen bestimmten Schlüssel festgelegt wurde, müssen Sie zusätzliche Maßnahmen ergreifen, um sie zu ändern. Wenn die Änderung eine erneute Verarbeitung aller Daten in der DynamoDB-Tabelle erfordert, müssen Sie außerdem Maßnahmen ergreifen, um einen neuen Export zu initiieren.
Anmerkung
Bei allen genannten Optionen können weiterhin Probleme auftreten, wenn in der DynamoDB-Tabelle Typkonflikte mit der von Ihnen angegebenen Zuweisungsvorlage auftreten. Stellen Sie sicher, dass Sie eine Warteschlange für unzustellbare Nachrichten (DLQ) aktiviert haben. Auf diese Weise können Sie leichter nachvollziehen, was an dem Datensatz falsch sein könnte, der zu einem Konflikt führt, wenn er in Ihren Index aufgenommen wird. OpenSearch
Themen
Funktionsweise
Im Folgenden finden Sie einen kurzen Überblick über die Maßnahmen für den Umgang mit grundlegenden Änderungen am Index. Sehen Sie sich die step-by-step Verfahren in den folgenden Abschnitten an.
-
Pipeline anhalten und starten: Mit dieser Option wird der Status der Pipeline zurückgesetzt, und die Pipeline wird mit einem neuen vollständigen Export neu gestartet. Sie ist nicht destruktiv, d. h. der Index oder Daten in DynamoDB werden nicht gelöscht. Wenn Sie vorher keinen neuen Index erstellen, werden möglicherweise viele Fehler aufgrund von Versionskonflikten ausgegeben, da beim Export versucht wird, ältere Dokumente als die aktuelle
_versionin den Index einzufügen. Diese Fehler können ignoriert werden. Ihnen werden keine Kosten für eine angehaltene Pipeline in Rechnung gestellt. -
Pipeline aktualisieren: Durch diese Option wird die Konfiguration in der Pipeline mit einem Blau/Grün-Ansatz aktualisiert, ohne dass der Status verloren geht. Wenn Sie wesentliche Änderungen an Ihrer Pipeline vornehmen (z. B. neue Routen, Indizes oder Schlüssel zu vorhandenen Indizes hinzufügen), müssen Sie möglicherweise die Pipeline vollständig zurücksetzen und den Index neu erstellen. Bei dieser Option wird kein vollständiger Export durchgeführt.
-
Index löschen und neu erstellen: Mit dieser Option werden Ihre Daten und Zuweisungseinstellungen aus Ihrem Index entfernt. Sie sollten dies tun, bevor Sie grundlegende Änderungen an Ihren Zuweisungen vornehmen. Dadurch werden alle Anwendungen, die auf den Index angewiesen sind, unterbrochen, bis der Index neu erstellt und synchronisiert wurde. Durch das Löschen des Index wird kein neuer Export initiiert. Sie sollten Ihren Index erst nach der Aktualisierung der Pipeline löschen. Andernfalls wird er möglicherweise neu erstellt, bevor Sie Ihre Einstellungen aktualisieren.
Löschen Sie den Index und setzen Sie die Pipeline zurück (Pipeline-zentrierte Option)
Dies ist oft die schnellste Option, wenn Sie sich noch in der Entwicklungsphase befinden. Sie löschen Ihren Index in OpenSearch Service und beenden und starten dann Ihre Pipeline, um einen neuen Export all Ihrer Daten zu starten. Dadurch wird sichergestellt, dass keine Konflikte zwischen Zuweisungsvorlagen und vorhandenen Indizes auftreten und dass Daten aus einer unvollständigen verarbeiteten Tabelle nicht verloren gehen.
-
Stoppen Sie die AWS-Managementkonsole Pipeline entweder über das oder mithilfe der StopPipelineAPI-Operation mit dem AWS CLI oder einem SDK.
-
Aktualisieren Sie die Pipeline-Konfiguration mit Ihren neuen Änderungen.
-
Löschen Sie Ihren Index im OpenSearch Service, entweder über einen
RESTAPI-Aufruf oder über Ihr OpenSearch Dashboard. -
Starten Sie die Pipeline entweder über die Konsole oder mithilfe der
StartPipelineAPI-Operation mit dem AWS CLI oder einem SDK.Anmerkung
Dadurch wird ein neuer vollständiger Export initiiert, für den zusätzliche Kosten anfallen.
-
Achten Sie auf unerwartete Probleme, da für die Erstellung des Index ein neuer Export generiert wird.
-
Vergewissern Sie sich im OpenSearch Service, dass der Index Ihren Erwartungen entspricht.
Nachdem der Export abgeschlossen ist und das Lesen aus dem Stream fortgesetzt wird, sind Ihre DynamoDB-Tabellendaten jetzt im Index verfügbar.
Löschen Sie den Index und setzen Sie die Pipeline zurück (Pipeline-zentrierte Option)
Diese Methode eignet sich gut, wenn Sie viele Iterationen am Indexdesign in OpenSearch Service durchführen müssen, bevor Sie die Pipeline von DynamoDB aus fortsetzen. Dies kann für die Entwicklung nützlich sein, wenn Sie anhand Ihrer Suchmuster eine sehr schnelle Iteration durchführen und vermeiden möchten, dass zwischen den einzelnen Iterationen neue Exporte durchgeführt werden.
-
Stoppen Sie die Pipeline entweder über das oder AWS-Managementkonsole, indem Sie den StopPipelineAPI-Vorgang mit dem AWS CLI oder einem SDK aufrufen.
-
Löschen Sie Ihren Index und erstellen Sie ihn OpenSearch mit der Mapping-Vorlage, die Sie verwenden möchten, neu. Sie können durch manuelles Hinzufügen einiger Beispieldaten überprüfen, ob Ihre Suchanfragen wie beabsichtigt funktionieren. Bei potenziellen Konflikten zwischen den Beispieldaten und den Daten aus DynamoDB löschen Sie die Beispieldaten unbedingt, bevor Sie mit dem nächsten Schritt fortfahren.
-
Wenn Sie eine Indexierungsvorlage in Ihrer Pipeline haben, entfernen Sie diese oder ersetzen Sie sie durch die Vorlage, die Sie bereits in OpenSearch Service erstellt haben. Stellen Sie sicher, dass der Name des Index mit dem Namen in der Pipeline übereinstimmt.
-
Starten Sie die Pipeline entweder über die Konsole oder indem Sie den
StartPipelineAPI-Vorgang mit dem AWS CLI oder einem SDK aufrufen.Anmerkung
Dadurch wird ein neuer vollständiger Export initiiert, für den zusätzliche Kosten anfallen.
-
Achten Sie auf unerwartete Probleme, da für die Erstellung des Index ein neuer Export generiert wird.
Nachdem der Export abgeschlossen ist und das Lesen aus dem Stream fortgesetzt wird, sind Ihre DynamoDB-Tabellendaten jetzt im Index verfügbar.
Erstellen und Speichern eines neuen Index (Online-Option)
Diese Methode eignet sich gut, wenn Sie Ihre Zuweisungsvorlage aktualisieren müssen, Ihren Index aber derzeit in der Produktion verwenden. Dadurch wird ein ganz neuer Index erstellt, in den Sie die Anwendung verschieben müssen, nachdem sie synchronisiert und validiert wurde.
Anmerkung
Dadurch wird ein weiterer Verbraucher im Stream erstellt. Dies kann ein Problem sein, wenn Sie auch andere Verbraucher wie AWS Lambda oder globale Tabellen haben. Möglicherweise müssen Sie die Aktualisierungen Ihrer vorhandenen Pipeline unterbrechen, um Kapazität zum Laden des neuen Index zu schaffen.
-
Erstellen Sie eine neue Pipeline mit neuen Einstellungen und einem anderen Indexnamen.
-
Überwachen Sie den neuen Index auf unerwartete Probleme.
-
Verschieben Sie die Anwendung in den neuen Index.
-
Halten Sie alte Pipeline an und löschen Sie sie, nachdem Sie überprüft haben, ob alles ordnungsgemäß funktioniert.
Bewährte Methoden zum Vermeiden und Debuggen von Typkonflikten
-
Verwenden Sie immer eine Warteschlange für unzustellbare Nachrichten (Dead-Letter Queue, DLQ), um das Debuggen zu erleichtern.
-
Verwenden Sie immer eine Indexvorlage mit Zuweisung und legen Sie
include_keysfest. OpenSearch Service ordnet neue Schlüssel zwar dynamisch zu, dies kann jedoch zu Problemen mit unerwartetem Verhalten (z. B. wenn erwartet wirdGeoPoint, dass etwas ein ist, das aber alsstringOder erstellt wirdobject) oder zu Fehlern (z. B. wenn einenumberKombination ausfloatAND-Wertenlongvorliegt) auftreten. -
Wenn der vorhandene Index in der Produktion weiterhin funktionieren soll, können Sie auch einen beliebigen der vorherigen Schritte zum Löschen von Indizes ersetzen, indem Sie den Index in der Pipeline-Konfigurationsdatei einfach umbenennen. Dadurch wird ein ganz neuer Index erstellt. Sie müssen Ihre Anwendung dann aktualisieren, sodass sie nach der Fertigstellung des neuen Index darauf verweist.
-
Wenn Sie ein Problem mit der Typkonvertierung haben, das Sie mit einem Prozessor beheben, können Sie es mit
UpdatePipelinetesten. Dazu müssen Sie die Warteschlangen für unzustellbare Nachrichtenbeenden und starten oder bearbeiten, damit alle zuvor übersprungenen fehlerhaften Dokumente korrigiert werden.