View a markdown version of this page

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 tableaux dans OpenSearch Service dans AWS Glue 4.0 et versions ultérieures. Vous pouvez définir ce que vous souhaitez lire dans OpenSearch Service à l'aide d'une OpenSearch requête. Vous vous connectez au OpenSearch Service à l'aide des informations d'authentification de base HTTP stockées AWS Secrets Manager via une connexion AWS Glue. Cette fonctionnalité n'est pas compatible avec OpenSearch Service sans serveur.

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

Configuration des connexions OpenSearch au service

Pour vous connecter au OpenSearch Service depuis AWS Glue, vous devez créer et stocker vos informations d'identification 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 du domaine aosEndpoint et le port à partir desquels aosPort vous souhaitez lire, ou créez la ressource en suivant les instructions de la documentation Amazon OpenSearch Service. 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 la forme par défaut suivante, https://search- domainName -unstructuredIdContent. region.fr.amazonaws.com. Pour plus d'informations sur l'identification de votre point de terminaison de domaine, consultez la section Création et gestion de domaines Amazon OpenSearch Service dans la documentation Amazon OpenSearch Service.

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

Pour configurer une connexion au OpenSearch service, procédez comme suit :
  1. Dans AWS 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 AWS Secrets Manager secret de la AWS Secrets Manager documentation. Après avoir créé le secret, conservez le nom du secret secretName pour l'étape suivante.

    • Lorsque vous sélectionnez des Key/value paires, créez une paire pour la clé USERNAME avec la valeuraosUser.

    • Lorsque vous sélectionnez des Key/value paires, créez une paire pour la clé PASSWORD avec la valeuraosPassword.

  2. Dans la console AWS Glue, créez une connexion en suivant les étapes décrites dansAjouter une AWS Glue connexion. Après avoir créé la connexion, conservez le nom de la connexionconnectionName, 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, indiquezaosEndpoint.

    • Lorsque vous sélectionnez un port, indiquezaosPort.

    • Lorsque vous sélectionnez un AWS secret, indiquezsecretName.

Après avoir créé une connexion au OpenSearch service AWS Glue, vous devrez effectuer les étapes suivantes avant d'exécuter votre tâche AWS Glue :

  • Autorisez le rôle IAM associé à votre job AWS Glue à liresecretName.

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

Lecture des index OpenSearch de service

Prérequis :

  • Un indice de OpenSearch 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 l'obtenir, 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.querypeut prendre une chaîne de paramètres de requête URL queryString ou un objet queryObject JSON DSL de requête. Pour plus d'informations sur la requête DSL, consultez la section Query 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 OpenSearch service existant DynamicFrame. dynamicFrame 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 aimeriez écrire. Vous aurez besoin des informations d'identification de la table. Appelons çatableName.

  • Une connexion AWS Glue OpenSearch Service configurée pour fournir des informations d'authentification et de localisation réseau. Pour l'obtenir, 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 Read/Write. Le nom d'une connexion au OpenSearch service AWS Glue configurée pour fournir des informations d'authentification et de localisation réseau à votre méthode de connexion.

  • opensearch.resource — Obligatoire. Utilisé pour Read/Write. 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 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 des index OpenSearch de service.