Conexiones SQL Azure - AWS Glue

Conexiones SQL Azure

Puede usar AWS Glue for Spark para leer y escribir en tablas en instancias administradas de Azure SQL en AWS Glue 4.0 y versiones posteriores. Puede definir qué leer de Azure SQL con una consulta SQL. Se conecta a Azure SQL con las credenciales de usuario y contraseña almacenadas en AWS Secrets Manager a través de una conexión de AWS Glue.

Para obtener más información sobre Azure SQL, consulte la documentación de Azure SQL.

Configuración de las conexiones de Azure SQL

Para conectarse a Azure SQL desde AWS Glue, tendrá que crear y almacenar las credenciales de Azure SQL en un AWS Secrets Manager secreto y, a continuación, asociar ese secreto a una conexión de AWS Glue de Azure SQL.

Para configurar una conexión a Azure SQL:
  1. En AWS Secrets Manager, cree un secreto con sus credenciales de Azure SQL. Para crear un secreto en Secrets Manager, siga el tutorial disponible en Crear un secreto AWS Secrets Manager en la documentación AWS Secrets Manager. Después de crear el secreto, conserve el nombre secreto, secretName, para el siguiente paso.

    • Al seleccionar pares clave/valor, genere un par para la clave user con el valor azuresqlUsername.

    • Al seleccionar pares clave/valor, genere un par para la clave password con el valor azuresqlPassword.

  2. En la consola de AWS Glue, genere una conexión mediante los pasos que se indican en Adición de una conexión de AWS Glue. Tras crear la conexión, conserve el nombre de la conexión, connectionName, para el uso futuro en AWS Glue.

    • Al seleccionar un tipo de conexión, seleccione Azure SQL.

    • Al proporcionar una URL de Azure SQL, proporcione una URL de punto de conexión de JDBC.

      La lista de URL debe tener el siguiente formato: jdbc:sqlserver://databaseServerName:databasePort;databaseName=azuresqlDBname;.

      AWS Glue requiere las siguientes propiedades de URL:

      • databaseName: una base de datos predeterminada en Azure SQL a la que conectarse.

      Para obtener más información sobre las direcciones URL de JDBC para instancias administradas de Azure SQL, consulte la documentación de Microsoft.

    • Al seleccionar un secreto AWS, proporcione un secretName.

Tras crear una conexión AWS Glue Azure SQL, tendrá que realizar los siguientes pasos antes de ejecutar el trabajo de AWS Glue:

  • Otorgue al rol de IAM asociado al permiso de su trabajo de AWS Glue para leer secretName.

  • En la configuración del trabajo de Glue AWS, proporcione connectionName como una conexión de red adicional.

Lectura de tablas de Azure SQL

Requisitos previos:

  • Una tabla de Azure SQL desde la cual le gustaría leer. Necesitará información de identificación para la tabla, databaseName y tableIdentifier.

    Una tabla de Azure SQL se identifica por su base de datos, esquema y nombre de tabla. Debe proporcionar el nombre de la base de datos y el nombre de la tabla al conectarse a Azure SQL. También debe proporcionar el esquema si no es el predeterminado, "público". La base de datos se proporciona a través de una propiedad URL en connectionName, y el nombre de la tabla y el esquema a través de dbtable.

  • Una conexión AWS Glue Azure SQL configurada para proporcionar información de autenticación. Complete los pasos del procedimiento anterior, Para configurar una conexión a Azure SQL para configurar su información de autenticación. Necesitará el nombre de la conexión de AWS Glue, connectionName.

Por ejemplo:

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

También puede proporcionar una consulta SELECT SQL para filtrar los resultados devueltos a su DynamicFrame. Deberá configurar query.

Por ejemplo:

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

Escribir en tablas de Azure SQL

En este ejemplo, se escribe la información de un DynamicFrame o dynamicFrame existente en Azure SQL. Si la tabla ya contiene información, AWS Glue añadirá los datos de su DynamicFrame.

Requisitos previos:

  • Una tabla de Azure SQL en la cual le gustaría escribir. Necesitará información de identificación para la tabla, databaseName y tableIdentifier.

    Una tabla de Azure SQL se identifica por su base de datos, esquema y nombre de tabla. Debe proporcionar el nombre de la base de datos y el nombre de la tabla al conectarse a Azure SQL. También debe proporcionar el esquema si no es el predeterminado, "público". La base de datos se proporciona a través de una propiedad URL en connectionName, y el nombre de la tabla y el esquema a través de dbtable.

  • Información de autenticación de Azure SQL. Complete los pasos del procedimiento anterior, Para configurar una conexión a Azure SQL para configurar su información de autenticación. Necesitará el nombre de la conexión de AWS Glue, connectionName.

Por ejemplo:

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

Referencia de opciones de conexión de Azure SQL

  • connectionName: obligatorio. Se utiliza para lectura/escritura. El nombre de una conexión de AWS Glue Azure SQL configurada para proporcionar información de autenticación al método de conexión.

  • databaseName: se utiliza para lectura/escritura. Valores válidos: nombres de bases de datos de Azure SQL. Nombre de la base de datos de Azure SQL a la que se va a conectar.

  • dbtable: necesario para escribir, obligatorio para leer a menos que se proporcione query. Se utiliza para lectura/escritura. Valores válidos: nombres de tablas de Azure SQL o combinaciones de nombres de tablas y esquemas separados por puntos. Se utiliza para especificar la tabla y el esquema que identifican la tabla a la que se va a conectar. El esquema predeterminado es “público”. Si la tabla está en un esquema que no es el predeterminado, proporciona esta información en la forma schemaName.tableName.

  • query: se utiliza para leer. Una consulta SELECT de Transact-SQL que defina lo que se debe recuperar al leer desde Azure SQL. Para obtener más información, consulte la documentación de Microsoft.