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.
Connexions OpenSearch Service
Vous pouvez utiliser AWS Glue pour Spark pour lire et écrire dans des tables dans OpenSearch Service dans la version 4.0 et ultérieure d'AWS Glue. Vous pouvez définir ce qu'il faut lire depuis OpenSearch Service à l'aide d'une requête OpenSearch. Vous vous connectez à OpenSearch Service à l'aide des informations d'identification d'authentification HTTP de base stockées dans 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 Service
Pour vous connecter à OpenSearch Service à partir d'AWS Glue, vous devez créer et stocker vos informations d'identification OpenSearch Service dans un secret AWS Secrets Manager, puis associer ce secret à une connexion AWS Glue OpenSearch Service.
Prérequis :
-
Identifiez le point de terminaison du domaine,
aosEndpointet le port,aosPortà partir desquels 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 rubrique Création et gestion des domaines Amazon OpenSearch Service dans la documentation Amazon OpenSearch Service.Un point de terminaison du domaine Amazon OpenSearch Service aura le formulaire par défaut suivant, https://search-
domainName-unstructuredIdContent.region.es.amazonaws.com. Pour plus d'informations sur l'identification de votre point de terminaison de domaine, consultez la rubrique 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,
aosUseretaosPasswordpour votre domaine.
Pour configurer une connexion à OpenSearch Service :
Dans AWS Secrets Manager, créez un secret à l'aide de vos informations d'identification OpenSearch 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é
USERNAMEavec la valeuraosUser. -
Lorsque vous sélectionnez Paires clé/valeur, créez une paire pour la clé
PASSWORDavec la valeuraosPassword.
-
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 effectuer 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
connectionNameen tant que connexion réseau supplémentaire.
Lire à partir des index d'OpenSearch Service
Prérequis :
-
Un index d'OpenSearch Service à partir duquel vous souhaitez lire,
aosIndex. -
Une connexion AWS Glue OpenSearch Service configurée pour fournir des informations d'authentification et d’emplacement réseau. Pour cela, suivez les étapes de la procédure précédente, Pour configurer une connexion à OpenSearch Service. Vous aurez besoin du nom de la connexion AWS Glue,
connectionName.
Cet exemple lit un index à partir 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 à 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?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 Syntaxe de chaîne de requête
Lors de la lecture à partir de collections OpenSearch contenant des données de type tableau, vous devez spécifier quels champs sont de type tableau dans votre appel de méthode en utilisant le paramètre opensearch.read.field.as.array.include.
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.
Ecrire dans des tables d'OpenSearch Service
Cet exemple écrit des informations à partir d'un DynamicFrame existant, dynamicFrame, dans 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 OpenSearch Service dans 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 d’emplacement réseau. Pour cela, suivez les étapes de la procédure précédente, Pour configurer une connexion à 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", }, )
Référence des options de connexion d'OpenSearch 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 d’emplacement réseau à votre méthode de connexion. -
opensearch.resource— Obligatoire. Utilisé pour la lecture/l'écriture. Valeurs valides : noms d'index OpenSearch. 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 requête OpenSearch 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 Lire à partir des index d'OpenSearch Service. -
pushdown— Obligatoire si. Utilisé pour la lecture. Valeurs valides : booléen. Indique à 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. Indique les champs à lire sous forme de tableaux à partir des documents OpenSearch. Pour plus d'informations sur l'utilisation de ce paramètre, consultez la section précédente Lire à partir des index d'OpenSearch Service.