Conexões do Azure SQL - AWS Glue

Conexões do Azure SQL

O AWS Glue para Spark pode ser usado para ler e gravar em tabelas em instâncias gerenciadas do Azure SQL no AWS Glue 4.0 e versões posteriores. Você pode definir o que ler no Azure SQL com uma consulta SQL. Conecte-se ao Azure SQL usando credenciais de usuário e senha armazenadas no AWS Secrets Manager via conexão do AWS Glue.

Para obter mais informações sobre o Azure SQL, consulte a Documentação do Azure SQL.

Configurar conexões do Azure SQL

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

Para configurar uma conexão com o Azure SQL:
  1. No AWS Secrets Manager, crie um segredo usando suas credenciais do Azure SQL. 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 user com o valor azuresqlUsername.

    • Ao selecionar Pares chave/valor, crie um par para a chave password com o valor azuresqlPassword.

  2. No console do AWS Glue, crie uma conexão seguindo as etapas em Adicionar uma conexão do AWS Glue. 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 SQL.

    • Ao fornecer o URL do Azure SQL, forneça um URL de endpoint do JDBC.

      Essa lista deve estar no seguinte formato: jdbc:sqlserver://databaseServerName:databasePort;databaseName=azuresqlDBname;.

      O AWS Glue requer as seguintes propriedades de URL:

      • databaseName: um banco de dados padrão no Azure SQL ao qual se conectar.

      Para obter mais informações sobre URLs de JDBC para instâncias gerenciadas Azure SQL, consulte a Documentação da Microsoft.

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

Depois de criar uma conexão AWS Glue Azure SQL, 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 tabelas SQL do Azure

Pré-requisitos:

  • Uma tabela do Azure SQL da qual você deseja ler. Você precisará de informações de identificação para a tabela, databaseName e tableIdentifier.

    Uma tabela do Azure SQL é identificada por seu banco de dados, esquema e nome da tabela. É necessário fornecer o nome do banco de dados e o nome da tabela ao se conectar ao Azure SQL. Você também deverá fornecer o esquema se ele não for o padrão, "public". O banco de dados é fornecido por meio de uma propriedade de URL em connectionName, esquema e nome da tabela via dbtable.

  • Uma conexão AWS Glue Azure SQL configurada para fornecer informações de autenticação. Conclua as etapas do procedimento anterior, Para configurar uma conexão com o Azure SQL para configurar suas informações de autenticação. Você precisará do nome da conexão AWS Glue, ConnectionName.

Por exemplo:

azuresql_read_table = glueContext.create_dynamic_frame.from_options( connection_type="azuresql", connection_options={ "connectionName": "connectionName", "dbtable": "tableIdentifier" } )

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

Por exemplo:

azuresql_read_query = glueContext.create_dynamic_frame.from_options( connection_type="azuresql", connection_options={ "connectionName": "connectionName", "query": "query" } )

Escrevendo em tabelas do Azure SQL

Este exemplo escreve informações de um DynamicFrame existente, dynamicFrame, no Azure SQL. Se a tabela já contiver informações, o AWS Glue anexará dados do seu DynamicFrame.

Pré-requisitos:

  • Uma tabela do Azure SQL em que você deseja escrever. Você precisará de informações de identificação para a tabela, databaseName e tableIdentifier.

    Uma tabela do Azure SQL é identificada por seu banco de dados, esquema e nome da tabela. É necessário fornecer o nome do banco de dados e o nome da tabela ao se conectar ao Azure SQL. Você também deverá fornecer o esquema se ele não for o padrão, "public". O banco de dados é fornecido por meio de uma propriedade de URL em connectionName, esquema e nome da tabela via dbtable.

  • Informações de autenticação do Azure SQL. Conclua as etapas do procedimento anterior, Para configurar uma conexão com o Azure SQL para configurar suas informações de autenticação. Você precisará do nome da conexão AWS Glue, ConnectionName.

Por exemplo:

azuresql_write = glueContext.write_dynamic_frame.from_options( connection_type="azuresql", connection_options={ "connectionName": "connectionName", "dbtable": "tableIdentifier" } )

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

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

  • databaseName: usado para leitura/gravação. Valores válidos: nomes de bancos de dados do Azure SQL. O nome do banco de dados do Azure SQL ao qual conectar.

  • dbtable: necessário para escrever, obrigatório para leitura, a menos que query seja fornecido. Usado para leitura/gravação. Valores válidos: nomes de tabelas do Azure SQL ou combinações de nomes de esquema/tabela separados por pontos. Usado para especificar a tabela e o esquema que identificam a tabela à qual conectar. O esquema padrão é "public". Se sua tabela estiver em um esquema não padrão, forneça essas informações no formulário schemaName.tableName.

  • query - Usado para leitura. Uma consulta SQL SELECT que define o que deve ser recuperado na leitura do Azure SQL. Para obter mais informações, consulte a Documentação da Microsoft.