Conexões do Azure Cosmos DB - AWS Glue

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conexões do Azure Cosmos DB

O AWS Glue para Spark pode ser usado para ler e escrever em contêineres existentes no Azure Cosmos DB usando a API NoSQL no AWS Glue 4.0 e versões posteriores. Você pode definir o que ler no Azure Cosmos DB com uma consulta SQL. Conecte-se ao Azure Cosmos DB usando uma chave do Azure Cosmos DB armazenada no AWS Secrets Manager via conexão do AWS Glue.

Para obter mais informações sobre o Azure Cosmos DB para NoSQL, consulte a Documentação do Azure.

Configurar conexões do Azure Cosmos DB

Para se conectar ao Azure Cosmos DB via AWS Glue, será necessário criar e armazenar sua chave do Azure Cosmos DB em um segredo do AWS Secrets Manager e, em seguida, associar esse segredo a uma conexão do Azure Cosmos DB AWS Glue.

Pré-requisitos:

  • No Azure, será necessário identificar ou gerar uma chave do Azure Cosmos DB para uso pelo AWS Glue, cosmosKey. Para obter mais informações, consulte Acesso seguro a dados no Azure Cosmos DB na documentação do Azure.

Para configurar uma conexão com o Azure Cosmos DB:
  1. No AWS Secrets Manager, crie um segredo usando sua chave do Azure Cosmos DB. Para criar um segredo no Secrets Manager, siga o tutorial disponível em Criar uma AWS Secrets Manager segredo na documentação do AWS Secrets Manager. Depois de criar o segredo, guarde o nome secreto, SecretName, para a próxima etapa.

    • Ao selecionar Pares chave/valor, crie um par para a chave spark.cosmos.accountKey com o valor cosmosKey.

  2. No console do AWS Glue, crie uma conexão seguindo as etapas em Adicionando uma AWS Glue conexão. Depois de criar a conexão, guarde o nome da conexão, connectionName, para uso futuro no AWS Glue.

    • Ao selecionar um Tipo de conexão, selecione Azure Cosmos DB.

    • Ao selecionar um Segredo da AWS, forneça o secretName.

Depois de criar uma conexão AWS Glue Azure Cosmos DB, siga estas etapas antes de executar seu trabalho do AWS Glue:

  • Conceda ao perfil do IAM associada ao seu trabalho do AWS Glue permissão para ler secretName.

  • Na configuração do trabalho do AWS Glue, forneça connectionName como uma conexão de rede adicional.

Ler de contêineres do Azure Cosmos DB para NoSQL

Pré-requisitos:

  • Um contêiner do Azure Cosmos DB para NoSQL do qual você gostaria de ler. Você precisará de informações de identificação para o contêiner.

    Um contêiner do Azure Cosmos para NoSQL é identificado por seu banco de dados e contêiner. É necessário fornecer os nomes do banco de dados, cosmosDBName e do contêiner, cosmosContainerName, ao se conectar à API do Azure Cosmos para NoSQL.

  • Uma conexão do AWS Glue Azure Cosmos DB configurada para fornecer informações de autenticação e localização da rede. Para fazer isso, conclua as etapas do procedimento anterior, Para configurar uma conexão com o Azure Cosmos DB. Você precisará do nome da conexão AWS Glue, ConnectionName.

Por exemplo:

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

Você também pode fornecer uma consulta SQL SELECT para filtrar os resultados retornados ao seu DynamicFrame. Você precisará configurar query.

Por exemplo:

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

Escrever em contêineres do Azure Cosmos DB para NoSQL

Este exemplo escreve informações de um DynamicFrame existente, dynamicFrame, no Azure Cosmos DB. Se o contêiner já contiver informações, o AWS Glue anexará dados do seu DynamicFrame. Se as informações no contêiner tiverem um esquema diferente das informações que você escrever, haverá erros.

Pré-requisitos:

  • Uma tabela do Azure Cosmos DB em que você deseja escrever. Você precisará de informações de identificação para o contêiner. É necessário criar o contêiner antes de chamar o método de conexão.

    Um contêiner do Azure Cosmos para NoSQL é identificado por seu banco de dados e contêiner. É necessário fornecer os nomes do banco de dados, cosmosDBName e do contêiner, cosmosContainerName, ao se conectar à API do Azure Cosmos para NoSQL.

  • Uma conexão do AWS Glue Azure Cosmos DB configurada para fornecer informações de autenticação e localização da rede. Para fazer isso, conclua as etapas do procedimento anterior, Para configurar uma conexão com o Azure Cosmos DB. Você precisará do nome da conexão AWS Glue, ConnectionName.

Por exemplo:

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 )

Referência de opções de conexão do Azure Cosmos DB

  • connectionName — Obrigatório. Usado para leitura/gravação. O nome de uma conexão AWS Glue Azure Cosmos DB configurada para fornecer informações de autenticação e localização da rede ao seu método de conexão.

  • spark.cosmos.database — Obrigatório. Usado para leitura/gravação. Valores válidos: nomes de bancos de dados. Nome do banco de dados do Azure Cosmos DB para NoSQL.

  • spark.cosmos.container — Obrigatório. Usado para leitura/gravação. Valores válidos: nomes de contêineres. Nome do contêiner do Azure Cosmos DB para NoSQL.

  • spark.cosmos.read.customQuery - Usado para leitura. Valores válidos: consultas SQL SELECT. Consulta personalizada para selecionar documentos a serem lidos.