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.
Migration von Amazon OpenSearch Service-Indizes mithilfe der Remote-Neuindizierung
Mit der Remote-Neuindizierung können Sie Indizes von einer Amazon OpenSearch Service-Domain in eine andere kopieren. Sie können Indizes aus beliebigen OpenSearch Service-Domains oder selbstverwalteten OpenSearch Clustern und Elasticsearch-Clustern migrieren.
Eine Remote-Domain und ein Index beziehen sich auf die Quelle der Daten oder die Domain und den Index, aus denen Sie Daten kopieren möchten. Eine lokale Domäne und ein lokaler Index beziehen sich auf das Ziel für die Daten oder auf die Domäne und den Index, in die Sie Daten kopieren möchten.
Für die Remote-Neuindizierung ist OpenSearch 1.0 oder höher oder Elasticsearch 6.7 oder höher für die lokale Domain erforderlich. Bei der Remote-Domain muss es sich um eine niedrigere Version oder dieselbe Hauptversion wie die lokale Domain handeln. Elasticsearch-Versionen gelten als ältere OpenSearch Versionen, was bedeutet, dass Sie Daten aus Elasticsearch-Domänen in Domains neu indizieren können. OpenSearch Innerhalb derselben Hauptversion kann es sich bei der Remote-Domain um eine beliebige Nebenversion handeln. Beispielsweise wird die Remote-Neuindizierung von Elasticsearch 7.10.x auf 7.9 unterstützt, aber OpenSearch 1.0 auf Elasticsearch 7.10.x wird nicht unterstützt.
Anmerkung
In dieser Dokumentation wird beschrieben, wie Daten zwischen Amazon OpenSearch Service-Domains neu indexiert werden. Die vollständige Dokumentation für diesen reindex
Vorgang, einschließlich detaillierter Schritte und unterstützter Optionen, finden Sie im Dokument Reindex
Themen
Voraussetzungen
Die Remote-Neuindexierung hat die folgenden Anforderungen:
-
Auf die Remotedomäne muss von der lokalen Domäne aus zugegriffen werden können. Für eine Remotedomäne, die sich in einer VPC befindet, muss die lokale Domäne Zugriff auf die VPC haben. Dieser Prozess variiert je nach Netzwerkkonfiguration, beinhaltet aber wahrscheinlich eine Verbindung zu einem VPN oder einem verwalteten Netzwerk oder die Verwendung der nativen VPC-Endpunktverbindung. Weitere Informationen hierzu finden Sie unter Starten Ihrer Amazon OpenSearch Service-Domains innerhalb einer VPC.
-
Die Anfrage muss wie jede andere REST-Anfrage von der Remotedomäne autorisiert werden. Wenn für die Remotedomäne eine differenzierte Zugriffskontrolle aktiviert ist, benötigen Sie die Berechtigung, eine Neuindizierung der Remotedomäne durchzuführen und den Index in der lokalen Domäne zu lesen. Weitere Sicherheitsüberlegungen finden Sie unter Feinkörnige Zugriffskontrolle in Amazon Service OpenSearch .
-
Wir empfehlen Ihnen, einen Index mit der gewünschten Einstellung für Ihre lokale Domain zu erstellen, bevor Sie mit der Neuindizierung beginnen.
-
Wenn Ihre Domain einen T2- oder T3-Instance-Typ für Ihre Datenknoten verwendet, können Sie die Remote-Neuindizierung nicht verwenden.
Daten zwischen OpenSearch Service-Internetdomänen neu indizieren
Das einfachste Szenario ist, dass sich der Remote-Index in derselben Domäne befindet AWS-Region wie Ihre lokale Domain mit einem öffentlich zugänglichen Endpunkt und Sie signierte IAM-Anmeldeinformationen haben.
Geben Sie in der Remotedomäne den Remote-Index an, von dem aus neu indexiert werden soll, und den lokalen Index, auf den neu indexiert werden soll:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Für eine Validierungsprüfung müssen Sie am Ende des Endpunkts der Remote-Domäne 443 hinzufügen.
Um zu überprüfen, ob der Index in die lokale Domäne kopiert wurde, senden Sie diese Anfrage an die lokale Domäne:
GET local_index/_search
Wenn sich der Remote-Index in einer anderen Region als Ihrer lokalen Domain befindet, geben Sie den Namen der Region ein, wie in dieser Beispielanforderung:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "region": "eu-west-1" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Bei isolierten Regionen wie AWS GovCloud (US) oder China ist der Endpunkt möglicherweise nicht zugänglich, da Ihr IAM-Benutzer in diesen Regionen nicht erkannt wird.
Wenn die Remote-Domain mit Standardauthentifizierung gesichert ist, geben Sie den Benutzernamen und das Passwort an:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "username": "username
", "password": "password
" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Daten zwischen OpenSearch Dienstdomänen neu indizieren, wenn sich die Fernbedienung in einer VPC befindet
Jede OpenSearch Service-Domain besteht aus einer eigenen internen Virtual Private Cloud (VPC) -Infrastruktur. Wenn Sie eine neue Domain in einer vorhandenen OpenSearch Service-VPC erstellen, wird für jeden Datenknoten in der VPC eine elastic network interface erstellt.
Da der Remote-Neuindizierungsvorgang von der OpenSearch Remote-Servicedomäne aus und somit innerhalb einer eigenen privaten VPC ausgeführt wird, benötigen Sie eine Möglichkeit, auf die VPC der lokalen Domäne zuzugreifen. Sie können dies entweder tun, indem Sie die integrierte VPC-Endpunktverbindungsfunktion verwenden, um eine Verbindung herzustellen AWS PrivateLink, oder indem Sie einen Proxy konfigurieren.
Wenn Ihre lokale Domain OpenSearch Version 1.0 oder höher verwendet, können Sie die Konsole oder die verwenden, AWS CLI um eine AWS PrivateLink Verbindung herzustellen. Eine AWS PrivateLink Verbindung ermöglicht es Ressourcen in der lokalen VPC, sich privat mit Ressourcen in der Remote-VPC innerhalb derselben zu verbinden. AWS-Region
Um eine VPC-Endpunktverbindung herzustellen, muss sich die Quelldomäne, die neu indexiert werden soll, in einer lokalen VPC befinden, und sowohl die Quell- als auch die Zieldomäne müssen sich in derselben befinden. AWS-Region
Sie können die Remote-Neuindizierung mit der Konsole verwenden, um Indizes zwischen zwei Domänen zu kopieren, die sich eine VPC-Endpunktverbindung teilen.
-
Navigieren Sie zur Amazon OpenSearch Service-Konsole unterhttps://console.aws.amazon.com/aos/
. -
Wählen Sie im linken Navigationsbereich die Option Domains aus.
-
Wählen Sie die lokale Domain oder die Domain aus, in die Sie Daten kopieren möchten. Dadurch wird die Detailseite der Domain geöffnet. Wählen Sie unter den allgemeinen Informationen den Tab Verbindungen aus und klicken Sie auf Anfrage.
-
Wählen Sie auf der Seite Verbindung anfordern die Option VPC-Endpunktverbindung für Ihren Verbindungsmodus aus und geben Sie weitere relevante Details ein. Zu diesen Details gehört die Remote-Domain, also die Domain, von der Sie Daten kopieren möchten. Wählen Sie dann Request (Anfordern) aus.
-
Navigieren Sie zur Detailseite der Remotedomäne, wählen Sie die Registerkarte Verbindungen und suchen Sie die Tabelle Eingehende Verbindungen. Aktivieren Sie das Kontrollkästchen neben dem Namen der Domain, von der Sie gerade die Verbindung erstellt haben (die lokale Domain). Wählen Sie Approve (Genehmigen) aus.
-
Gehen Sie zurück zur lokalen Domain, wählen Sie die Registerkarte Connections (Verbindungen) aus und suchen Sie nach der Tabelle Outbound connections (Ausgehende Verbindungen). Nachdem die Verbindung zwischen den beiden Domains aktiviert wurde, wird in der Spalte Endpoint (Endpunkt) in der Tabelle ein Endpunkt verfügbar. Kopieren Sie den Endpunkt.
-
Öffnen Sie das Dashboard für die lokale Domain und wählen Sie in der linken Navigation Dev Tools aus. Führen Sie die folgende GET-Anfrage aus, um zu bestätigen, dass der Remote-Domänenindex in Ihrer lokalen Domain noch nicht existiert.
remote-domain-index-name
Ersetzen Sie es durch Ihren eigenen Indexnamen.GET
remote-domain-index-name
/_search { "query":{ "match_all":{} } }In der Ausgabe sollte ein Fehler angezeigt werden, der darauf hinweist, dass der Index nicht gefunden wurde.
-
Erstellen Sie unter Ihrer GET-Anfrage eine POST-Anfrage und verwenden Sie Ihren Endpunkt wie folgt als Remote-Host.
POST _reindex { "source":{ "remote":{ "host":"
connection-endpoint
", "username":"username
", "password":"password
" }, "index":"remote-domain-index-name
" }, "dest":{ "index":"local-domain-index-name
" } }Führen Sie diese Anfrage aus.
-
Führen Sie die GET-Anfrage erneut aus. Die Ausgabe sollte nun anzeigen, dass der lokale Index existiert. Sie können diesen Index abfragen, um zu überprüfen, ob alle Daten aus dem Remote-Index OpenSearch kopiert wurden.
Sie können die Remote-Neuindizierung mit der API verwenden, um Indizes zwischen zwei Domänen zu kopieren, die sich eine VPC-Endpunktverbindung teilen.
-
Verwenden Sie den CreateOutboundConnectionAPI-Vorgang, um eine neue Verbindung von Ihrer lokalen Domain zu Ihrer Remote-Domain anzufordern.
POST https://es.
region
.amazonaws.com/2021-01-01/opensearch/cc/outboundConnection { "ConnectionAlias": "remote-reindex-example", "ConnectionMode": "VPC_ENDPOINT", "LocalDomainInfo": { "AWSDomainInformation": { "DomainName": "local-domain-name
", "OwnerId": "aws-account-id
", "Region": "region
" } }, "RemoteDomainInfo": { "AWSDomainInformation": { "DomainName": "remote-domain-name
", "OwnerId": "aws-account-id
", "Region": "region
" } } }Sie erhalten
ConnectionId
in der Antwort eine. Speichern Sie diese ID, um sie im nächsten Schritt zu verwenden. -
Verwenden Sie den AcceptInboundConnectionAPI-Vorgang mit Ihrer Verbindungs-ID, um die Anfrage von der lokalen Domain aus zu genehmigen.
PUT https://es.
region
.amazonaws.com/2021-01-01/opensearch/cc/inboundConnection/ConnectionId
/accept -
Verwenden Sie den DescribeOutboundConnectionsAPI-Vorgang, um den Endpunkt für Ihre Remote-Domain abzurufen.
{ "Connections": [ { "ConnectionAlias": "remote-reindex-example", "ConnectionId": "
connection-id
", "ConnectionMode": "VPC_ENDPOINT", "ConnectionProperties": { "Endpoint": "connection-endpoint
" }, ... } ] }Speichern Sie das
connection-endpoint
, um es in Schritt 5 zu verwenden. -
Führen Sie die folgende GET-Anfrage aus, um zu bestätigen, dass der Remote-Domänenindex in Ihrer lokalen Domain noch nicht existiert.
remote-domain-index-name
Ersetzen Sie es durch Ihren eigenen Indexnamen.GET
local-domain-endpoint
/remote-domain-index-name
/_search { "query":{ "match_all":{} } }In der Ausgabe sollte ein Fehler angezeigt werden, der darauf hinweist, dass der Index nicht gefunden wurde.
-
Erstellen Sie eine POST-Anfrage und verwenden Sie Ihren Endpunkt wie folgt als Remote-Host.
POST
local-domain-endpoint
/_reindex { "source":{ "remote":{ "host":"connection-endpoint
", "username":"username
", "password":"password
" }, "index":"remote-domain-index-name
" }, "dest":{ "index":"local-domain-index-name
" } }Führen Sie diese Anfrage aus.
-
Führen Sie die GET-Anfrage erneut aus. Die Ausgabe sollte nun anzeigen, dass der lokale Index existiert. Sie können diesen Index abfragen, um zu überprüfen, ob alle Daten aus dem Remote-Index OpenSearch kopiert wurden.
Wenn die Remotedomäne in einer VPC gehostet wird und Sie die VPC-Endpunktverbindungsfunktion nicht verwenden möchten, müssen Sie einen Proxy mit einem öffentlich zugänglichen Endpunkt konfigurieren. In diesem Fall benötigt OpenSearch Service einen öffentlichen Endpunkt, da er keinen Datenverkehr an Ihre VPC senden kann.
Wenn Sie eine Domain im VPC-Modus ausführen, werden ein oder mehrere Endpoints in Ihrer VPC platziert. Diese Endpunkte sind jedoch nur für den Datenverkehr vorgesehen, der in die Domäne innerhalb der VPC eingeht, und sie lassen keinen Datenverkehr in die VPC selbst zu.
Der Befehl remote reindex wird von der lokalen Domäne aus ausgeführt, sodass der ursprüngliche Datenverkehr diese Endpunkte nicht für den Zugriff auf die Remotedomäne verwenden kann. Aus diesem Grund ist in diesem Anwendungsfall ein Proxy erforderlich. Die Proxy-Domain muss über ein Zertifikat verfügen, das von einer öffentlichen Zertifizierungsstelle (CA) signiert wurde. Selbstsignierte oder private Zertifizierungsstellen-Zertifikate werden nicht unterstützt.
Indizieren Sie Daten zwischen OpenSearch Nicht-Servicedomänen neu
Wenn der Remote-Index außerhalb von OpenSearch Service gehostet wird, z. B. in einer selbstverwalteten EC2 Instanz, setzen Sie den external
Parameter auf: true
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "username": "username", "password": "password", "external": true }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
In diesem Fall wird nur die Standardauthentifizierung mit einem Benutzernamen und einem Passwort unterstützt. Die Remotedomäne muss über einen öffentlich zugänglichen Endpunkt (auch wenn sie sich in derselben VPC wie die lokale OpenSearch Dienstdomäne befindet) und über ein von einer öffentlichen Zertifizierungsstelle signiertes Zertifikat verfügen. Selbstsignierte oder private, von einer Zertifizierungsstelle signierte Zertifikate werden nicht unterstützt.
Große Datensätze neu indizieren
Die Remote-Neuindizierung sendet eine Scroll-Anfrage mit den folgenden Standardwerten an die Remotedomäne:
-
Suchkontext von 5 Minuten
-
Socket-Timeout von 30 Sekunden
-
Batch-Größe von 1.000
Wir empfehlen, diese Parameter an Ihre Daten anzupassen. Berücksichtigen Sie bei großen Dokumenten eine kleinere Batch-Größe und/oder ein längeres Timeout. Weitere Informationen finden Sie unter Scrollsuche
POST _reindex?pretty=true&scroll=10h&wait_for_completion=false { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "socket_timeout": "60m" }, "size": 100, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Wir empfehlen außerdem, dem lokalen Index die folgenden Einstellungen hinzuzufügen, um die Leistung zu verbessern:
PUT local_index { "settings": { "refresh_interval": -1, "number_of_replicas": 0 } }
Nachdem der Neuindizierungsprozess abgeschlossen ist, können Sie Ihre gewünschte Replikatanzahl festlegen und die Einstellung für das Aktualisierungsintervall entfernen.
Um nur eine Teilmenge der Dokumente, die Sie über eine Abfrage ausgewählt haben, neu zu indizieren, senden Sie diese Anfrage an die lokale Domäne:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443" }, "index": "remote_index
", "query": { "match": { "field_name": "text" } } }, "dest": { "index": "local_index
" } }
Die Remote-Neuindexierung unterstützt keine Segmentierung, sodass Sie nicht mehrere Scroll-Vorgänge für dieselbe Anforderung parallel ausführen können.
Remote-Neuindexierungseinstellungen
Zusätzlich zu den Standardoptionen für die Neuindizierung unterstützt OpenSearch Service die folgenden Optionen:
Optionen | Zulässige Werte | Beschreibung | Erforderlich |
---|---|---|---|
Extern | Boolesch | Wenn es sich bei der Remotedomäne nicht um eine OpenSearch Dienstdomäne handelt oder wenn Sie zwischen zwei VPC-Domänen neu indizieren, geben Sie als an. true |
Nein |
Region | String | Wenn sich die Remotedomäne in einer anderen Region befindet, geben Sie den Namen der Region an. | Nein |