OpenSearch-Service-Verbindungen - 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-Service-Verbindungen

Sie können AWS Glue für Spark zum Lesen und Schreiben in Tabellen in OpenSearch Service in AWS Glue 4.0 und späteren Versionen verwenden. Sie können definieren, was mit einer OpenSearch-Abfrage aus OpenSearch Service gelesen werden soll. Sie stellen eine Verbindung zu OpenSearch Service her, indem Sie die in AWS Secrets Manager gespeicherten HTTP-Standardauthentifizierungsdaten über eine AWS-Glue-Verbindung verwenden. Dieses Feature ist nicht mit OpenSearch Service Serverless kompatibel.

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

Konfigurieren von OpenSearch-Service-Verbindungen

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

Voraussetzungen:

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

    Ein Amazon-OpenSearch-Service-Domain-Endpunkt hat das folgende Standardformat: https://search-domainName-unstructuredIdContent.region.es.amazonaws.com. Weitere Informationen zum Erkennen Ihres Domain-Endpunkts finden Sie unter Erstellen und Verwalten von Amazon-OpenSearch-Service-Domains in der Dokumentation von Amazon OpenSearch Service.

    Identifizieren oder generieren Sie HTTP-Standardauthentifizierungsdaten (aosUser und aosPassword) für Ihre Domain.

Konfigurieren Sie eine Verbindung zu OpenSearch Service wie folgt:
  1. Erstellen Sie in AWS Secrets Manager ein Secret mit Ihren Anmeldeinformationen für OpenSearch Service. Um ein Geheimnis im Secrets Manager zu erstellen, befolgen Sie das Tutorial unter Erstellen eines AWS Secrets Manager-Secrets in der AWS Secrets Manager-Dokumentation. Behalten Sie nach dem Erstellen des Secrets den Namen des Secrets, secretName für den nächsten Schritt bei.

    • Erstellen Sie bei der Auswahl von Schlüssel/Wert-Paaren ein Paar für den Schlüssel USERNAME mit dem Wert aosUser.

    • Erstellen Sie bei der Auswahl von Schlüssel/Wert-Paaren ein Paar für den Schlüssel PASSWORD mit dem Wert aosPassword.

  2. Erstellen Sie in der AWS-Glue-Konsole eine Verbindung, indem Sie die Schritte in Hinzufügen einer AWS Glue-Verbindung befolgen. Behalten Sie nach dem Erstellen der Verbindung den Verbindungsnamen connectionName zur künftigen Verwendung in AWS Glue bei.

    • Wählen Sie als Verbindungstyp OpenSearch Service aus.

    • Geben Sie als Domain-Endpunkt aosEndpoint an.

    • Geben Sie als Port aosPort an.

    • Geben Sie als AWS-Secret die Option secretName an.

Nachdem Sie eine AWS-Glue-OpenSearch-Service-Verbindung hergestellt haben, müssen Sie die folgenden Schritte durchführen, bevor Sie Ihren AWS-Glue-Auftrag ausführen:

  • Erteilen Sie der mit Ihrem AWS Glue-Auftrag verknüpften IAM-Rolle die Berechtigung, secretName zu lesen.

  • Geben Sie in Ihrer AWS-Glue-Auftragskonfiguration connectionName als zusätzliche Netzwerkverbindung an.

Lesen aus OpenSearch-Service-Indizes

Voraussetzungen:

  • Ein OpenSearch-Service-Index, 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 erhalten, führen Sie die Schritte im vorherigen Verfahren zum Konfigurieren einer Verbindung zu OpenSearch Service aus. Sie benötigen den Namen der AWS-Glue-Verbindung, connectionName.

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

Zum 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 an Ihren DynamicFrame zurückgegebenen Ergebnisse zu filtern. Sie müssen opensearch.query konfigurieren.

opensearch.query kann eine URL-Abfrageparameterzeichenfolge queryString oder ein Abfrage-DSL-JSON-Objekt queryObject annehmen. Weitere Informationen zur Query-DSL finden Sie in der OpenSearch-Dokumentation unter Query DSL. 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.

Zum 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 unter Query string syntax in der OpenSearch-Dokumentation.

Beim Lesen aus OpenSearch-Sammlungen, die Daten vom Typ Array enthalten, müssen Sie in Ihrem Methodenaufruf mit dem Parameter opensearch.read.field.as.array.include angeben, welche Felder vom Typ Array 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. Zum 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.

Schreiben in OpenSearch-Service-Tabellen

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 aus Ihrem DynamicFrame an. Sie müssen den Parameter pushdown angeben.

Voraussetzungen:

  • Eine OpenSearch-Service-Tabelle, in die Sie schreiben möchten. Sie benötigen Identifikationsinformationen für die Tabelle. Wir nennen sie tableName.

  • Eine AWS-Glue-OpenSearch-Service-Verbindung, die so konfiguriert ist, dass sie Authentifizierungs- und Netzwerkstandortinformationen bereitstellt. Um dies zu erhalten, führen Sie die Schritte im vorherigen Verfahren zum Konfigurieren einer Verbindung zu OpenSearch Service aus. Sie benötigen den Namen der AWS-Glue-Verbindung, connectionName.

Zum Beispiel:

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

Referenz zur OpenSearch-Service-Verbindungsoption

  • connectionName – Erforderlich. Wird für Lesen/Schreiben verwendet. 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 für Lesen/Schreiben verwendet. 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 Lesen aus OpenSearch-Service-Indizes.

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

  • opensearch.read.field.as.array.include – Erforderlich, wenn Daten vom Typ Array gelesen werden. Wird 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 Lesen aus OpenSearch-Service-Indizes.