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.
OpenSearch kann Ihrem Index dynamisch neue Attribute hinzufügen. Nachdem Ihre Mapping-Vorlage jedoch für einen bestimmten Schlüssel festgelegt wurde, müssen Sie zusätzliche Maßnahmen ergreifen, um sie zu ändern. Wenn Ihre Änderung erfordert, dass Sie alle Daten in Ihrer DynamoDB-Tabelle erneut verarbeiten müssen, müssen Sie außerdem Maßnahmen ergreifen, um einen neuen Export zu initiieren.
Anmerkung
Bei all diesen Optionen können weiterhin Probleme auftreten, wenn Ihre DynamoDB-Tabelle Typkonflikte mit der von Ihnen angegebenen Zuordnungsvorlage aufweist. Stellen Sie sicher, dass Sie eine Warteschlange für unzustellbare Briefe (DLQ) aktiviert haben (auch in der Entwicklung). 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
Löschen Sie Ihren Index und setzen Sie die Pipeline zurück (Pipeline-zentrierte Option)
Erstellen Sie Ihren Index neu und setzen Sie die Pipeline zurück (indexzentrierte Option)
Erstellen Sie einen neuen Index und speichern Sie ihn (Online-Option)
Bewährte Methoden zum Vermeiden und Debuggen von Typkonflikten
Funktionsweise
Hier finden Sie einen kurzen Überblick über die Maßnahmen, die beim Umgang mit wichtigen Änderungen an Ihrem Index ergriffen wurden. Sehen Sie sich die step-by-step Verfahren in den folgenden Abschnitten an.
-
Pipeline beenden und starten: Mit dieser Option wird der Status der Pipeline zurückgesetzt, und die Pipeline wird mit einem neuen vollständigen Export neu gestartet. Es ist zerstörungsfrei, d. h. Ihr Index oder Daten in DynamoDB werden nicht gelöscht. Wenn Sie vorher keinen neuen Index erstellen, wird möglicherweise eine hohe Anzahl von Fehlern aufgrund von Versionskonflikten angezeigt, da beim Export versucht wird, ältere Dokumente als das aktuelle
_version
in den Index einzufügen. Sie können diese Fehler getrost ignorieren. Die Pipeline wird Ihnen nicht in Rechnung gestellt, solange sie gestoppt ist. -
Die Pipeline aktualisieren: Diese Option aktualisiert die Konfiguration in der Pipeline mit einem blauen/grünen Ansatz, 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 Ihren Index neu erstellen. Diese Option führt keinen vollständigen Export durch.
-
Den Index löschen und neu erstellen: Mit dieser Option werden Ihre Daten und Zuordnungseinstellungen aus Ihrem Index entfernt. Sie sollten dies tun, bevor Sie grundlegende Änderungen an Ihren Zuordnungen vornehmen. Dadurch werden alle Anwendungen, die auf den Index angewiesen sind, unterbrochen, bis der Index neu erstellt und synchronisiert ist. Durch das Löschen des Indexes wird kein neuer Export initiiert. Sie sollten Ihren Index erst löschen, nachdem Sie Ihre Pipeline aktualisiert haben. Andernfalls wird Ihr Index möglicherweise neu erstellt, bevor Sie Ihre Einstellungen aktualisieren.
Löschen Sie Ihren Index und setzen Sie die Pipeline zurück (Pipeline-zentrierte Option)
Diese Methode ist oft die schnellste Option, wenn Sie sich noch in der Entwicklung 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 es keine Konflikte zwischen Zuordnungsvorlagen und vorhandenen Indizes gibt und dass Daten aus einer unvollständigen verarbeiteten Tabelle nicht verloren gehen.
-
Stoppen Sie die AWS Management Console Pipeline entweder über das oder mithilfe der StopPipelineAPI-Operation mit dem AWS CLI oder einem SDK.
-
Aktualisieren Sie Ihre Pipeline-Konfiguration mit Ihren neuen Änderungen.
-
Löschen Sie Ihren Index in OpenSearch Service, entweder über einen
REST
API-Aufruf oder Ihr OpenSearch Dashboard. -
Starten Sie die Pipeline entweder über die Konsole oder mithilfe der
StartPipeline
API-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 ein neuer Export generiert wird, um den neuen Index zu erstellen.
-
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.
Erstellen Sie Ihren Index neu und setzen Sie die Pipeline zurück (indexzentrierte 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 wieder aufnehmen. Dies kann für die Entwicklung nützlich sein, wenn Sie sehr schnell anhand Ihrer Suchmuster iterieren und vermeiden möchten, dass zwischen den einzelnen Iterationen neue Exporte abgeschlossen werden.
-
Stoppen Sie die Pipeline entweder über das oder AWS Management Console, 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 einige Beispieldaten manuell einfügen, um zu überprüfen, ob Ihre Suchanfragen wie gewünscht funktionieren. Wenn Ihre Beispieldaten mit Daten aus DynamoDB in Konflikt geraten könnten, löschen Sie sie unbedingt, bevor Sie mit dem nächsten Schritt fortfahren.
-
Wenn Sie eine Indexierungsvorlage in Ihrer Pipeline haben, entfernen Sie sie oder ersetzen Sie sie durch die Vorlage, die Sie bereits in Service erstellt haben. OpenSearch Stellen Sie sicher, dass der Name Ihres Indexes mit dem Namen in der Pipeline übereinstimmt.
-
Starten Sie die Pipeline entweder über die Konsole oder indem Sie den
StartPipeline
API-Vorgang mit dem AWS CLI oder einem SDK aufrufen.Anmerkung
Dadurch wird ein neuer vollständiger Export eingeleitet, für den zusätzliche Kosten anfallen.
-
Achten Sie auf unerwartete Probleme, da ein neuer Export generiert wird, um den neuen Index zu erstellen.
Nachdem der Export abgeschlossen ist und das Lesen aus dem Stream fortgesetzt wird, sollten Ihre DynamoDB-Tabellendaten jetzt im Index verfügbar sein.
Erstellen Sie einen neuen Index und speichern Sie ihn (Online-Option)
Diese Methode eignet sich gut, wenn Sie Ihre Mapping-Vorlage aktualisieren müssen, Ihren Index aber derzeit in der Produktion verwenden. Dadurch wird ein brandneuer Index erstellt, auf den Sie Ihre Anwendung umstellen 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 Indexes zu schaffen.
-
Erstellen Sie eine neue Pipeline mit neuen Einstellungen und einem anderen Indexnamen.
-
Überwachen Sie den neuen Index auf unerwartete Probleme.
-
Tauschen Sie die Anwendung auf den neuen Index aus.
-
Stoppen und löschen Sie die alte Pipeline, nachdem Sie überprüft haben, ob alles ordnungsgemäß funktioniert.
Bewährte Methoden zum Vermeiden und Debuggen von Typkonflikten
-
Verwenden Sie immer eine Dead-Letter-Warteschlange (DLQ), um das Debuggen bei Typkonflikten zu vereinfachen.
-
Verwenden Sie immer eine Indexvorlage mit Mappings und Set.
include_keys
OpenSearch Service ordnet neue Schlüssel zwar dynamisch zu, dies kann jedoch zu Problemen mit unerwartetem Verhalten (z. B. zu erwarten, dass etwas ein istGeoPoint
, das aber als Oder erstellt wirdobject
)string
oder zu Fehlern (z. B. wenn ein Wert aus einernumber
Mischung ausfloat
UND-Werten besteht) auftreten.long
-
Wenn Sie Ihren vorhandenen Index in der Produktion am Laufen halten müssen, können Sie auch jeden der vorherigen Schritte zum Löschen von Indizes ersetzen, indem Sie Ihren Index einfach in Ihrer Pipeline-Konfigurationsdatei umbenennen. Dadurch wird ein brandneuer Index erstellt. Ihre Anwendung muss dann aktualisiert werden, sodass sie nach Fertigstellung auf den neuen Index verweist.
-
Wenn Sie ein Problem mit der Typkonvertierung haben, das Sie mit einem Prozessor beheben, können Sie es mit testen
UpdatePipeline
. Dazu müssen Sie die Warteschlangen für unzustellbare Briefe beenden und starten oder bearbeiten,um alle zuvor übersprungenen fehlerhaften Dokumente zu korrigieren.