OpenSearch Connexions de service - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

OpenSearch Connexions de service

Vous pouvez utiliser AWS Glue for Spark pour lire et écrire dans des tables dans OpenSearch Service in AWS Glue 4.0 et versions ultérieures. Vous pouvez définir ce qu'il faut lire dans OpenSearch Service à l'aide d'une OpenSearch requête. Vous vous connectez au OpenSearch Service à l'aide des informations d'authentification HTTP de base stockées AWS Secrets Manager via une connexion AWS Glue. Cette fonctionnalité n'est pas compatible avec le OpenSearch Service serverless.

Pour plus d'informations sur Amazon OpenSearch Service, consultez la documentation Amazon OpenSearch Service.

Configuration des connexions OpenSearch de service

Pour vous connecter à OpenSearch Service from AWS Glue, vous devez créer et stocker vos identifiants de OpenSearch service dans un AWS Secrets Manager secret, puis associer ce secret à une connexion OpenSearch Service AWS Glue.

Prérequis :

  • Identifiez le point de terminaison de domaine, AOSEndpoint et port, AOSport que vous souhaitez lire, ou créez la ressource en suivant les instructions de la documentation Amazon Service. OpenSearch Pour plus d'informations sur la création d'un domaine, consultez la section Création et gestion OpenSearch de domaines Amazon Service dans la documentation Amazon OpenSearch Service.

    Un point de terminaison de domaine Amazon OpenSearch Service aura le formulaire par défaut suivant, https://search - DomainName -. unstructuredIdContent région .es.amazonaws.com. Pour plus d'informations sur l'identification du point de terminaison de votre domaine, consultez la section Création et gestion des domaines Amazon OpenSearch Service dans la documentation Amazon OpenSearch Service.

    Identifiez ou générez des informations d'identification d'authentification HTTP de base, aosUser et aosPassword pour votre domaine.

Pour configurer une connexion au OpenSearch service :
  1. DansAWS Secrets Manager, créez un secret à l'aide de vos informations d'identification OpenSearch de service. Pour créer un secret dans Secrets Manager, suivez le didacticiel disponible dans la section Créer un secret AWS Secrets Manager dans la documentation AWS Secrets Manager. Après avoir créé le secret, conservez le nom du secret, secretName, pour l'étape suivante.

    • Lorsque vous sélectionnez Paires clé/valeur, créez une paire pour la clé opensearch.net.http.auth.user avec la valeur aosUser.

    • Lorsque vous sélectionnez Paires clé/valeur, créez une paire pour la clé opensearch.net.http.auth.pass avec la valeur aosPassword.

  2. Dans la console AWS Glue, créez une connexion en suivant les étapes décrites dans Ajout d'une connexion AWS Glue. Après avoir créé la connexion, conservez le nom de la connexion, connectionName, pour une utilisation ultérieure dans AWS Glue.

    • Lorsque vous sélectionnez un type de connexion, sélectionnez OpenSearch Service.

    • Lorsque vous sélectionnez un point de terminaison de domaine, fournissez aosEndpoint.

    • Lorsque vous sélectionnez un port, fournissez aosPort.

    • Lorsque vous sélectionnez un Secret AWS, fournissez secretName.

Après avoir créé une connexion AWS Glue OpenSearch Service, vous devez suivre les étapes suivantes avant d'exécuter votre tâche AWS Glue :

  • Accordez au rôle IAM associé à votre tâche AWS Glue l'autorisation de lire secretName.

  • Dans la configuration de votre tâche AWS Glue, indiquez connectionName en tant que connexion réseau supplémentaire.

Lecture à partir des index OpenSearch de service

Prérequis :

  • Un index OpenSearch de service que vous aimeriez lire, AOSIndex.

  • Une connexion AWS Glue OpenSearch Service configurée pour fournir des informations d'authentification et de localisation réseau. Pour cela, suivez les étapes de la procédure précédente, Pour configurer une connexion au OpenSearch service. Vous aurez besoin du nom de la connexion AWS Glue, connectionName.

Cet exemple lit un index provenant d'Amazon OpenSearch Service. Vous devrez fournir le paramètre pushdown.

Par exemple :

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

Vous pouvez également fournir une chaîne de requête pour filtrer les résultats renvoyés dans votre DynamicFrame. Vous devrez configurer opensearch.query.

opensearch.query peut prendre une chaîne de paramètres de requête URL queryString ou un objet de requête DSL JSON queryObject. Pour plus d'informations sur la requête DSL, consultez la section Requête DSL dans la OpenSearch documentation. Pour fournir une chaîne de paramètres de requête URL, ajoutez ?q= à votre requête, comme vous le feriez pour une URL complète. Pour fournir un objet de requête DSL, échapper une chaîne objet JSON avant de le fournir.

Par exemple :

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", } )

Pour plus d'informations sur la façon de créer une requête en dehors de sa syntaxe spécifique, consultez la section Syntaxe des chaînes de requête dans la OpenSearch documentation.

Lorsque vous lisez des OpenSearch collections contenant des données de type tableau, vous devez spécifier quels champs sont de type tableau dans votre appel de méthode à l'aide du opensearch.read.field.as.array.include paramètre.

Par exemple, en lisant le document suivant, vous rencontrerez les champs genre et actor du tableau :

{ "_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" } }

Dans ce cas, vous devez inclure les noms de ces champs dans votre appel de méthode. Par exemple :

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

Si votre champ de tableau est imbriqué dans la structure de votre document, faites-y référence en utilisant la notation par points : "genre,actor,foo.bar.baz". Cela permet de spécifier un tableau baz inclus dans votre document source par le biais du document intégré foo contenant le document intégré bar.

Écrire dans les tables OpenSearch de service

Cet exemple écrit des informations à partir d'un DynamicFrame existant DynamicFrame vers OpenSearch Service. Si l'index contient déjà des informations, AWS Glue ajoutera les données de votre DynamicFrame. Vous devrez fournir le paramètre pushdown.

Prérequis :

  • Une table de OpenSearch service à laquelle vous souhaitez écrire. Vous aurez besoin des informations d'identification de la table. Appelons-la tableName.

  • Une connexion AWS Glue OpenSearch Service configurée pour fournir des informations d'authentification et de localisation réseau. Pour cela, suivez les étapes de la procédure précédente, Pour configurer une connexion au OpenSearch service. Vous aurez besoin du nom de la connexion AWS Glue, connectionName.

Par exemple :

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

OpenSearch Référence des options de connexion au service

  • connectionName — Obligatoire. Utilisé pour la lecture/l'écriture. Nom d'une connexion AWS Glue OpenSearch Service configurée pour fournir des informations d'authentification et de localisation réseau à votre méthode de connexion.

  • opensearch.resource — Obligatoire. Utilisé pour la lecture/l'écriture. Valeurs valides : noms d' OpenSearch index. Le nom de l'index avec lequel votre méthode de connexion va interagir.

  • opensearch.query : utilisé pour la lecture. Valeurs valides : chaîne JSON échappée ou, lorsque cette chaîne commence par ?, la partie de recherche d'une URL. Une OpenSearch requête qui filtre ce qui doit être récupéré lors de la lecture. Pour plus d'informations sur l'utilisation de ce paramètre, consultez la section précédente Lecture à partir des index OpenSearch de service.

  • pushdown — Obligatoire si. Utilisé pour la lecture. Valeurs valides : booléen. Demande à Spark de transmettre les requêtes de lecture OpenSearch afin que la base de données ne renvoie que les documents pertinents.

  • opensearch.read.field.as.array.include : obligatoire en cas de lecture de données de type tableau. Utilisé pour la lecture. Valeurs valides : listes de noms de champs séparés par des virgules. Spécifie les champs à lire sous forme de tableaux à partir de OpenSearch documents. Pour plus d'informations sur l'utilisation de ce paramètre, consultez la section précédente Lecture à partir des index OpenSearch de service.