

# Conexiones SQL Azure
<a name="aws-glue-programming-etl-connect-azuresql-home"></a>

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](https://azure.microsoft.com/en-us/products/azure-sql).

## Configuración de las conexiones de Azure SQL
<a name="aws-glue-programming-etl-connect-azuresql-configure"></a>

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](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) 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*.

1. 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](console-connections.md). 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](https://learn.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=azuresqldb-mi-current).
   + 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
<a name="aws-glue-programming-etl-connect-azuresql-read"></a>

**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
<a name="aws-glue-programming-etl-connect-azuresql-write"></a>

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
<a name="aws-glue-programming-etl-connect-azuresql-reference"></a>
+ `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](https://learn.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql?view=azuresqldb-mi-current).