

# Conexiones Teradata Vantage
<a name="aws-glue-programming-etl-connect-teradata-home"></a>

Puede usar AWS Glue for Spark para leer y escribir en tablas de Taradata Vantage en AWS Glue 4.0 y versiones posteriores. Puede definir qué leer de Teradata con una consulta SQL. Puede conectarse a Teradata con las credenciales de nombre de usuario y contraseña almacenadas AWS Secrets Manager a través de una conexión AWS Glue.

Para obtener más información general sobre Teradata, consulte la [documentación de Teradata](https://docs.teradata.com/)

## Configurar las conexiones de Teradata
<a name="aws-glue-programming-etl-connect-teradata-configure"></a>

Para conectarse a Teradata desde AWS Glue, deberá crear y almacenar las credenciales de Teradata en un AWS Secrets Manager secreto y, a continuación, asociar ese secreto a una conexión de AWS Glue Teradata. Si su instancia de Teradata está en una Amazon VPC, también deberá proporcionar opciones de red a su conexión de AWS Glue Teradata.

Para conectarse a Teradata desde AWS Glue, es posible que necesite algunos requisitos previos:
+ Si accede a su entorno de Teradata a través de Amazon VPC, configure Amazon VPC para permitir que su trabajo de AWS Glue se comunique con el entorno de Teradata. No recomendamos acceder al entorno de Teradata a través de la Internet pública.

  En Amazon VPC, identifique o cree una **VPC**, una **subred** y un **grupo de seguridad** que AWS Glue utilizará al ejecutar el trabajo. Además, debe asegurarse de que Amazon VPC esté configurada para permitir el tráfico de red entre su instancia de Teradata y esta ubicación. Su trabajo deberá establecer una conexión TCP con su puerto de cliente de Teradata. Para obtener más información sobre los puertos de Teradata, consulte la [documentación de Teradata](https://docs.teradata.com/r/Teradata-VantageTM-on-AWS-DIY-Installation-and-Administration-Guide/April-2020/Before-Deploying-Vantage-on-AWS-DIY/Security-Groups-and-Ports).

  Según el diseño de la red, la conectividad segura de la VPC puede requerir cambios en Amazon VPC y otros servicios de red. Para obtener más información sobre la conectividad de AWS, consulte las [Opciones de conectividad de AWS](https://docs.teradata.com/r/Teradata-VantageCloud-Enterprise/Get-Started/Connecting-Your-Environment/AWS-Connectivity-Options) en la documentación de Teradata.

**Para configurar una conexión de AWS Glue Teradata:**

1. En la configuración de Teradata, identifique o cree un usuario y una contraseña con los que se conectará AWS Glue, *teradataUser* y *teradataPassword*. Para obtener más información, consulte la [Información general de seguridad de Vantage](https://docs.teradata.com/r/Configuring-Teradata-VantageTM-After-Installation/January-2021/Security-Overview/Vantage-Security-Overview) en la documentación de Teradata.

1. En AWS Secrets Manager, cree un secreto con sus credenciales de Teradata. 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 *teradataUsername*.
   + Al seleccionar **pares clave/valor**, genere un par para la clave `password` con el valor *teradataPassword*.

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 siguiente paso. 
   + Al seleccionar un **tipo de conexión**, seleccione Teradata.
   + Al proporcionar la **URL de JDBC**, proporcione la URL de su instancia. También puede codificar determinados parámetros de conexión separados por comas en la URL de JDBC. La URL debe tener el siguiente formato: `jdbc:teradata://teradataHostname/ParameterName=ParameterValue,ParameterName=ParameterValue`

     Los parámetros de URL admitidos incluyen:
     + `DATABASE`— nombre de la base de datos del host a la que se accede de forma predeterminada.
     + `DBS_PORT`— el puerto de la base de datos, que se utiliza cuando se ejecuta en un puerto no estándar.
   + Al seleccionar un **Tipo de credencial**, seleccione **AWS Secrets Manager** y, a continuación, establezca **AWS Secret** en *secretName*.

1. En las siguientes situaciones, es posible que necesite una configuración adicional:
   + 

     Para las instancias de Teradata alojadas en AWS en una Amazon VPC
     + Deberá proporcionar la información de conexión de Amazon VPC a la conexión AWS Glue que define sus credenciales de seguridad de Teradata. Al crear o actualizar la conexión, configure los **VPC**, **Subred** y los **grupos de seguridad** en **Opciones de red**.

Tras crear una conexión con AWS Glue Teradata, deberá realizar los siguientes pasos antes de llamar a su método de conexión.
+ 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**.

## Leer desde Teradata
<a name="aws-glue-programming-etl-connect-teradata-read"></a>

**Requisitos previos:**
+ Una tabla de Teradata desde la cual le gustaría leer. Necesitará el nombre de la tabla, *tableName.*
+ Una conexión AWS Glue Teradata configurada para proporcionar información de autenticación. Complete los pasos de *Para configurar una conexión a Teradata para* y configure su información de autenticación. Necesitará el nombre de la conexión de AWS Glue, *connectionName*. 

Por ejemplo: 

```
teradata_read_table = glueContext.create_dynamic_frame.from_options(
    connection_type="teradata",
    connection_options={
        "connectionName": "connectionName",
        "dbtable": "tableName"
    }
)
```

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

Por ejemplo:

```
teradata_read_query = glueContext.create_dynamic_frame.from_options(
    connection_type="teradata",
    connection_options={
        "connectionName": "connectionName",
        "query": "query"
    }
)
```

## Escribir en tablas de Teradata
<a name="aws-glue-programming-etl-connect-teradata-write"></a>

**Requisitos previos:** una tabla de Teradata en la que le gustaría escribir, *tableName*. **Debe crear la tabla antes de llamar al método de conexión.**

Por ejemplo:

```
teradata_write = glueContext.write_dynamic_frame.from_options(
    connection_type="teradata",
    connection_options={
        "connectionName": "connectionName", 
        "dbtable": "tableName"
    }
)
```

## Referencia de opciones de conexión de Teradata
<a name="aws-glue-programming-etl-connect-teradata-reference"></a>
+ `connectionName`: obligatorio. Se utiliza para lectura/escritura. El nombre de una conexión de AWS Glue Teradata configurada para proporcionar información de autenticación y red a su método de conexión.
+ `dbtable` — Necesario para escribir, obligatorio para leer a menos que se proporcione `query`. Se utiliza para lectura/escritura. El nombre de una tabla con la que interactuará su método de conexión.
+ `query`: se utiliza para leer. Una consulta SELECT SQL que define lo que se debe recuperar al leer desde Teradata.