View a markdown version of this page

OpenSearch Serviceverbindungen - AWS Glue

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 Serviceverbindungen

Sie können AWS Glue for Spark verwenden, um in OpenSearch Service in AWS Glue 4.0 und späteren Versionen aus Tabellen zu lesen und in Tabellen zu schreiben. Sie können mit einer OpenSearch Abfrage definieren, was aus OpenSearch Service gelesen werden soll. Sie stellen eine Verbindung zum OpenSearch Service her, indem Sie die HTTP-Anmeldeinformationen für die Standardauthentifizierung verwenden, AWS Secrets Manager die über eine AWS Glue-Verbindung gespeichert sind. Diese Funktion ist nicht mit OpenSearch Service Serverless kompatibel.

Weitere Informationen zu Amazon OpenSearch Service finden Sie in der Amazon OpenSearch Service-Dokumentation.

OpenSearch Serviceverbindungen konfigurieren

Um von AWS Glue aus eine Verbindung zum OpenSearch Service herzustellen, müssen Sie Ihre OpenSearch Service-Anmeldeinformationen in einem AWS Secrets Manager Secret erstellen und speichern und dieses Geheimnis dann einer OpenSearch Service AWS Glue-Verbindung zuordnen.

Voraussetzungen:

  • Identifizieren Sie den Domain-Endpunkt aosEndpoint und den Port, von dem aosPort Sie lesen möchten, oder erstellen Sie die Ressource, indem Sie den Anweisungen in der Amazon OpenSearch Service-Dokumentation folgen. Weitere Informationen zum Erstellen einer Domain finden Sie unter Erstellen und Verwalten von Amazon OpenSearch Service-Domains in der Amazon OpenSearch Service-Dokumentation.

    Ein Amazon OpenSearch Service-Domain-Endpunkt wird das folgende Standardformular haben: https://search- domainName -unstructuredIdContent. region.es.amazonaws.com. Weitere Informationen zur Identifizierung Ihres Domain-Endpunkts finden Sie in der Amazon Service-Dokumentation unter Erstellen und Verwalten von Amazon OpenSearch Service-Domains. OpenSearch

    Identifizieren oder generieren Sie Anmeldeinformationen für die HTTP-Standardauthentifizierung aosUser und aosPassword für Ihre Domain.

So konfigurieren Sie eine Verbindung zum OpenSearch Service:
  1. Erstellen Sie AWS Secrets Manager unter mithilfe Ihrer OpenSearch Service-Anmeldeinformationen ein Geheimnis. Um ein Geheimnis in Secrets Manager zu erstellen, folgen Sie der Anleitung unter Create an AWS Secrets Manager Secret in der AWS Secrets Manager Dokumentation. Nachdem Sie das Geheimnis erstellt haben, behalten Sie den Namen des Geheimnisses secretName für den nächsten Schritt bei.

    • Erstellen Sie bei der Auswahl von Key/value Paaren ein Paar für den Schlüssel USERNAME mit dem WertaosUser.

    • Erstellen Sie bei der Auswahl von Key/value Paaren ein Paar für den Schlüssel PASSWORD mit dem WertaosPassword.

  2. Erstellen Sie in der AWS Glue-Konsole eine Verbindung, indem Sie den Schritten unter folgenAWS Glue Verbindung hinzufügen. Nachdem Sie die Verbindung hergestellt haben, behalten Sie den Verbindungsnamen für die zukünftige Verwendung in AWS Glue bei. connectionName

    • Wählen Sie bei der Auswahl eines Verbindungstyps OpenSearch Service aus.

    • Geben Sie bei der Auswahl eines Domain-Endpunkts Folgendes anaosEndpoint.

    • Geben Sie bei der Auswahl eines Ports Folgendes anaosPort.

    • Geben Sie bei der Auswahl eines AWS Secrets Folgendes ansecretName.

Nachdem Sie eine AWS OpenSearch Glue-Service-Verbindung hergestellt haben, müssen Sie die folgenden Schritte ausführen, bevor Sie Ihren AWS Glue-Job ausführen können:

  • Erteilen Sie der IAM-Rolle, die Ihrem AWS Glue-Job zugeordnet ist, die secretName Leseberechtigung.

  • Geben connectionName Sie in Ihrer AWS Glue-Job-Konfiguration eine zusätzliche Netzwerkverbindung an.

Aus OpenSearch Serviceindizes lesen

Voraussetzungen:

  • Ein OpenSearch Serviceindex, aus dem Sie lesen möchten,aosIndex.

  • Eine AWS Glue OpenSearch Service-Verbindung, die so konfiguriert ist, dass sie Authentifizierungs- und Netzwerkstandortinformationen bereitstellt. Um dies zu ermitteln, führen Sie die Schritte des vorherigen Verfahrens aus, So konfigurieren Sie eine Verbindung zum OpenSearch Service. Sie benötigen den Namen der AWS Glue-Verbindung,connectionName.

In diesem Beispiel wird ein Index von Amazon OpenSearch Service gelesen. Sie müssen den Parameter pushdown angeben.

Beispiel:

opensearch_read = glueContext.create_dynamic_frame.from_options( connection_type="opensearch", connection_options={ "connectionName": "connectionName", "opensearch.resource": "aosIndex", "pushdown": "true", } )

Sie können auch eine Abfragezeichenfolge angeben, um die in Ihrem zurückgegebenen Ergebnisse zu filtern DynamicFrame. Sie müssen opensearch.query konfigurieren.

opensearch.querykann eine URL-Abfrageparameterzeichenfolge queryString oder ein DSL-JSON-Abfrageobjekt queryObject verwenden. Weitere Informationen zur DSL-Abfrage finden Sie in der Dokumentation unter DSL abfragen. OpenSearch Um eine URL-Abfrageparameterzeichenfolge bereitzustellen, stellen Sie ?q= Ihrer Abfrage wie bei einer vollqualifizierten URL voran. Um ein DSL-Abfrageobjekt bereitzustellen, versehen Sie das JSON-Objekt in Escape-Zeichen, bevor Sie es bereitstellen.

Beispiel:

queryObject = "{ "query": { "multi_match": { "query": "Sample", "fields": [ "sample" ] } } }" queryString = "?q=queryString" opensearch_read_query = glueContext.create_dynamic_frame.from_options( connection_type="opensearch", connection_options={ "connectionName": "connectionName", "opensearch.resource": "aosIndex", "opensearch.query": queryString, "pushdown": "true", } )

Weitere Informationen zum Erstellen einer Abfrage außerhalb ihrer spezifischen Syntax finden Sie in der Dokumentation unter Syntax für Abfragezeichenfolgen. OpenSearch

Wenn Sie aus OpenSearch Sammlungen lesen, die Daten vom Typ Array enthalten, müssen Sie in Ihrem Methodenaufruf mithilfe des opensearch.read.field.as.array.include Parameters angeben, welche Felder vom Array-Typ sind.

Wenn Sie beispielsweise das folgende Dokument lesen, stoßen Sie auf die Array-Felder genre und actor:

{ "_index": "movies", "_id": "2", "_version": 1, "_seq_no": 0, "_primary_term": 1, "found": true, "_source": { "director": "Frankenheimer, John", "genre": [ "Drama", "Mystery", "Thriller", "Crime" ], "year": 1962, "actor": [ "Lansbury, Angela", "Sinatra, Frank", "Leigh, Janet", "Harvey, Laurence", "Silva, Henry", "Frees, Paul", "Gregory, James", "Bissell, Whit", "McGiver, John", "Parrish, Leslie", "Edwards, James", "Flowers, Bess", "Dhiegh, Khigh", "Payne, Julie", "Kleeb, Helen", "Gray, Joe", "Nalder, Reggie", "Stevens, Bert", "Masters, Michael", "Lowell, Tom" ], "title": "The Manchurian Candidate" } }

In diesem Fall würden Sie diese Feldnamen in den Methodenaufruf aufnehmen. Beispiel:

"opensearch.read.field.as.array.include": "genre,actor"

Wenn ein Array-Feld innerhalb der Dokumentstruktur verschachtelt ist, verweisen Sie darauf in Punktnotation: "genre,actor,foo.bar.baz". Damit geben Sie das Array baz in Ihrem Quelldokument an, und zwar über das eingebettete Dokument foo, das das eingebettete Dokument bar enthält.

In OpenSearch Servicetabellen schreiben

In diesem Beispiel werden Informationen aus einem vorhandenen DynamicFrame dynamicFrame in OpenSearch Service geschrieben. Wenn der Index bereits Informationen enthält, hängt AWS Glue Daten von Ihnen DynamicFrame an. Sie müssen den Parameter pushdown angeben.

Voraussetzungen:

  • Eine OpenSearch Servicetabelle, in die Sie schreiben möchten. Sie benötigen Identifikationsinformationen für die Tabelle. Nennen wir dastableName.

  • Eine AWS OpenSearch Glue-Service-Verbindung, die so konfiguriert ist, dass sie Authentifizierungs- und Netzwerkstandortinformationen bereitstellt. Um dies zu ermitteln, führen Sie die Schritte des vorherigen Verfahrens aus, So konfigurieren Sie eine Verbindung zum OpenSearch Service. Sie benötigen den Namen der AWS Glue-Verbindung,connectionName.

Beispiel:

glueContext.write_dynamic_frame.from_options( frame=dynamicFrame, connection_type="opensearch", connection_options={ "connectionName": "connectionName", "opensearch.resource": "aosIndex", }, )

OpenSearch Referenz zu den Optionen für die Serviceverbindung

  • connectionName – Erforderlich. Wird verwendet für Read/Write. Der Name einer AWS Glue OpenSearch Service-Verbindung, die so konfiguriert ist, dass sie Authentifizierungs- und Netzwerkstandortinformationen für Ihre Verbindungsmethode bereitstellt.

  • opensearch.resource – Erforderlich. Wird verwendet für Read/Write. Gültige Werte: OpenSearch Indexnamen. Der Indexname, mit dem Ihre Verbindungsmethode interagieren wird.

  • opensearch.query – Wird zum Lesen verwendet. Gültige Werte: JSON, in der eine Zeichenfolge in Escape-Zeichen stehen, oder, wenn diese Zeichenfolge mit ? beginnt, der Suchteil einer URL. Eine OpenSearch Abfrage, die filtert, was beim Lesen abgerufen werden soll. Weitere Informationen zur Verwendung dieses Parameters finden Sie im vorherigen Abschnitt Aus OpenSearch Serviceindizes lesen.

  • pushdown – erforderlich. Zum Lesen verwendet. Zulässige Werte: Boolesch. Weist Spark an, Leseabfragen OpenSearch so weiterzuleiten, dass die Datenbank nur relevante Dokumente zurückgibt.

  • opensearch.read.field.as.array.include – Erforderlich, wenn Daten vom Typ Array gelesen werden. Zum Lesen verwendet. Gültige Werte: durch Kommas getrennte Listen von Feldnamen. Gibt Felder an, die als Arrays aus OpenSearch Dokumenten gelesen werden sollen. Weitere Informationen zur Verwendung dieses Parameters finden Sie im vorherigen Abschnitt Aus OpenSearch Serviceindizes lesen.