Connessioni Azure Cosmos DB - 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à.

Connessioni Azure Cosmos DB

È possibile utilizzare AWS Glue per Spark per leggere e scrivere su contanier esistenti in Azure Cosmos DB utilizzando l'API NoSQL in AWS Glue 4.0 e versioni successive. È possibile definire cosa leggere da Azure Cosmos DB con una query SQL. Connettiti ad Azure Cosmos DB usando una chiave di Azure Cosmos DB archiviata in AWS Secrets Manager tramite una connessione AWS Glue.

Per altre informazioni su Azure Cosmos DB per NoSQL, consulta la documentazione di Azure.

Configurazione delle connessioni Azure Cosmos DB

Per connetterti ad Azure Cosmos DB da AWS Glue, dovrai creare e archiviare la tua chiave Azure Cosmos DB in un segreto AWS Secrets Manager, quindi associare quel segreto a una connessione Azure Cosmos DB AWS Glue.

Prerequisiti:

  • In Azure, dovrai identificare o generare una chiave di Azure Cosmos DB da usare da AWS Glue, cosmosKey. Per altre informazioni, consulta Accesso sicuro ai dati in Azure Cosmos DB nella documentazione di Azure.

Per configurare una connessione ad Azure Cosmos DB:
  1. In AWS Secrets Manager, crea un segreto utilizzando la tua chiave Azure Cosmos DB. 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 spark.cosmos.accountKey con il valore cosmosKey.

  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.

    • In Tipo di connessione, seleziona Azure Cosmos DB.

    • Quando selezioni il Segreto AWS, fornisci secretName.

Dopo aver creato una connessione AWS Glue Azure Cosmos DB, è necessario eseguire le seguenti operazioni prima di eseguire il processo 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 da container Azure Cosmos DB per NoSQL

Prerequisiti:

  • Un container Azure Cosmos DB per NoSQL da cui desideri leggere. Avrai bisogno delle informazioni di identificazione per il container.

    Un container Azure Cosmos per NoSQL è identificato dal database e dal container. È necessario fornire i nomi del database, cosmosDBName, e del container, cosmosContainerName, quando ci si connette all'API di Azure Cosmos per NoSQL.

  • Una connessione ad Azure Cosmos DB AWS Glue configurata per fornire informazioni di autenticazione e posizione della rete. Per l'acquisizione, completa i passaggi della procedura precedente, Per configurare una connessione ad Azure Cosmos DB. Sarà necessario il nome della connessione AWS Glue, connectionName.

Ad esempio:

azurecosmos_read = glueContext.create_dynamic_frame.from_options( connection_type="azurecosmos", connection_options={ "connectionName": connectionName, "spark.cosmos.database": cosmosDBName, "spark.cosmos.container": cosmosContainerName, } )

È possibile anche fornire una query SELECT SQL per filtrare i risultati restituiti al DynamicFrame. Sarà necessario configurare query.

Ad esempio:

azurecosmos_read_query = glueContext.create_dynamic_frame.from_options( connection_type="azurecosmos", connection_options={ "connectionName": "connectionName", "spark.cosmos.database": cosmosDBName, "spark.cosmos.container": cosmosContainerName, "spark.cosmos.read.customQuery": "query" } )

Scrittura su container Azure Cosmos DB per NoSQL

Questo esempio scrive informazioni a partire da un DynamicFrame esistente, dynamicFrame ad Azure Cosmos DB. Se il contanier contiene già informazioni, AWS Glue aggiungerà i dati da DynamicFrame. Se le informazioni nel contanier hanno uno schema diverso da quello scritto, si verificheranno degli errori.

Prerequisiti:

  • Una tabella di Azure Cosmos DB su cui scrivere. Avrai bisogno delle informazioni di identificazione per il container. È necessario creare il container prima di chiamare il metodo di connessione.

    Un container Azure Cosmos per NoSQL è identificato dal database e dal container. È necessario fornire i nomi del database, cosmosDBName, e del container, cosmosContainerName, quando ci si connette all'API di Azure Cosmos per NoSQL.

  • Una connessione ad Azure Cosmos DB AWS Glue configurata per fornire informazioni di autenticazione e posizione della rete. Per l'acquisizione, completa i passaggi della procedura precedente, Per configurare una connessione ad Azure Cosmos DB. Sarà necessario il nome della connessione AWS Glue, connectionName.

Ad esempio:

azurecosmos_write = glueContext.write_dynamic_frame.from_options( frame=dynamicFrame, connection_type="azurecosmos", connection_options={ "connectionName": connectionName, "spark.cosmos.database": cosmosDBName, "spark.cosmos.container": cosmosContainerName )

Indicazioni di riferimento alle opzioni di connessione ad Azure Cosmos DB

  • connectionName: obbligatorio. Utilizzato per la lettura/scrittura. Il nome di una connessione ad Azure Cosmos DB AWS Glue configurata per fornire informazioni di autenticazione e posizione della rete al metodo di connessione.

  • spark.cosmos.database: obbligatorio. Utilizzato per la lettura/scrittura. Valori validi: nomi di database. Nome del database di Azure Cosmos DB per NoSQL.

  • spark.cosmos.container: obbligatorio. Utilizzato per la lettura/scrittura. Valori validi: nomi dei contanier. Nome del contanier di Azure Cosmos DB per NoSQL.

  • spark.cosmos.read.customQuery: utilizzato per la lettura. Valori validi: query SELECT SQL. Query personalizzata per selezionare i documenti da leggere.