

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

En utilisant le connecteur Amazon Redshift pour Python, vous pouvez intégrer [le travail au AWS SDK pour Python (Boto3), ainsi qu'à Pandas et à](https://github.com/boto/boto3) Numerical Python (). NumPy Pour plus d'informations sur les pandas, consultez le référentiel des [pandas GitHub ](https://github.com/pandas-dev/pandas). Pour plus d'informations NumPy, consultez le [NumPy GitHubréférentiel](https://github.com/numpy/numpy). 

Le connecteur Amazon Redshift Python fournit une solution open source. Vous pouvez parcourir le code source, demander des améliorations, signaler des problèmes et apporter des contributions. 

Pour utiliser le connecteur Amazon Redshift Python, assurez-vous que vous disposez de Python version 3.6 ou ultérieure. Pour plus d'informations, consultez le [Contrat de licence du pilote Amazon Redshift Python](https://github.com/aws/amazon-redshift-python-driver/blob/master/LICENSE). 

Le connecteur Amazon Redshift Python fournit les éléments suivants :
+ Gestion des identités et des accès AWS Authentification (IAM). Pour de plus amples informations, veuillez consulter [Identity and Access Management dans Amazon Redshift](redshift-iam-authentication-access-control.md).
+ Authentification du fournisseur d'identité utilisant l'accès à l'API fédérée. L'accès à l'API fédéré est pris en charge par les fournisseurs d'identité d'entreprise tels que les suivants :
  + Azure AD. Pour plus d'informations, consultez le billet de blog AWS Big Data [Federate Amazon Redshift access with Microsoft Azure AD](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-microsoft-azure-ad-single-sign-on/) single sign-on.
  + Active Directory Federation Services. Pour plus d'informations, consultez le billet de blog AWS Big Data [Fédérer l'accès à votre cluster Amazon Redshift avec Active Directory Federation Services (AD FS) : Partie 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. Pour plus d'informations, consultez le billet de blog consacré au AWS Big Data [Federate Amazon Redshift access with Okta as](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-okta-as-an-identity-provider/) an identity provider.
  + PingFederate. Pour plus d'informations, consultez le [PingFederate site](https://www.pingidentity.com/en/software/pingfederate.html).
  + JumpCloud. Pour plus d'informations, consultez le [JumpCloud site](https://jumpcloud.com/).
+ Types de données Amazon Redshift.

Le connecteur Amazon Redshift Python implémente la spécification 2.0 de l'API de base de données Python. Pour plus d'informations, consultez [PEP 249 : spécification de l'API de base de données Python v2.0](https://www.python.org/dev/peps/pep-0249/) sur le site web de Python.

**Topics**
+ [Installation du connecteur Amazon Redshift Python](python-driver-install.md)
+ [Options de configuration du connecteur Amazon Redshift Python](python-configuration-options.md)
+ [Importation du connecteur Python](python-start-import.md)
+ [Intégrer le connecteur Python avec NumPy](python-connect-integrate-numpy.md)
+ [Intégration du connecteur Python à pandas](python-connect-integrate-pandas.md)
+ [Utilisation des plugins de fournisseur d'identité](python-connect-identity-provider-plugins.md)
+ [Exemples d'utilisation du connecteur Amazon Redshift Python](python-connect-examples.md)
+ [Référence d'API pour le connecteur Amazon Redshift Python](python-api-reference.md)

# Installation du connecteur Amazon Redshift Python
<a name="python-driver-install"></a>

Vous pouvez utiliser l'une des méthodes suivantes pour installer le connecteur Amazon Redshift Python :
+ Python Package Index (PyPI)
+ Conda
+ Clonage du référentiel GitHub 

## Installation du connecteur Python depuis PyPI
<a name="python-pip-install-pypi"></a>

Pour installer le connecteur Python à partir de l'index Python Package Index (PyPI), vous pouvez utiliser pip. Pour ce faire, exécutez la commande suivante.

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

Vous pouvez installer le connecteur dans un environnement virtuel. Pour ce faire, exécutez la commande suivante.

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

En option, vous pouvez installer des pandas et NumPy utiliser le connecteur.

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

Pour plus d'informations sur pip, consultez le [site web de pip](https://pip.pypa.io/en/stable/).

## Installation du connecteur Python depuis Conda
<a name="python-pip-install-from-conda"></a>

Vous pouvez installer le connecteur Python depuis Anaconda.org.

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

## Installation du connecteur Python en clonant le GitHub dépôt depuis AWS
<a name="python-pip-install-from-source"></a>

Pour installer le connecteur Python depuis le code source, clonez le GitHub dépôt depuis AWS. Après avoir installé Python et virtualenv, configurez votre environnement et installez les dépendances requises en exécutant les commandes suivantes.

```
$ 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
```

# Options de configuration du connecteur Amazon Redshift Python
<a name="python-configuration-options"></a>

Vous trouverez ci-dessous des descriptions des options que vous pouvez spécifier pour le connecteur Amazon Redshift Python. Les options ci-dessous s’appliquent à la dernière version de connecteur disponible, sauf indication contraire.

## access\$1key\$1id
<a name="python-access-key-id-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

ID de clé d’accès pour l’utilisateur ou le rôle IAM configuré pour l’authentification de base de données IAM. 

Ce paramètre est facultatif.

## allow\$1db\$1user\$1override
<a name="python-allow-db-user-override-option"></a>
+ **Valeur par défaut** – False
+ **Types de données** – Booléen

True  
Spécifie que le connecteur utilise la valeur `DbUser` de l'assertion SAML (Security Assertion Markup Language).

False  
Spécifie que la valeur du paramètre de connexion `DbUser` est utilisée.

Ce paramètre est facultatif.

## app\$1name
<a name="python-app-name-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Nom de l'application fournisseur d'identité (IdP) utilisée pour l'authentification. 

Ce paramètre est facultatif.

## application\$1name
<a name="python-application_name-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

Nom de l’application client à transmettre à Amazon Redshift à des fins d’audit. Le nom de l’application que vous fournissez apparaît dans la colonne « application\$1name » de la table [SYS\$1CONNECTION\$1LOG](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html). Cela permet de suivre et de dépanner les sources de connexion lors des problèmes de débogage.

Ce paramètre est facultatif.

## auth\$1profile
<a name="python-auth-profile-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Nom d'un profil d'authentification Amazon Redshift ayant des propriétés de connexion JSON. Pour plus d'informations sur l'attribution de noms aux paramètres de connexion, consultez la classe `RedshiftProperty`. La classe `RedshiftProperty` stocke les paramètres de connexion fournis par l'utilisateur final et, le cas échéant, générés pendant le processus d'authentification IAM (par exemple, les informations d'identification IAM temporaires). Pour plus d'informations, consultez le [RedshiftProperty cours](https://github.com/aws/amazon-redshift-python-driver/blob/master/redshift_connector/redshift_property.py#L9). 

Ce paramètre est facultatif.

## auto\$1create
<a name="python-auto-create-option"></a>
+ **Valeur par défaut** – False
+ **Types de données** – Booléen

Valeur qui indique si l'utilisateur doit être créé s'il n'existe pas. 

Ce paramètre est facultatif.

## client\$1id
<a name="python-client-id-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

ID client d'Azure IdP. 

Ce paramètre est facultatif.

## client\$1secret
<a name="python-client-secret-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Secret client d'Azure IdP. 

Ce paramètre est facultatif.

## cluster\$1identifier
<a name="python-cluster-identifier-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Identifiant du cluster Amazon Redshift. 

Ce paramètre est facultatif.

## credentials\$1provider
<a name="python-credential-provider-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

IdP utilisé pour s'authentifier auprès d'Amazon Redshift. Voici les valeurs valides : 
+ `AdfsCredentialsProvider`
+ `AzureCredentialsProvider`
+ `BrowserAzureCredentialsProvider`
+ `BrowserAzureOAuth2CredentialsProvider`
+ `BrowserIdcAuthPlugin` : un plugin d’autorisation utilisant AWS IAM Identity Center.
+ `BrowserSamlCredentialsProvider`
+ `IdpTokenAuthPlugin`— Un plugin d'autorisation qui accepte un jeton AWS IAM Identity Center ou des jetons d'identité basés sur le JSON OpenID Connect (OIDC) (JWT) provenant de n'importe quel fournisseur d'identité Web lié à l'IAM Identity Center. AWS 
+ `PingCredentialsProvider`
+ `OktaCredentialsProvider`

Ce paramètre est facultatif.

## database
<a name="python-database-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Nom de la base de données à laquelle vous souhaitez vous connecter. 

Ce paramètre est obligatoire.

## database\$1metadata\$1current\$1db\$1only
<a name="python-database-metadata-current-db-only-option"></a>
+ **Valeur par défaut** – True
+ **Types de données** – Booléen

Valeur qui indique si une application prend en charge les catalogues d'unités de partage des données de plusieurs bases de données. La valeur par défaut True indique que l'application ne prend pas en charge les catalogues d'unités de partage des données de plusieurs bases de données pour des raisons de compatibilité ascendante. 

Ce paramètre est facultatif.

## db\$1groups
<a name="python-db-groups-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

Liste séparée par des virgules des noms de groupes de base de données existants que l'utilisateur a indiqués par des DbUser jointures pour la session en cours. 

Ce paramètre est facultatif.

## db\$1user
<a name="python-db-user-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

L'ID utilisateur à utiliser avec Amazon Redshift. 

Ce paramètre est facultatif.

## endpoint\$1url
<a name="python-endpoint-url-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

URL du point de terminaison Amazon Redshift. Cette option est réservée à un usage AWS interne. 

Ce paramètre est facultatif.

## group\$1federation
<a name="python-group-federation-option"></a>
+ **Valeur par défaut** – False
+ **Types de données** – Booléen

Cette option spécifie si les groupes d’IDP Amazon Redshift doivent être utilisés.

Ce paramètre est facultatif.

**true**  
Utilisez les groupes Amazon Redshift Identity Provider (IDP).

**false**  
Utilisez l'API STS et GetClusterCredentials pour la fédération d'utilisateurs et spécifiez **db\$1groups** pour la connexion.

## hôte
<a name="python-host-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Nom d'hôte du cluster Amazon Redshift. 

Ce paramètre est facultatif.

## iam
<a name="python-iam-option"></a>
+ **Valeur par défaut** – False
+ **Types de données** – Booléen

L'authentification IAM est activée. 

Ce paramètre est obligatoire.

## iam\$1disable\$1cache
<a name="python-iam-disable-cache-option"></a>
+ **Valeur par défaut** – False
+ **Types de données** – Booléen

Cette option spécifie si les informations d’identification IAM sont mises en cache. Par défaut, les informations d'identification IAM sont mises en cache. Cela améliore les performances lorsque les demandes envoyées à API Gateway sont limitées. 

Ce paramètre est facultatif.

## idc\$1client\$1display\$1name
<a name="python-idc_client_display_name-option"></a>
+ **Valeur par défaut** : connecteur Amazon Redshift Python
+ **Types de données** – Chaîne

Le nom d'affichage à utiliser pour le client qui l'utilise BrowserIdcAuthPlugin.

Ce paramètre est facultatif.

## idc\$1region
<a name="python-idc_region"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

 AWS Région dans laquelle se trouve l'instance AWS IAM Identity Center.

Ce paramètre est requis uniquement lors de l’authentification à l’aide de `BrowserIdcAuthPlugin` dans l’option de configuration credentials\$1provider.

## idp\$1partition
<a name="python-idp_partition-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Spécifie la partition cloud sur laquelle votre fournisseur d'identité (IdP) est configuré. Cela détermine le point de terminaison d'authentification IdP auquel le pilote se connecte.

Si ce paramètre est laissé vide, le pilote utilise par défaut la partition commerciale. Les valeurs possibles sont :
+  `us-gov`: utilisez cette valeur si votre IdP est configuré dans Azure Government. Par exemple, Azure AD Government utilise le point de terminaison`login.microsoftonline.us`.
+  `cn`: Utilisez cette valeur si votre IdP est configuré dans la partition cloud de Chine. Par exemple, Azure AD Chine utilise le point de terminaison`login.chinacloudapi.cn`. 

Ce paramètre est facultatif.

## idpPort
<a name="python-idp-port-option"></a>
+ **Valeur par défaut** – 7890
+ **Type de données** – Entier

Port d'écoute auquel IdP envoie l'assertion SAML. 

Ce paramètre est obligatoire.

## idp\$1response\$1timeout
<a name="python-idp-response-timeout-option"></a>
+ **Valeur par défaut** – 120
+ **Type de données** – Entier

Délai d'expiration de la récupération de l'assertion SAML à partir de l'IdP. 

Ce paramètre est obligatoire.

## idp\$1tenant
<a name="python-idp-tenant-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Locataire IdP. 

Ce paramètre est facultatif.

## issuer\$1url
<a name="python-issuer_url"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

 Pointe vers le point de terminaison de l'instance du serveur AWS IAM Identity Center. 

Ce paramètre est requis uniquement lors de l’authentification à l’aide de `BrowserIdcAuthPlugin` dans l’option de configuration credentials\$1provider.

## listen\$1port
<a name="python-listen-port-option"></a>
+ **Valeur par défaut** – 7890
+ **Type de données** – Entier

Port utilisé par le pilote pour recevoir la réponse SAML du fournisseur d'identité ou le code d'autorisation lors de l'utilisation des services SAML, Azure AD ou AWS IAM Identity Center via un plug-in de navigateur.

Ce paramètre est facultatif.

## login\$1url
<a name="python-login-url-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

URL d'authentification unique pour le fournisseur d'identité. 

Ce paramètre est facultatif.

## max\$1prepared\$1statements
<a name="python-max-prepared-statements-option"></a>
+ **Valeur par défaut** : 1 000
+ **Type de données** – Entier

Nombre maximal d’instructions préparées qui seront mises en cache par connexion. Le réglage de ce paramètre sur 0 désactive le mécanisme de mise en cache. La saisie d’un nombre négatif pour ce paramètre lui donne la valeur par défaut. 

Ce paramètre est facultatif.

## numeric\$1to\$1float
<a name="python-numeric-to-float-option"></a>
+ **Valeur par défaut** – False
+ **Types de données** – Booléen

Cette option spécifie si le connecteur convertit les valeurs de type de données numériques du format « décimal.Décimal » au format flottant. Par défaut, le connecteur reçoit les valeurs de type numérique en tant que format « décimal.Décimal » et ne les convertit pas. 

Nous ne recommandons pas d'activer l'option numeric\$1to\$1float pour les cas d'utilisation qui exigent de la précision, car les résultats peuvent être arrondis. 

Pour plus d'informations sur le format « décimal.Décimal » et les compromis entre celui-ci et le format flottant, consultez la section [decimal — Decimal fixed point and floating point arithmetic](https://docs.python.org/3/library/decimal.html) (Arithmétique à virgule fixe de type décimal — Décimal et à virgule flottante) sur le site Web de Python. 

Ce paramètre est facultatif.

## partner\$1sp\$1id
<a name="python-partner-sp-id-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

ID SP partenaire utilisé pour l'authentification avec Ping. 

Ce paramètre est facultatif.

## mot de passe
<a name="python-password-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Mot de passe à utiliser pour l'authentification. 

Ce paramètre est facultatif.

## port
<a name="python-port-option"></a>
+ **Valeur par défaut** : 5439
+ **Type de données** – Entier

Numéro de port du cluster Amazon Redshift. 

Ce paramètre est obligatoire.

## preferred\$1role
<a name="python-preferred-role-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Rôle IAM préféré pour la connexion actuelle. 

Ce paramètre est facultatif.

## principal\$1arn
<a name="python-principal-arn-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

L'Amazon Resource Name (ARN) de l'utilisateur ou du rôle IAM pour lequel vous générez une politique. Il est recommandé d'attacher une politique à un rôle, puis d'attacher le rôle à votre utilisateur, pour y accéder. 

Ce paramètre est facultatif.

## profile
<a name="python-profile-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

Nom d'un profil dans un fichier d' AWS informations d'identification contenant des AWS informations d'identification. 

Ce paramètre est facultatif.

## provider\$1name
<a name="python-provider_name-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

Nom du fournisseur d'authentification native Redshift. 

Ce paramètre est facultatif.

## region
<a name="python-region-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

L' Région AWS endroit où se trouve le cluster. 

Ce paramètre est facultatif.

## role\$1arn
<a name="python-role-arn-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Amazon Resource Name (ARN) du rôle que l'appelant doit assumer. Ce paramètre est utilisé par le fournisseur indiqué par `JwtCredentialsProvider`. 

Pour le `JwtCredentialsProvider`, ce paramètre est obligatoire. Sinon, ce paramètre est facultatif.

## role\$1session\$1name
<a name="python-role-session-name-option"></a>
+ **Valeur par défaut** – jwt\$1redshift\$1session
+ **Types de données** – Chaîne

Un identifiant pour la séance de rôle assumé. En règle générale, vous transmettez le nom ou l'identifiant associé à l'utilisateur qui utilise votre application. Les informations d’identification de sécurité temporaires utilisées par votre application sont associées à cet utilisateur. Ce paramètre est utilisé par le fournisseur indiqué par `JwtCredentialsProvider`. 

Ce paramètre est facultatif.

## scope
<a name="python-scope-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

Une liste des portées, séparées par des espaces, auxquels l’utilisateur peut consentir. Vous spécifiez ce paramètre afin que votre application puisse obtenir le consentement pour APIs ce que vous souhaitez appeler. Vous pouvez spécifier ce paramètre lorsque vous spécifiez BrowserAzure OAuth2 CredentialsProvider l'option credentials\$1provider.

Ce paramètre est obligatoire pour le BrowserAzure OAuth2 CredentialsProvider plug-in.

## secret\$1access\$1key\$1id
<a name="python-secret-access-key-id-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Clé d'accès secrète pour l'utilisateur ou le rôle IAM configuré pour l'authentification de base de données IAM. 

Ce paramètre est facultatif.

## session\$1token
<a name="python-session-token-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

ID de clé d’accès pour l’utilisateur ou le rôle IAM configuré pour l’authentification de base de données IAM. Ce paramètre est obligatoire si des AWS informations d'identification temporaires sont utilisées. 

Ce paramètre est facultatif.

## serverless\$1acct\$1id
<a name="python-serverless-acct-id-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

ID du compte Amazon Redshift Serverless.

Ce paramètre est facultatif.

## serverless\$1work\$1group
<a name="python-serverless-work-group-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

Nom du groupe de travail Amazon Redshift Serverless.

Ce paramètre est facultatif.

## ssl
<a name="python-ssl-option"></a>
+ **Valeur par défaut** – True
+ **Types de données** – Booléen

Le protocole SSL est activé. 

Ce paramètre est obligatoire.

## ssl\$1insecure
<a name="python-ssl-insecure-option"></a>
+ **Valeur par défaut** – False
+ **Types de données** – Booléen

Valeur qui indique si la vérification du certificat de serveur d’hôtes IdP doit être désactivée. La définition de ce paramètre sur True désactivera la vérification du certificat SSL du serveur d’hôtes IdP. Nous vous recommandons de conserver la valeur par défaut de False dans les environnements de production.

Ce paramètre est facultatif.

## sslmode
<a name="python-sslmode-option"></a>
+ **Valeur par défaut** – verify-ca
+ **Types de données** – Chaîne

Sécurité de la connexion à Amazon Redshift. Vous pouvez spécifier chacune des valeurs suivantes : 
+ verify-ca
+ verify-full

Ce paramètre est obligatoire.

## tcp\$1keepalive
<a name="python-tcp_keepalive-option"></a>
+ **Valeur par défaut** – True
+ **Types de données** – Booléen

S’il faut utiliser les keepalives TCP pour empêcher les connexions de s’interrompre. Vous pouvez spécifier les valeurs suivantes :
+ True : le pilote utilisera les keepalives TCP pour empêcher les connexions de s’interrompre.
+ False : le pilote n’utilisera pas les keepalives TCP.

Ce paramètre est facultatif.

## tcp\$1keepalive\$1count
<a name="python-tcp_keepalive_count-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** – Entier

Le nombre de sondes non reconnues à envoyer avant de considérer la connexion comme inactive. Par exemple, définir la valeur sur 3 signifie que le pilote enverra 3 paquets keepalive sans réponse avant de déterminer que la connexion n’est plus active.

Si ce paramètre n’est pas spécifié, Amazon Redshift utilise la valeur par défaut du système.

Ce paramètre est facultatif.

## tcp\$1keepalive\$1interval
<a name="python-tcp_keepalive_interval-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** – Entier

Intervalle, en secondes, entre les sondes keepalive suivantes si le pilote n’a pas reçu d’accusé de réception pour la sonde précédente. Si vous spécifiez ce paramètre, il doit s’agir d’un nombre entier positif.

Si ce paramètre n’est pas spécifié, Amazon Redshift utilise la valeur par défaut du système.

Ce paramètre est facultatif.

## tcp\$1keepalive\$1idle
<a name="python-tcp_keepalive_idle-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** – Entier

Durée d’inactivité, en secondes, après laquelle le pilote envoie la première sonde keepalive. Par exemple, si vous définissez la valeur sur 120, le pilote attendra 2 minutes d’inactivité avant d’envoyer le premier paquet keepalive. Si vous spécifiez ce paramètre, il doit s’agir d’un nombre entier positif. 

Si ce paramètre n’est pas spécifié, Amazon Redshift utilise la valeur par défaut du système.

Ce paramètre est facultatif.

## timeout
<a name="python-timeout-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** – Entier

Le nombre de secondes avant que la connexion au serveur ne soit interrompue. 

Ce paramètre est facultatif.

## jeton
<a name="python-token-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Un jeton d'accès fourni par AWS IAM Identity Center ou un jeton Web JSON (JWT) OpenID Connect (OIDC) fourni par un fournisseur d'identité Web AWS lié à IAM Identity Center. Votre application doit générer ce jeton en authentifiant l'utilisateur de votre application auprès d' AWS IAM Identity Center ou d'un fournisseur d'identité lié à AWS IAM Identity Center. 

Ce paramètre fonctionne avec `IdpTokenAuthPlugin`.

## token\$1type
<a name="python-token_type-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Type de jeton utilisé dans `IdpTokenAuthPlugin`.

Vous pouvez spécifier les valeurs suivantes :

**ACCESS\$1TOKEN**  
Entrez cette valeur si vous utilisez un jeton d'accès fourni par AWS IAM Identity Center.

**EXT\$1JWT**  
Entrez cette valeur si vous utilisez un jeton Web JSON (JWT) OpenID Connect (OIDC) fourni par un fournisseur d’identité Web intégré à AWS IAM Identity Center.

Ce paramètre fonctionne avec `IdpTokenAuthPlugin`.

## user
<a name="python-user-option"></a>
+ **Valeur par défaut** – Aucune
+ **Types de données** – Chaîne

Nom d'utilisateur à utiliser pour l'authentification. 

Ce paramètre est facultatif.

## web\$1identity\$1token
<a name="python-web-identity-token-option"></a>
+ **Valeur par défaut** – Aucune
+ **Type de données** : chaîne

Le jeton d'accès OAuth 2.0 ou le jeton d'identification OpenID Connect fourni par le fournisseur d'identité. Assurez-vous que votre application obtient ce jeton en authentifiant l'utilisateur de votre application auprès d'un fournisseur d'identité web. Ce paramètre est utilisé par le fournisseur indiqué par `JwtCredentialsProvider`. 

Pour le `JwtCredentialsProvider`, ce paramètre est obligatoire. Sinon, ce paramètre est facultatif.

# Importation du connecteur Python
<a name="python-start-import"></a>

Pour importer le connecteur Python, exécutez la commande suivante.

```
>>> import redshift_connector
```

Pour vous connecter à un cluster Amazon Redshift à l'aide AWS d'informations d'identification, exécutez la commande suivante.

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

# Intégrer le connecteur Python avec NumPy
<a name="python-connect-integrate-numpy"></a>

Voici un exemple d'intégration du connecteur Python avec 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)
```

Voici les résultats.

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

# Intégration du connecteur Python à pandas
<a name="python-connect-integrate-pandas"></a>

Voici un exemple d'intégration du connecteur Python à 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)
```

# Utilisation des plugins de fournisseur d'identité
<a name="python-connect-identity-provider-plugins"></a>

Pour des informations générales sur l'utilisation des plugins de fournisseur d'identité, veuillez consulter [Options visant à fournir des informations d’identification IAM](options-for-providing-iam-credentials.md). Pour plus d'informations sur la gestion des identités IAM, y compris les bonnes pratiques pour les rôles IAM, consultez [Identity and Access Management dans Amazon Redshift](redshift-iam-authentication-access-control.md).

## Authentification à l'aide du plugin du fournisseur d'identité ADFS
<a name="python-connect-identity-provider-active-dir"></a>

Voici un exemple d'utilisation du plugin du fournisseur d'identité ADFS (Active Directory Federation Service) pour authentifier un utilisateur se connectant à une base de données 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'
)
```

## Authentification à l'aide du plugin du fournisseur d'identité Azure
<a name="python-connect-identity-provider-azure"></a>

Voici un exemple d'authentification à l'aide du plugin du fournisseur d'identité Azure. Vous pouvez créer des valeurs pour un `client_id` et un `client_secret` pour une application métier Azure, comme illustré ci-dessous. 

```
>>>  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'
)
```

## Authentification à l'aide du AWS plug-in du fournisseur d'identité IAM Identity Center
<a name="python-connect-identity-provider-aws-idc"></a>

 Voici un exemple d'authentification à l'aide du plug-in de fournisseur d'identité 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
)
```

## Authentification à l'aide du plugin du fournisseur d'identité de navigateur Azure
<a name="python-connect-identity-provider-azure-browser"></a>

Voici un exemple d'utilisation du plugin du fournisseur d'identité de navigateur Azure pour authentifier un utilisateur se connectant à une base de données Amazon Redshift.

L'authentification multifacteur a lieu dans le navigateur, où les informations d'identification sont fournies par l'utilisateur.

```
>>>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',
)
```

## Authentification à l'aide du plugin du fournisseur d'identité Okta
<a name="python-connect-identity-provider-okta"></a>

Voici un exemple d'authentification à l'aide du plugin du fournisseur d'identité Okta. Vous pouvez obtenir les valeurs pour `idp_host`, `app_id` et `app_name` via l'application 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'
)
```

## Authentification à l' JumpCloud aide d'un plugin de fournisseur d'identité de navigateur SAML générique
<a name="python-connect-identity-provider-jumpcloud"></a>

Voici un exemple d'utilisation d'un plug-in JumpCloud de fournisseur d'identité de navigateur SAML générique pour l'authentification.

Le paramètre de mot de passe est obligatoire. Toutefois, il n'est pas nécessaire de saisir ce paramètre, car l'authentification multifacteur a lieu dans le navigateur.

```
>>> 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'
)
```

# Exemples d'utilisation du connecteur Amazon Redshift Python
<a name="python-connect-examples"></a>

Vous trouverez ci-dessous des exemples d'utilisation du connecteur Amazon Redshift Python. Pour les exécuter, vous devez installer au préalable le connecteur Python. Pour plus d'informations sur l'installation du connecteur Python Amazon Redshift, consultez [Installation du connecteur Amazon Redshift Python](python-driver-install.md). Pour plus d'informations sur les options de configuration que vous pouvez utiliser avec le connecteur Python, consultez [Options de configuration du connecteur Amazon Redshift Python](python-configuration-options.md).

**Topics**
+ [Connexion à un cluster Amazon Redshift et interrogation à l'aide d'informations d'identification AWS](#python-connect-cluster)
+ [Activation de la validation automatique](#python-connect-enable-autocommit)
+ [Configuration du paramstyle d'un curseur](#python-connect-config-paramstyle)
+ [Utilisation de COPY pour copier des données à partir d'un compartiment Amazon S3 et de UNLOAD pour y écrire des données](#python-connect-copy-unload-s3)

## Connexion à un cluster Amazon Redshift et interrogation à l'aide d'informations d'identification AWS
<a name="python-connect-cluster"></a>

L'exemple suivant vous explique comment vous connecter à un cluster Amazon Redshift à l'aide de vos AWS informations d'identification, puis comment interroger une table et récupérer les résultats de la requête.

```
#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'])
```

## Activation de la validation automatique
<a name="python-connect-enable-autocommit"></a>

La propriété autocommit est désactivée par défaut, conformément à la spécification de l'API de base de données Python. Vous pouvez utiliser les commandes suivantes pour activer la propriété de validation automatique de la connexion après avoir exécuté une commande de restauration pour vous assurer qu'une transaction n'est pas en cours.

```
#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
```

## Configuration du paramstyle d'un curseur
<a name="python-connect-config-paramstyle"></a>

Le paramstyle d'un curseur peut être modifié via cursor.paramstyle. Le paramstyle par défaut utilisé est `format`. Les valeurs valides pour paramstyle sont `qmark`, `numeric`, `named`, `format` et `pyformat`.

Vous trouverez ci-dessous des exemples d'utilisation de différents paramstyles pour transmettre des paramètres à un exemple d'instruction SQL.

```
# 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"})
```

## Utilisation de COPY pour copier des données à partir d'un compartiment Amazon S3 et de UNLOAD pour y écrire des données
<a name="python-connect-copy-unload-s3"></a>

L'exemple suivant montre comment copier des données depuis un compartiment Amazon S3 dans une table, puis comment les décharger de cette table dans le compartiment.

Un fichier texte nommé `category_csv.txt` contenant les données suivantes est chargé dans un compartiment 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"
```

Voici un exemple de code Python, qui se connecte d'abord à la base de données Amazon Redshift. Il crée ensuite une table appelée `category` et copie les données CSV du compartiment S3 dans la table.

```
#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 vous n'avez pas défini `autocommit` sur true, validez avec `conn.commit()` après avoir exécuté les instructions `execute()`.

Les données sont déchargées dans le fichier `unloaded_category_csv.text0000_part00` dans le compartiment S3, avec le contenu suivant :

```
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"
```

# Référence d'API pour le connecteur Amazon Redshift Python
<a name="python-api-reference"></a>

Vous trouverez ci-dessous une description des opérations d'API du connecteur Amazon Redshift Python.

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

Vous trouverez ci-dessous une description de l'opération d'API `redshift_connector`.

`connect(user, database, password[, port, …])`  
Établit une connexion à un cluster Amazon Redshift. Cette fonction valide les entrées de l'utilisateur, s'authentifie éventuellement à l'aide d'un plugin de fournisseur d'identité, puis construit un objet de connexion.

`apilevel`  
Le niveau DBAPI pris en charge, actuellement « 2.0 ».

`paramstyle``str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str`  
Style de paramètre d'API de base de données à utiliser globalement.

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

Vous trouverez ci-dessous une description des opérations d'API de connexion pour le connecteur Amazon Redshift Python.

`__init__(user, password, database[, host, …])`  
Initialise un objet de connexion brut.

`cursor`  
Crée un objet de curseur lié à cette connexion.

`commit`  
Valide la transaction de base de données actuelle.

`rollback`  
Annule la transaction de base de données actuelle.

`close`  
Ferme la connexion à la base de données.

`execute(cursor, operation, vals)`  
Exécute la commande SQL spécifiée. Vous pouvez fournir les paramètres sous forme de séquence ou de mappage, en fonction de la valeur de `redshift_connector.paramstyle`.

`run(sql[, stream])`  
Exécute la commande SQL spécifiée. Vous pouvez également fournir un flux à utiliser avec la commande COPY.

`xid(format_id, global_transaction_id, …)`  
Créez un ID de transaction. Seul le paramètre `global_transaction_id` est utilisé dans postgres. format\$1id et branch\$1qualifier ne sont pas utilisés dans postgres. Le `global_transaction_id` peut être n'importe quel identifiant de chaîne pris en charge par postgres qui renvoie un tuple (`format_id`, `global_transaction_id`, `branch_qualifier`).

`tpc_begin(xid)`  
Commence une transaction TPC avec un ID de transaction `xid` composé d'un ID de format, d'un ID de transaction global et d'un qualificateur de branche. 

`tpc_prepare`  
Effectue la première phase d'une transaction démarrée avec .tpc\$1begin.

`tpc_commit([xid])`  
Lorsqu'il est appelé sans argument, .tpc\$1commit engage une transaction TPC préalablement préparée avec .tpc\$1prepare().

`tpc_rollback([xid])`  
Lorsqu'il est appelé sans argument, .tpc\$1rollback annule une transaction TPC.

`tpc_recover`  
Renvoie une liste de transactions en attente IDs pouvant être utilisées avec .tpc\$1commit (xid) ou .tpc\$1rollback (xid).

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

Vous trouverez ci-dessous une description de l'opération d'API du curseur.

`__init__(connection[, paramstyle])`  
Initialise un objet de curseur brut.

`insert_data_bulk(filename, table_name, parameter_indices, column_names, delimiter, batch_size)`  
Exécute une instruction INSERT en bloc.

`execute(operation[, args, stream, …])`  
Exécute une opération de base de données.

`executemany(operation, param_sets)`  
Prépare une opération de base de données, puis l'exécute pour toutes les séquences de paramètres ou les mappages fournis.

`fetchone`  
Récupère la ligne suivante d'un ensemble de résultats de requête.

`fetchmany([num])`  
Récupère l'ensemble de lignes suivant d'un résultat de requête.

`fetchall`  
Récupère toutes les lignes restantes d'un résultat de requête.

`close`  
Fermez le curseur maintenant. 

`__iter__`  
Un objet de curseur peut être itéré pour récupérer les lignes d'une requête.

`fetch_dataframe([num])`  
Renvoie un dataframe des résultats de la dernière requête.

`write_dataframe(df, table)`  
Écrit le même dataframe de structure dans une base de données Amazon Redshift.

`fetch_numpy_array([num])`  
Renvoie un NumPy tableau des derniers résultats de la requête.

`get_catalogs`  
Amazon Redshift ne prend pas en charge plusieurs catalogues à partir d'une seule connexion. Amazon Redshift renvoie uniquement le catalogue actuel.

`get_tables([catalog, schema_pattern, …])`  
Renvoie les tables publiques uniques définies par l'utilisateur au sein du système.

`get_columns([catalog, schema_pattern, …])`  
Renvoie la liste de toutes les colonnes d'une table spécifique dans une base de données Amazon Redshift.

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

Voici la syntaxe du fonctionnement de l'API du AdfsCredentialsProvider plugin pour le connecteur Amazon Redshift Python. 

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

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

Voici la syntaxe du fonctionnement de l'API du AzureCredentialsProvider plugin pour le connecteur Amazon Redshift Python.

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

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

Voici la syntaxe du fonctionnement de l'API du BrowserAzureCredentialsProvider plugin pour le connecteur Amazon Redshift Python.

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

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

Voici la syntaxe du fonctionnement de l'API du BrowserSamlCredentialsProvider plugin pour le connecteur Amazon Redshift Python.

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

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

Voici la syntaxe du fonctionnement de l'API du OktaCredentialsProvider plugin pour le connecteur Amazon Redshift Python.

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

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

Voici la syntaxe du fonctionnement de l'API du PingCredentialsProvider plugin pour le connecteur Amazon Redshift Python.

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

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

Voici la syntaxe du fonctionnement de l'API du SamlCredentialsProvider plugin pour le connecteur Amazon Redshift Python.

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