OpenSearch Connessioni di servizio - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

OpenSearch Connessioni di servizio

Puoi usare AWS Glue for Spark per leggere e scrivere su tabelle in OpenSearch Service in AWS Glue 4.0 e versioni successive. È possibile definire cosa leggere dal OpenSearch servizio con una OpenSearch query. Ti connetti al OpenSearch servizio utilizzando le credenziali di autenticazione di base HTTP archiviate AWS Secrets Manager tramite una connessione AWS Glue. Questa funzionalità non è compatibile con OpenSearch Service serverless.

Per ulteriori informazioni su Amazon OpenSearch Service, consulta la documentazione OpenSearch di Amazon Service.

Configurazione delle connessioni OpenSearch al servizio

Per connetterti a OpenSearch Service da AWS Glue, dovrai creare e archiviare le tue credenziali OpenSearch Service in modo AWS Secrets Manager segreto, quindi associare quel segreto a una connessione OpenSearch Service AWS Glue.

Prerequisiti:

  • Identifica l'endpoint del dominio, AOSEndpoint e la porta, AOSport da cui desideri leggere o crea la risorsa seguendo le istruzioni nella documentazione di Amazon Service. OpenSearch Per ulteriori informazioni sulla creazione di un dominio, consulta Creazione e gestione di domini Amazon OpenSearch Service nella documentazione di Amazon OpenSearch Service.

    Un endpoint OpenSearch di dominio Amazon Service avrà il seguente modulo predefinito, https://search - DomainName -. unstructuredIdContent regione .es.amazonaws.com. Per ulteriori informazioni sull'identificazione dell'endpoint del tuo dominio, consulta Creazione e gestione dei domini Amazon OpenSearch Service nella documentazione di Amazon OpenSearch Service.

    Identifica o genera credenziali di autenticazione di base HTTP, aosUser e aosPassword per il tuo dominio.

Per configurare una connessione al OpenSearch servizio:
  1. InAWS Secrets Manager, crea un segreto utilizzando le tue credenziali OpenSearch di servizio. Per creare un segreto in Secrets Manager, segui il tutorial disponibile in Create an AWS Secrets Manager secret nella documentazione di AWS Secrets Manager. Dopo aver creato il segreto, prendi nota del nome, secretName, per il passaggio successivo.

    • Quando selezioni le coppie chiave/valore, crea una coppia per la chiave opensearch.net.http.auth.user con il valore aosUser.

    • Quando selezioni le coppie chiave/valore, crea una coppia per la chiave opensearch.net.http.auth.pass con il valore aosPassword.

  2. Nella console AWS Glue, crea una connessione seguendo i passaggi riportati in Aggiungere una AWS Glue connessione. Dopo aver creato la connessione, prendi nota del nome, connectionName, per l'uso futuro in AWS Glue.

    • Quando selezioni un tipo di connessione, seleziona OpenSearch Servizio.

    • Quando selezioni un endpoint di dominio, fornisci aosEndpoint.

    • Quando selezioni una porta, fornisci aosPort.

    • Quando selezioni il Segreto AWS, fornisci secretName.

Dopo aver creato una connessione OpenSearch al servizio AWS Glue, dovrai eseguire i seguenti passaggi prima di eseguire il lavoro AWS Glue:

  • Concedi al ruolo IAM associato al tuo processo AWS Glue il permesso di leggere secretName.

  • Nella configurazione del processo AWS Glue, fornisci connectionName come Connessione di rete aggiuntiva.

Lettura dagli indici OpenSearch dei servizi

Prerequisiti:

  • Un indice OpenSearch di servizio da cui desideri leggere, aosIndex.

  • Una connessione AWS Glue OpenSearch Service configurata per fornire informazioni di autenticazione e posizione di rete. Per acquisirla, completa i passaggi della procedura precedente, Per configurare una connessione al OpenSearch servizio. Sarà necessario il nome della connessione AWS Glue, connectionName.

Questo esempio legge un indice da Amazon OpenSearch Service. Dovrai fornire il parametro pushdown.

Per esempio:

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

Puoi anche fornire una stringa di query per filtrare i risultati restituiti nel tuo DynamicFrame. Sarà necessario configurare opensearch.query.

opensearch.query può accettare una stringa di parametri di query URL queryString o un oggetto di query DSL JSON queryObject Per ulteriori informazioni sulla query DSL, vedere Query DSL nella OpenSearch documentazione. Per fornire una stringa di parametri di query URL, anteponi ?q= alla query, come faresti con un URL completo. Per fornire un oggetto di query DSL, la stringa evita l'oggetto JSON prima di fornirlo.

Per esempio:

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

Per ulteriori informazioni su come creare una query al di fuori della relativa sintassi specifica, vedi Sintassi delle stringhe di query nella documentazione. OpenSearch

Quando si leggono da OpenSearch raccolte che contengono dati di tipo array, è necessario specificare quali campi sono di tipo array nella chiamata al metodo utilizzando il opensearch.read.field.as.array.include parametro.

Ad esempio, durante la lettura del documento seguente incontrerai i campi di array genre e 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 questo caso, dovrai includere i nomi dei campi in questione nella chiamata al metodo. Per esempio:

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

Se il campo dell'array è annidato all'interno della struttura del documento, fai riferimento a esso utilizzando la notazione a punti: "genre,actor,foo.bar.baz". Ciò specificherebbe un array baz incluso nel documento di origine tramite il documento incorporato foo contenente il documento incorporato bar.

Scrittura nelle tabelle OpenSearch dei servizi

Questo esempio scrive informazioni da un DynamicFrame to OpenSearch Service esistente DynamicFrame. Se l'indice contiene già informazioni, AWS Glue aggiungerà i dati dal tuo DynamicFrame. Dovrai fornire il parametro pushdown.

Prerequisiti:

  • Una tabella dei OpenSearch servizi su cui scrivere. Avrai bisogno delle informazioni di identificazione per la tabella. Lo chiameremo tableName.

  • Una connessione AWS Glue OpenSearch Service configurata per fornire informazioni di autenticazione e posizione di rete. Per acquisirla, completa i passaggi della procedura precedente, Per configurare una connessione al OpenSearch servizio. Sarà necessario il nome della connessione AWS Glue, connectionName.

Per esempio:

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

OpenSearch Riferimento all'opzione di connessione al servizio

  • connectionName: obbligatorio. Utilizzato per la lettura/scrittura. Il nome di una connessione al AWS Glue OpenSearch Service configurata per fornire informazioni di autenticazione e posizione di rete al metodo di connessione utilizzato.

  • opensearch.resource: obbligatorio. Utilizzato per la lettura/scrittura. Valori validi: nomi degli OpenSearch indici. Il nome dell'indice con cui interagirà il metodo di connessione.

  • opensearch.query: utilizzato per la lettura. Valori validi: stringa con escape JSON o, quando inizia con ?, la parte di ricerca di un URL. Una OpenSearch query che filtra ciò che deve essere recuperato durante la lettura. Per ulteriori informazioni sull'utilizzo di questo parametro, consulta la sezione precedente Lettura dagli indici OpenSearch dei servizi.

  • pushdown — Richiesto se. Utilizzato per la lettura. Valori validi: booleani. Indica a Spark di passare le query di lettura in OpenSearch modo che il database restituisca solo i documenti pertinenti.

  • opensearch.read.field.as.array.include: richiesto se si leggono dati di tipo array. Utilizzato per la lettura. Valori validi: elenchi di nomi di campi separati da virgole. Specifica i campi da leggere come matrici dai documenti. OpenSearch Per ulteriori informazioni sull'utilizzo di questo parametro, consulta la sezione precedente Lettura dagli indici OpenSearch dei servizi.