

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Conector de Python de Amazon Redshift
<a name="python-redshift-driver"></a>

Mediante el conector de Amazon Redshift para Python, puede integrar el trabajo al [AWS SDK para Python (Boto3)](https://github.com/boto/boto3), y también pandas y Python numérico (NumPy). Para obtener más información sobre pandas, consulte el [repositorio de GitHub de pandas](https://github.com/pandas-dev/pandas). Para obtener más información sobre NumPy, consulte el [repositorio de GitHub de NumPy](https://github.com/numpy/numpy). 

El conector Python de Amazon Redshift proporciona una solución de código abierto. Puede examinar el código fuente, solicitar mejoras, informar problemas y realizar aportaciones. 

Para utilizar el conector Python de Amazon Redshift, asegúrese de tener Python versión 3.6 o posterior. Para obtener más información, consulte el [acuerdo de licencia del controlador Python de Amazon Redshift](https://github.com/aws/amazon-redshift-python-driver/blob/master/LICENSE). 

El conector Python de Amazon Redshift proporciona lo siguiente:
+ AWS Identity and Access ManagementAuthentication de (IAM). Para obtener más información, consulte [Administración de identidades y accesos en Amazon Redshift](redshift-iam-authentication-access-control.md).
+ Autenticación de proveedores de identidad mediante acceso a API federado. El acceso a la API federado admite proveedores de identidad corporativa, como los siguientes:
  + Azure AD. Para obtener más información, consulte la entrada del blog de Big Data de AWS [Federate Amazon Redshift access with Microsoft Azure AD single sign-on](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-microsoft-azure-ad-single-sign-on/).
  + Active Directory Federation Services. Para obtener más información, consulte la entrada del blog de Big Data de AWS [Federate access to your Amazon Redshift cluster with Active Directory Federation Services (AD FS): Part 1](https://aws.amazon.com/blogs/big-data/federate-access-to-your-amazon-redshift-cluster-with-active-directory-federation-services-ad-fs-part-1/). 
  + Okta. Para obtener más información, consulte la entrada del blog de Big Data de AWS [Federate Amazon Redshift access with Okta as an identity provider](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-okta-as-an-identity-provider/).
  + PingFederate. Para obtener más información, consulte el [sitio de PingFederate](https://www.pingidentity.com/en/software/pingfederate.html).
  + JumpCloud. Para obtener más información, cpnsulte el [sitio de JumpCloud](https://jumpcloud.com/).
+ Tipos de datos de Amazon Redshift

El conector Python de Amazon Redshift implementa la especificación 2.0 de la API de base de datos de Python. Para obtener más información, consulte [PEP 249—Python Database API Specification v2.0](https://www.python.org/dev/peps/pep-0249/) en el sitio web de Python.

**Topics**
+ [Instalación del conector Python de Amazon Redshift](python-driver-install.md)
+ [Opciones de configuración para el conector Python de Amazon Redshift](python-configuration-options.md)
+ [Importación del conector Python](python-start-import.md)
+ [Integración del conector Python a NumPy](python-connect-integrate-numpy.md)
+ [Integración del conector Python a pandas](python-connect-integrate-pandas.md)
+ [Uso de complementos de proveedores de identidades](python-connect-identity-provider-plugins.md)
+ [Ejemplos de uso del conector Python de Amazon Redshift](python-connect-examples.md)
+ [Referencia de la API para el conector Python de Amazon Redshift](python-api-reference.md)

# Instalación del conector Python de Amazon Redshift
<a name="python-driver-install"></a>

Puede utilizar cualquiera de los siguientes métodos para instalar el conector Python de Amazon Redshift:
+ Índice de paquetes de Python (PyPI)
+ Conda
+ Clonación del repositorio de GitHub

## Instalación del conector Python desde PyPI
<a name="python-pip-install-pypi"></a>

Para instalar el conector Python desde el Índice de paquetes de Python (PyPI), puede utilizar pip. Para ello, ejecute el siguiente comando.

```
>>> pip install redshift_connector
```

Puede instalar el conector en un entorno virtual. Para ello, ejecute el siguiente comando.

```
>>> pip install redshift_connector
```

Opcionalmente, puede instalar pandas y NumPy con el conector.

```
>>> pip install 'redshift_connector[full]'
```

Para obtener más información sobre pip, consulte el [sitio de pip](https://pip.pypa.io/en/stable/).

## Instalación del conector Python desde Conda
<a name="python-pip-install-from-conda"></a>

Puede instalar el conector Python desde Anaconda.org.

```
>>>conda install -c conda-forge redshift_connector
```

## Instalación del conector Python mediante la clonación del repositorio de GitHub desde AWS
<a name="python-pip-install-from-source"></a>

Para instalar el conector Python desde el origen, clone el repositorio GitHub desde AWS. Después de instalar Python y virtualenv, configure su entorno e instale las dependencias necesarias mediante la ejecución de los siguientes comandos.

```
$ git clone https://github.com/aws/amazon-redshift-python-driver.git
$ cd amazon-redshift-python-driver
$ virtualenv venv
$ . venv/bin/activate
$ python -m pip install -r requirements.txt
$ python -m pip install -e .
$ python -m pip install redshift_connector
```

# Opciones de configuración para el conector Python de Amazon Redshift
<a name="python-configuration-options"></a>

A continuación, puede encontrar descripciones relativas a las opciones que puede especificar para el conector Python de Amazon Redshift. Las opciones que se indican a continuación se aplican a la última versión disponible del conector, a menos que se especifique lo contrario.

## access\$1key\$1id
<a name="python-access-key-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La clave de acceso del rol o usuario de IAM configurado para la autenticación de la base de datos de IAM. 

Este parámetro es opcional.

## allow\$1db\$1user\$1override
<a name="python-allow-db-user-override-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

True  
Especifica que el conector utiliza el valor `DbUser` de la aserción del lenguaje de marcado de aserción de seguridad (SAML).

False  
Especifica que se utiliza el valor del parámetro de conexión `DbUser`.

Este parámetro es opcional.

## app\$1name
<a name="python-app-name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la aplicación de proveedor de identidades (IdP) utilizado para la autenticación. 

Este parámetro es opcional.

## application\$1name
<a name="python-application_name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la aplicación del cliente que se va a pasar a Amazon Redshift con fines de auditoría. El nombre de la aplicación que proporcione aparece en la columna “application\$1name” de la tabla [SYS\$1CONNECTION\$1LOG](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html). Esto ayuda a rastrear y solucionar problemas de orígenes de conexión al depurar problemas.

Este parámetro es opcional.

## auth\$1profile
<a name="python-auth-profile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de un perfil de autenticación de Amazon Redshift que tiene propiedades de conexión como JSON. Para obtener más información sobre cómo asignar nombres a los parámetros de conexión, consulte la clase `RedshiftProperty`. La clase `RedshiftProperty` almacena los parámetros de conexión proporcionados por el usuario final y, si procede, generados durante el proceso de autenticación de IAM (por ejemplo, credenciales de IAM temporales). Para obtener más información, consulte la [clase RedshiftProperty](https://github.com/aws/amazon-redshift-python-driver/blob/master/redshift_connector/redshift_property.py#L9). 

Este parámetro es opcional.

## auto\$1create
<a name="python-auto-create-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Un valor que indica si se va a crear el usuario si el usuario no existe. 

Este parámetro es opcional.

## client\$1id
<a name="python-client-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de cliente del IdP de Azure. 

Este parámetro es opcional.

## client\$1secret
<a name="python-client-secret-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El secreto del cliente del IdP de Azure. 

Este parámetro es opcional.

## cluster\$1identifier
<a name="python-cluster-identifier-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El identificador de clúster del clúster de Amazon Redshift. 

Este parámetro es opcional.

## credentials\$1provider
<a name="python-credential-provider-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El IdP que se utiliza para la autenticación en Amazon Redshift. Los siguientes valores son válidos: 
+ `AdfsCredentialsProvider`
+ `AzureCredentialsProvider`
+ `BrowserAzureCredentialsProvider`
+ `BrowserAzureOAuth2CredentialsProvider`
+ `BrowserIdcAuthPlugin`: complemento de autorización que utiliza AWS IAM Identity Center.
+ `BrowserSamlCredentialsProvider`
+ `IdpTokenAuthPlugin`: complemento de autorización que acepta un token de AWS IAM Identity Center o un token de identidad basado en JSON (JWT) de OpenID Connect (OIDC) de cualquier proveedor de identidades web vinculado a AWS IAM Identity Center.
+ `PingCredentialsProvider`
+ `OktaCredentialsProvider`

Este parámetro es opcional.

## database
<a name="python-database-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la base de datos a la que desea conectarse. 

Este parámetro es obligatorio.

## database\$1metadata\$1current\$1db\$1only
<a name="python-database-metadata-current-db-only-option"></a>
+ **Valor predeterminado:** true
+ **Tipos de datos:** booleano

Un valor que indica si una aplicación admite catálogos de recursos compartidos de datos de varias bases de datos. El valor predeterminado de True indica que la aplicación no admite catálogos de recursos compartidos de datos de varias bases de datos para compatibilidad con versiones anteriores. 

Este parámetro es opcional.

## db\$1groups
<a name="python-db-groups-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Una lista separada por comas de los nombres de grupos de bases de datos existentes que el usuario indicó al unir el DbUser para la sesión actual. 

Este parámetro es opcional.

## db\$1user
<a name="python-db-user-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de usuario que se utilizará con Amazon Redshift. 

Este parámetro es opcional.

## endpoint\$1url
<a name="python-endpoint-url-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La URL del punto de conexión de Amazon Redshift. Esta opción es solo para uso interno de AWS. 

Este parámetro es opcional.

## group\$1federation
<a name="python-group-federation-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si se utilizarán grupos de IDP de Amazon Redshift.

Este parámetro es opcional.

**true**  
Utilice grupos de proveedores de identidad (IDP) de Amazon Redshift.

**false**  
Utilice la API STS y GetClusterCredentials para la federación de usuarios y especifique **db\$1groups** para la conexión.

## host
<a name="python-host-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del host del clúster de Amazon Redshift. 

Este parámetro es opcional.

## iam
<a name="python-iam-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

La autenticación de IAM está habilitada. 

Este parámetro es obligatorio.

## iam\$1disable\$1cache
<a name="python-iam-disable-cache-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si las credenciales de IAM se almacenan en caché. De manera predeterminada, las credenciales de IAM se almacenan en caché. De este modo, se mejora el rendimiento en los casos en que las solicitudes a la API Gateway tienen limitación controlada. 

Este parámetro es opcional.

## idc\$1client\$1display\$1name
<a name="python-idc_client_display_name-option"></a>
+ **Valor predeterminado**: conector Python de Amazon Redshift
+ **Tipo de datos:** cadena

El nombre para mostrar que se utilizará para el cliente que usa BrowserIdcAuthPlugin.

Este parámetro es opcional.

## idc\$1region
<a name="python-idc_region"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Es la región de AWS en la que se encuentra la instancia de AWS IAM Identity Center.

Este parámetro es necesario solo cuando en la autenticación se utiliza `BrowserIdcAuthPlugin` en la opción de configuración credentials\$1provider.

## idp\$1partition
<a name="python-idp_partition-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Especifica la partición de la nube en la que está configurado el proveedor de identidades (IdP). Esto determina a qué punto de conexión de autenticación de IdP se conecta el controlador.

Si este parámetro se deja en blanco, el controlador utilizará de forma predeterminada la partición comercial. Los valores posibles son los que se indican a continuación.
+  `us-gov`: utilice este valor si su IdP está configurado en Azure Government. Por ejemplo, Azure AD Government usa el punto de conexión `login.microsoftonline.us`.
+  `cn`: utilice este valor si su IdP está configurado en la partición en la nube de China. Por ejemplo, Azure AD China usa el punto de conexión `login.chinacloudapi.cn`. 

Este parámetro es opcional.

## idpPort
<a name="python-idp-port-option"></a>
+ **Valor predeterminado** – 7890
+ **Tipo de datos:** entero

El puerto de escucha al que el IdP envía la aserción SAML. 

Este parámetro es obligatorio.

## Idp\$1response\$1timeout
<a name="python-idp-response-timeout-option"></a>
+ **Valor predeterminado** – 120
+ **Tipo de datos:** entero

Tiempo de espera para recuperar la aserción SAML del IdP. 

Este parámetro es obligatorio.

## idp\$1tenant
<a name="python-idp-tenant-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El inquilino del IdP. 

Este parámetro es opcional.

## issuer\$1url
<a name="python-issuer_url"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

 Apunta al punto de conexión de la instancia del servidor de AWS IAM Identity Center. 

Este parámetro es necesario solo cuando en la autenticación se utiliza `BrowserIdcAuthPlugin` en la opción de configuración credentials\$1provider.

## listen\$1port
<a name="python-listen-port-option"></a>
+ **Valor predeterminado** – 7890
+ **Tipo de datos:** entero

El puerto que utiliza el controlador para recibir la respuesta SAML del proveedor de identidades o el código de autorización cuando se utilizan los servicios SAML, Azure AD o AWS IAM Identity Center a través de un complemento del navegador.

Este parámetro es opcional.

## login\$1url
<a name="python-login-url-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La URL de inicio de sesión único para el IdP. 

Este parámetro es opcional.

## max\$1prepared\$1statements
<a name="python-max-prepared-statements-option"></a>
+ **Valor predeterminado** – 1000
+ **Tipo de datos:** entero

El número máximo de instrucciones preparadas que se almacenarán en caché por conexión. Si establece este parámetro en 0, desactivará el mecanismo de almacenamiento en caché. Si introduce un número negativo para este parámetro, lo establecerá en el valor predeterminado. 

Este parámetro es opcional.

## numeric\$1to\$1float
<a name="python-numeric-to-float-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si el conector convierte valores de tipo de datos numéricos de decimal.Decimal a float. De forma predeterminada, el conector recibe valores de tipo de datos numéricos como decimal.Decimal y no los convierte. 

No recomendamos habilitar numeric\$1to\$1float para casos de uso que requieren precisión, ya que los resultados se pueden redondear. 

Para obtener más información sobre decimal.Decimal y las compensaciones entre él y float, consulte [decimal — Aritmética decimal de coma fija y coma flotante](https://docs.python.org/3/library/decimal.html) en el sitio web de Python. 

Este parámetro es opcional.

## partner\$1sp\$1id
<a name="python-partner-sp-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de SP de socio utilizado para la autenticación en Ping. 

Este parámetro es opcional.

## contraseña
<a name="python-password-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La contraseña que se utilizará para la autenticación. 

Este parámetro es opcional.

## puerto
<a name="python-port-option"></a>
+ **Valor predeterminado** – 5439
+ **Tipo de datos:** entero

El número de puerto del clúster de Amazon Redshift. 

Este parámetro es obligatorio.

## preferred\$1role
<a name="python-preferred-role-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El rol de IAM preferido para la conexión actual. 

Este parámetro es opcional.

## principal\$1arn
<a name="python-principal-arn-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de recurso de Amazon (ARN) del usuario o rol de IAM para el que está generando una política. Se recomienda asociar una política a un rol y luego asignar el rol a su usuario, para el acceso. 

Este parámetro es opcional.

## profile
<a name="python-profile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de un perfil de en un archivo de credenciales de AWS que contiene credenciales de AWS. 

Este parámetro es opcional.

## provider\$1name
<a name="python-provider_name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del proveedor de autenticación nativo de Redshift. 

Este parámetro es opcional.

## region
<a name="python-region-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La Región de AWS donde se encuentra el clúster. 

Este parámetro es opcional.

## role\$1arn
<a name="python-role-arn-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de recurso de Amazon (ARN) del rol que la persona que llama va a tomar. Este parámetro lo utiliza el proveedor indicado por `JwtCredentialsProvider`. 

Para el proveedor de `JwtCredentialsProvider`, este parámetro es obligatorio. De lo contrario, este parámetro es opcional.

## role\$1session\$1name
<a name="python-role-session-name-option"></a>
+ **Valor predeterminado:** jwt\$1redshift\$1session
+ **Tipo de datos:** cadena

Un identificador para la sesión del rol asumido. Por lo general, se pasa el nombre o el identificador que se asocia con el usuario que está usando su aplicación. Las credenciales de seguridad temporales que utiliza su aplicación se asocian a ese usuario. Este parámetro lo utiliza el proveedor indicado por `JwtCredentialsProvider`. 

Este parámetro es opcional.

## scope
<a name="python-scope-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Una lista separada por espacios de los ámbitos a los que el usuario puede dar su consentimiento. Especifique este parámetro para que su aplicación pueda obtener el consentimiento para las API a las que desee llamar. Puede especificar este parámetro cuando indique BrowserAzureOAuth2CredentialsProvider para la opción credentials\$1provider.

Este parámetro es necesario para el complemento BrowserAzureOAuth2CredentialsProvider.

## secret\$1access\$1key\$1id
<a name="python-secret-access-key-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La clave de acceso secreta del rol o usuario de IAM configurado para la autenticación de la base de datos de IAM. 

Este parámetro es opcional.

## session\$1token
<a name="python-session-token-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La clave de acceso del rol o usuario de IAM configurado para la autenticación de la base de datos de IAM. Este parámetro es obligatorio si se están utilizando credenciales de AWS temporales. 

Este parámetro es opcional.

## serverless\$1acct\$1id
<a name="python-serverless-acct-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de la cuenta de Amazon Redshift Serverless.

Este parámetro es opcional.

## serverless\$1work\$1group
<a name="python-serverless-work-group-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del grupo de trabajo de Amazon Redshift Serverless.

Este parámetro es opcional.

## ssl
<a name="python-ssl-option"></a>
+ **Valor predeterminado:** true
+ **Tipos de datos:** booleano

La capa de sockets seguros (SSL) está habilitada. 

Este parámetro es obligatorio.

## ssl\$1insecure
<a name="python-ssl-insecure-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Un valor que especifica si desactivar la verificación del certificado SSL del servidor del host de IdP. Si se establece este parámetro en True, se desactivará la verificación del certificado SSL del servidor del host de IdP. Le recomendamos que mantenga el valor predeterminado de False en entornos de producción.

Este parámetro es opcional.

## sslmode
<a name="python-sslmode-option"></a>
+ **Valor predeterminado:** verify-ca
+ **Tipo de datos:** cadena

La seguridad de la conexión a Amazon Redshift. Puede especificar cualquiera de los siguientes: 
+ verify-ca
+ verify-full

Este parámetro es obligatorio.

## tcp\$1keepalive
<a name="python-tcp_keepalive-option"></a>
+ **Valor predeterminado:** true
+ **Tipos de datos:** booleano

Si se debe usar keepalives de TCP para evitar que las conexiones caduquen. Puede especificar los valores siguientes:
+ True: el controlador utiliza keepalives de TCP para mantener el tiempo de espera de las conexiones.
+ False: el controlador no utilizará keepalives de TCP.

Este parámetro es opcional.

## tcp\$1keepalive\$1count
<a name="python-tcp_keepalive_count-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

El número de sondeos no confirmados que se van a enviar antes de considerar la conexión inactiva. Por ejemplo, si se establece el valor en 3, el controlador enviará 3 paquetes de keepalive sin respuesta antes de determinar que la conexión ya no está activa.

Si no se especifica este parámetro, Amazon Redshift utiliza el valor predeterminado del sistema.

Este parámetro es opcional.

## tcp\$1keepalive\$1interval
<a name="python-tcp_keepalive_interval-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

El intervalo, en segundos, entre las siguientes sondas de keepalive si el controlador no ha recibido el acuse de recibo de la sonda anterior. Si especifica este parámetro, debe ser un número entero positivo.

Si no se especifica este parámetro, Amazon Redshift utiliza el valor predeterminado del sistema.

Este parámetro es opcional.

## tcp\$1keepalive\$1idle
<a name="python-tcp_keepalive_idle-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

La duración de la inactividad, en segundos, después de la cual el controlador envía la primera sonda de keepalive. Por ejemplo, si se establece el valor en 120, el controlador esperará 2 minutos de inactividad antes de enviar el primer paquete de keepalive. Si especifica este parámetro, debe ser un número entero positivo. 

Si no se especifica este parámetro, Amazon Redshift utiliza el valor predeterminado del sistema.

Este parámetro es opcional.

## timeout
<a name="python-timeout-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

La cantidad de segundos antes de que la conexión al servidor se agote. 

Este parámetro es opcional.

## token
<a name="python-token-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Un token de acceso proporcionado por AWS IAM Identity Center o un token web JSON (JWT) de OpenID Connect (OIDC) proporcionado por un proveedor de identidades web que esté vinculado con AWS IAM Identity Center. Su aplicación debe generar este token autenticando al usuario de su aplicación con AWS IAM Identity Center o con un proveedor de identidades vinculado con AWS IAM Identity Center. 

Este parámetro funciona con `IdpTokenAuthPlugin`.

## token\$1type
<a name="python-token_type-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Tipo de token que se utiliza en `IdpTokenAuthPlugin`.

Puede especificar los valores siguientes:

**ACCESS\$1TOKEN**  
Introdúzcalo si utiliza un token de acceso proporcionado por AWS IAM Identity Center.

**EXT\$1JWT**  
Introdúzcalo si utiliza un token web JSON (JWT) de OpenID Connect (OIDC) proporcionado por un proveedor de identidades basado en web que está integrado con AWS IAM Identity Center.

Este parámetro funciona con `IdpTokenAuthPlugin`.

## usuario
<a name="python-user-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de usuario que se va a utilizar para la autorización. 

Este parámetro es opcional.

## web\$1identity\$1token
<a name="python-web-identity-token-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El token de acceso de OAuth 2.0 o el token del ID de OpenID Connect proporcionado por el proveedor de identidad. Asegúrese de que su aplicación obtenga este token mediante la autenticación del usuario que usa la aplicación con un proveedor de identidad web. El proveedor indicado por `JwtCredentialsProvider` utiliza este parámetro. 

Para el proveedor de `JwtCredentialsProvider`, este parámetro es obligatorio. De lo contrario, este parámetro es opcional.

# Importación del conector Python
<a name="python-start-import"></a>

Para importar el conector Python, ejecute en siguiente comando.

```
>>> import redshift_connector
```

Para conectarse a un clúster de Amazon Redshift mediante credenciales de AWS, ejecute el siguiente comando.

```
conn = redshift_connector.connect(
    host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
    port=5439,
    database='dev',
    user='awsuser',
    password='my_password'
 )
```

# Integración del conector Python a NumPy
<a name="python-connect-integrate-numpy"></a>

A continuación se muestra un ejemplo de integración del conector Python a NumPy.

```
>>>  import numpy
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set            
cursor.execute("select * from book")

result: numpy.ndarray = cursor.fetch_numpy_array()
print(result)
```

A continuación, se muestra el resultado.

```
[['One Hundred Years of Solitude' 'Gabriel García Márquez']
['A Brief History of Time' 'Stephen Hawking']]
```

# Integración del conector Python a pandas
<a name="python-connect-integrate-pandas"></a>

A continuación se muestra un ejemplo de integración del conector Python a pandas.

```
>>> import pandas

#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set
cursor.execute("select * from book")
result: pandas.DataFrame = cursor.fetch_dataframe()
print(result)
```

# Uso de complementos de proveedores de identidades
<a name="python-connect-identity-provider-plugins"></a>

Para obtener información general sobre cómo utilizar los complementos de proveedores de identidades, consulte [Opciones para proporcionar credenciales de IAM](options-for-providing-iam-credentials.md). Para obtener más información sobre cómo administrar las identidades de IAM, incluidas las prácticas recomendadas para los roles de IAM, consulte [Administración de identidades y accesos en Amazon Redshift](redshift-iam-authentication-access-control.md).

## Autenticación mediante el complemento de proveedores de identidades de AD FS
<a name="python-connect-identity-provider-active-dir"></a>

A continuación se muestra un ejemplo del uso del complemento de proveedores de identidades de Servicios de federación de Active Directory (AD FS) para autenticar a un usuario que se conecta a una base de datos de Amazon Redshift.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AdfsCredentialsProvider',
    user='brooke@myadfshostname.com',
    password='Hunter2',
    idp_host='myadfshostname.com'
)
```

## Autenticación mediante el complemento de proveedores de identidades Azure
<a name="python-connect-identity-provider-azure"></a>

A continuación se muestra un ejemplo de autenticación mediante el complemento de proveedores de identidades Azure. Puede crear valores para `client_id` y `client_secret` para una aplicación para empresas Azure tal y como se muestra a continuación. 

```
>>>  con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AzureCredentialsProvider',
    user='brooke@myazure.org',
    password='Hunter2',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
    client_secret='my_client_secret',
    preferred_role='arn:aws:iam:123:role/DataScientist'
)
```

## Autenticación mediante el complemento de proveedores de identidades de AWS IAM Identity Center
<a name="python-connect-identity-provider-aws-idc"></a>

 A continuación se muestra un ejemplo de autenticación mediante el complemento de proveedores de identidades de AWS IAM Identity Center. 

```
with redshift_connector.connect(
credentials_provider='BrowserIdcAuthPlugin',
host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
database='dev',
idc_region='us-east-1',
issuer_url='https://identitycenter.amazonaws.com/ssoins-790723ebe09c86f9',
idp_response_timeout=60,
listen_port=8100,
idc_client_display_name='Test Display Name',
# port value of 5439 is specified by default
)
```

## Autenticación mediante el complemento de proveedores de identidades Azure Browser
<a name="python-connect-identity-provider-azure-browser"></a>

A continuación se muestra un ejemplo del uso del complemento de proveedores de identidades Azure Browser para autenticar a un usuario que se conecta a una base de datos de Amazon Redshift.

La autenticación multifactor se produce en el navegador, donde las credenciales de inicio de sesión las proporciona el usuario.

```
>>>con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserAzureCredentialsProvider',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
)
```

## Autenticación mediante el complemento de proveedores de identidades Okta
<a name="python-connect-identity-provider-okta"></a>

A continuación se muestra un ejemplo de autenticación mediante el complemento de proveedores de identidades Okta. Puede obtener los valores de `idp_host`, `app_id` y `app_name` a través de la aplicación Okta.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='OktaCredentialsProvider',
    user='brooke@myazure.org',
    password='hunter2',
    idp_host='my_idp_host',
    app_id='my_first_appetizer',
    app_name='dinner_party'
)
```

## Autenticación mediante JumpCloud con un complemento de proveedores de identidades de navegador SAML genérico
<a name="python-connect-identity-provider-jumpcloud"></a>

A continuación se muestra un ejemplo de autenticación mediante JumpCloud con un complemento de proveedores de identidades de navegador SAML genérico.

La contraseña del parámetro es obligatoria. No obstante, no tiene que ingresar este parámetro porque la autenticación multifactor se produce en el navegador.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserSamlCredentialsProvider',
    user='brooke@myjumpcloud.org',
    password='',
    login_url='https://sso.jumpcloud.com/saml2/plustwo_melody'
)
```

# Ejemplos de uso del conector Python de Amazon Redshift
<a name="python-connect-examples"></a>

A continuación se muestran ejemplos de cómo utilizar el conector Python de Amazon Redshift. Para ejecutarlos, primero debe instalar el conector Python. Para obtener más información sobre la instalación del conector Python de Amazon Redshift, consulte [Instalación del conector Python de Amazon Redshift](python-driver-install.md). Para obtener más información sobre las opciones de configuración que puede utilizar con el conector Python, consulte [Opciones de configuración para el conector Python de Amazon Redshift](python-configuration-options.md).

**Topics**
+ [Conexión y consulta a un clúster de Amazon Redshift mediante credenciales de AWS](#python-connect-cluster)
+ [Habilitación de la confirmación automática](#python-connect-enable-autocommit)
+ [Configuración del estilo de parámetro del cursor](#python-connect-config-paramstyle)
+ [Uso de COPY para copiar datos de un bucket de Amazon S3 y UNLOAD para escribirlos en este](#python-connect-copy-unload-s3)

## Conexión y consulta a un clúster de Amazon Redshift mediante credenciales de AWS
<a name="python-connect-cluster"></a>

El siguiente ejemplo le guía a través del proceso de conexión a un clúster de Amazon Redshift con sus credenciales de AWS y, a continuación, de consulta de una tabla y de recuperación de los resultados de la consulta.

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     database='dev',
     port=5439,
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query a table using the Cursor
>>> cursor.execute("select * from book")
                
#Retrieve the query result set
>>> result: tuple = cursor.fetchall()
>>> print(result)
 >> (['One Hundred Years of Solitude', 'Gabriel García Márquez'], ['A Brief History of Time', 'Stephen Hawking'])
```

## Habilitación de la confirmación automática
<a name="python-connect-enable-autocommit"></a>

La propiedad de confirmación automática se desactiva de manera predeterminada, de acuerdo con la especificación de la API de base de datos de Python. Puede utilizar los siguientes comandos para activar la propiedad de confirmación automática de la conexión después de ejecutar un comando de reversión para asegurarse de que no haya una transacción en curso.

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(...)

# Run a rollback command
>>>  conn.rollback()

# Turn on autocommit
>>>  conn.autocommit = True
>>>  conn.run("VACUUM")

# Turn off autocommit
>>>  conn.autocommit = False
```

## Configuración del estilo de parámetro del cursor
<a name="python-connect-config-paramstyle"></a>

El estilo de parámetro de un cursor se puede modificar mediante cursor.paramstyle. El estilo de parámetro predeterminado que se utiliza es `format`. Los valores válidos del estilo de parámetro son `qmark`, `numeric`, `named`, `format` y `pyformat`.

A continuación, se muestran ejemplos del uso de varios estilos de parámetro para pasar parámetros a una instrucción SQL de ejemplo.

```
# qmark
redshift_connector.paramstyle = 'qmark'
sql = 'insert into foo(bar, jar) VALUES(?, ?)'
cursor.execute(sql, (1, "hello world"))

# numeric
redshift_connector.paramstyle = 'numeric'
sql = 'insert into foo(bar, jar) VALUES(:1, :2)'
cursor.execute(sql, (1, "hello world"))

# named
redshift_connector.paramstyle = 'named'
sql = 'insert into foo(bar, jar) VALUES(:p1, :p2)'
cursor.execute(sql, {"p1":1, "p2":"hello world"})

# format
redshift_connector.paramstyle = 'format'
sql = 'insert into foo(bar, jar) VALUES(%s, %s)'
cursor.execute(sql, (1, "hello world"))

# pyformat
redshift_connector.paramstyle = 'pyformat'
sql = 'insert into foo(bar, jar) VALUES(%(bar)s, %(jar)s)'
cursor.execute(sql, {"bar": 1, "jar": "hello world"})
```

## Uso de COPY para copiar datos de un bucket de Amazon S3 y UNLOAD para escribirlos en este
<a name="python-connect-copy-unload-s3"></a>

En el siguiente ejemplo, se muestra cómo copiar datos de un bucket de Amazon S3 en una tabla y luego descargarlos de esa tabla en el bucket.

Un archivo de texto denominado `category_csv.txt` que contiene los siguientes datos se carga en un bucket de Amazon S3.

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

A continuación se muestra un ejemplo del código de Python, que se conecta primero a la base de datos de Amazon Redshift. A continuación crea una tabla llamada `category` y copia los datos CSV del bucket de S3 en la tabla.

```
#Connect to the cluster and create a Cursor
>>> import redshift_connector
>>> with redshift_connector.connect(...) as conn:
>>> with conn.cursor() as cursor:

#Create an empty table
>>>     cursor.execute("create table category (catid int, cargroup varchar, catname varchar, catdesc varchar)")

#Use COPY to copy the contents of the S3 bucket into the empty table 
>>>     cursor.execute("copy category from 's3://testing/category_csv.txt' iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the table
>>>     cursor.execute("select * from category")
>>>     print(cursor.fetchall())

#Use UNLOAD to copy the contents of the table into the S3 bucket
>>>     cursor.execute("unload ('select * from category') to 's3://testing/unloaded_category_csv.txt'  iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the bucket
>>>     print(cursor.fetchall())
 >> ([12, 'Shows', 'Musicals', 'Musical theatre'], [13, 'Shows', 'Plays', 'All "non-musical" theatre'], [14, 'Shows', 'Opera', 'All opera, light, and "rock" opera'], [15, 'Concerts', 'Classical', 'All symphony, concerto, and choir concerts'])
```

Si no lo ha establecido `autocommit` a true, confirme con `conn.commit()` después de ejecutar las instrucciones `execute()`.

Los datos se descargan en el archivo `unloaded_category_csv.text0000_part00` del bucket de S3 con el siguiente contenido:

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

# Referencia de la API para el conector Python de Amazon Redshift
<a name="python-api-reference"></a>

A continuación encontrará una descripción de las operaciones de la API del conector Python de Amazon Redshift.

## redshift\$1connector
<a name="python-api-redshift_connector"></a>

A continuación encontrará una descripción de la operación de la API `redshift_connector`.

`connect(user, database, password[, port, …])`  
Establece una conexión a un clúster de Amazon Redshift. Esta función valida la entrada del usuario, se autentica opcionalmente mediante un complemento de proveedores de identidades y, a continuación, crea un objeto de conexión.

`apilevel`  
El nivel DBAPI admite, actualmente “2.0”.

`paramstyle``str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str`  
El estilo de parámetro de la API de base de datos que se va a utilizar globalmente.

## Connection
<a name="python-api-connection"></a>

A continuación encontrará una descripción de las operaciones de la API de conexión para el conector Python de Amazon Redshift.

`__init__(user, password, database[, host, …])`  
Inicializa un objeto de conexión sin procesar.

`cursor`  
Crea un objeto cursor vinculado a esta conexión.

`commit`  
Confirma la transacción de la base de datos actual.

`rollback`  
Retrocede la transacción de la base de datos actual.

`close`  
Cierra la conexión a la base de datos.

`execute(cursor, operation, vals)`  
Ejecuta los comandos SQL especificados. Puede proporcionar los parámetros en forma de secuencia o como una asignación, según el valor de `redshift_connector.paramstyle`.

`run(sql[, stream])`  
Ejecuta los comandos SQL especificados. De forma opcional, puede proporcionar una secuencia para utilizarla con el comando COPY.

`xid(format_id, global_transaction_id, …)`  
Cree un ID de transacción. Solo utiliza el parámetro `global_transaction_id` en postgres. format\$1id y branch\$1qualifier no se utilizan en postgres. El `global_transaction_id` puede ser cualquier identificador de cadena que admite postgres que devuelva una tupla (`format_id`, `global_transaction_id`, `branch_qualifier`).

`tpc_begin(xid)`  
Inicia una transacción de TPC con un ID de transacción `xid` que consiste en un ID de formato, un ID de transacción global y un calificador de ramificación. 

`tpc_prepare`  
Realiza la primera fase de una transacción iniciada con .tpc\$1begin.

`tpc_commit([xid])`  
Cuando se llama sin argumentos, .tpc\$1commit confirma una transacción de TPC preparada previamente con .tpc\$1prepare().

`tpc_rollback([xid])`  
Cuando se llama sin argumentos, .tpc\$1rollback revierte una transacción de TPC.

`tpc_recover`  
Devuelve una lista de los ID de transacción pendientes adecuados para su uso con .tpc\$1commit(xid) o .tpc\$1rollback(xid).

## Cursor
<a name="python-api-cursor"></a>

A continuación encontrará una descripción de la operación de la API de cursor.

`__init__(connection[, paramstyle])`  
Inicializa un objeto cursor sin procesar.

`insert_data_bulk(filename, table_name, parameter_indices, column_names, delimiter, batch_size)`  
Ejecuta una instrucción INSERT masiva.

`execute(operation[, args, stream, …])`  
Ejecuta una operación de base de datos.

`executemany(operation, param_sets)`  
Prepara una operación de base de datos y, a continuación, la ejecuta para todas las secuencias de parámetros o asignaciones proporcionadas.

`fetchone`  
Recupera la siguiente fila de un conjunto de resultados de consultas.

`fetchmany([num])`  
Recupera el siguiente conjunto de filas de un resultado de consultas.

`fetchall`  
Recupera todas las filas restantes de un resultado de consultas.

`close`  
Cierre el cursor ahora. 

`__iter__`  
Se puede iterar un objeto cursor para recuperar las filas de una consulta.

`fetch_dataframe([num])`  
Devuelve un marco de datos de los resultados de la última consulta.

`write_dataframe(df, table)`  
Escribe el mismo marco de datos de estructura en una base de datos de Amazon Redshift.

`fetch_numpy_array([num])`  
Devuelve una matriz NumPy de los resultados de la última consulta.

`get_catalogs`  
Amazon Redshift no admite varios catálogos desde una única conexión. Amazon Redshift solo devuelve el catálogo actual.

`get_tables([catalog, schema_pattern, …])`  
Devuelve las tablas públicas únicas que están definidas por el usuario dentro del sistema.

`get_columns([catalog, schema_pattern, …])`  
Devuelve una lista de todas las columnas de una tabla específica de una base de datos de Amazon Redshift.

## Complemento AdfScredentialsProvider
<a name="python-adfs-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento AdfsCredentialsProvider para el conector Python de Amazon Redshift. 

```
redshift_connector.plugin.AdfsCredentialsProvider()
```

## Complemento AzureCredentialsProvider
<a name="python-azure-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento AzureCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.AzureCredentialsProvider()
```

## Complemento BrowserAzureCredentialsProvider
<a name="python-browser-azure-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento BrowserAzureCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.BrowserAzureCredentialsProvider()
```

## Complemento BrowserSamlCredentialsProvider
<a name="python-browser-saml-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento BrowserSamlCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.BrowserSamlCredentialsProvider()
```

## Complemento OktaCredentialsProvider
<a name="python-okta-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento OktaCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.OktaCredentialsProvider()
```

## Complemento PingCredentialsProvider
<a name="python-ping-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento PingCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.PingCredentialsProvider()
```

## Complemento SamlCredentialsProvider
<a name="python-saml-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento SamlCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.SamlCredentialsProvider()
```