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 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 mit einer - OpenSearch Abfrage definieren, was aus dem OpenSearch Service gelesen werden soll. Sie stellen OpenSearch über HTTP-Basisauthentifizierungsanmeldeinformationen, die in gespeichert sindAWS Secrets Manager, über eine AWS -Glue-Verbindung eine Verbindung zum Service her. Diese Funktion ist nicht mit OpenSearch Service Serverless kompatibel.

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

Konfigurieren von OpenSearch Serviceverbindungen

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

Voraussetzungen:

  • Identifizieren Sie den Domain-Endpunkt, aosEndpoint und Port, aosPort, aus dem 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 Domäne finden Sie unter Erstellen und Verwalten von Amazon- OpenSearch Service-Domänen in der Amazon- OpenSearch Service-Dokumentation.

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

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

So konfigurieren Sie eine Verbindung zu OpenSearch Service:
  1. Erstellen Sie AWS Secrets Managerin ein Secret mit Ihren OpenSearch Service-Anmeldeinformationen. 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 opensearch.net.http.auth.user mit dem Wert aosUser.

    • Erstellen Sie bei der Auswahl von Schlüssel/Wert-Paaren ein Paar für den Schlüssel opensearch.net.http.auth.pass 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 bei der Auswahl eines Verbindungstyps die Option 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 erstellt haben, müssen Sie die folgenden Schritte ausfü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 für die Bereitstellung von Authentifizierungs- und Netzwerkstandortinformationen konfiguriert ist. Um dies zu erhalten, führen Sie die Schritte im vorherigen Verfahren aus, So konfigurieren Sie eine Verbindung mit OpenSearch Service . 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.

Beispielsweise:

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

Beispielsweise:

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 Abfragezeichenfolgensyntax in der - OpenSearch Dokumentation.

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

"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 den Service geschrieben. Wenn der Index bereits über Informationen verfügt, hängt AWS Glue Daten aus Ihrem an DynamicFrame. 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. Wir nennen sie tableName.

  • Eine AWS -Glue- OpenSearch Service-Verbindung, die für die Bereitstellung von Authentifizierungs- und Netzwerkstandortinformationen konfiguriert ist. Um dies zu erhalten, führen Sie die Schritte im vorherigen Verfahren aus, So konfigurieren Sie eine Verbindung zu OpenSearch Service . Sie benötigen den Namen der AWS-Glue-Verbindung, connectionName.

Beispielsweise:

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

OpenSearch Referenz zur Serviceverbindungsoption

  • 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 zu übergeben, OpenSearch 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.