

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Utilizzando il connettore Amazon Redshift per Python, puoi integrare il lavoro con [l' AWS SDK for Python (Boto3), oltre a panda e Numerical Python](https://github.com/boto/boto3) (). NumPy [Per ulteriori informazioni sui panda, consulta il repository pandas. GitHub ](https://github.com/pandas-dev/pandas) [Per ulteriori informazioni su NumPy, consulta il repository. NumPy GitHub](https://github.com/numpy/numpy) 

Il connettore Amazon Redshift Python fornisce una soluzione open source. Puoi sfogliare il codice sorgente, richiedere miglioramenti, segnalare problemi e fornire contributi. 

Per utilizzare il connettore Amazon Redshift Python, assicurati di avere Python versione 3.6 o successiva. Per ulteriori informazioni, consultare il [Contratto di patente di guida Amazon Redshift Python](https://github.com/aws/amazon-redshift-python-driver/blob/master/LICENSE). 

Il connettore Amazon Redshift Python fornisce quanto segue:
+ AWS Identity and Access Management autenticazione (IAM). Per ulteriori informazioni, consulta [Identity and Access Management in Amazon Redshift](redshift-iam-authentication-access-control.md).
+ Autenticazione del provider di identità utilizzando l'accesso alle API federate. L'accesso alle API federate è supportato per i provider di identità aziendali, come i seguenti:
  + Azure AD. Per ulteriori informazioni, consulta il post sul blog AWS Big Data [Federate Amazon Redshift access with Microsoft Azure](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-microsoft-azure-ad-single-sign-on/) AD Single Sign-on.
  + Active Directory Federation Service. Per ulteriori informazioni, consultare il Post del blog sui Big Data AWS [Federare l'accesso al cluster Amazon Redshift con Active Directory Federation Services (AD FS): parte 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. Per ulteriori informazioni, consulta il post sul blog AWS Big Data [Federate Amazon Redshift access with Okta come](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-okta-as-an-identity-provider/) provider di identità.
  + PingFederate. Per ulteriori informazioni, consulta il [PingFederate sito](https://www.pingidentity.com/en/software/pingfederate.html).
  + JumpCloud. Per ulteriori informazioni, consulta il [JumpCloud sito](https://jumpcloud.com/).
+ Tipi di dati di Amazon Redshift.

Il connettore Amazon Redshift Python implementa Python Database API Specification 2.0. Per ulteriori informazioni, consultare [PEP 249–-Specifica API del database Python v2.0](https://www.python.org/dev/peps/pep-0249/) sul sito Web Python.

**Topics**
+ [Installazione del connettore Amazon Redshift Python](python-driver-install.md)
+ [Opzioni di configurazione per il connettore Amazon Redshift Python](python-configuration-options.md)
+ [Importazione del connettore Python](python-start-import.md)
+ [Integrazione del connettore Python con NumPy](python-connect-integrate-numpy.md)
+ [Integrazione del connettore Python con panda](python-connect-integrate-pandas.md)
+ [Utilizzo di plug-in del provider di identità](python-connect-identity-provider-plugins.md)
+ [Esempi di utilizzo del connettore Python Amazon Redshift](python-connect-examples.md)
+ [Riferimento API per il connettore Python di Amazon Redshift](python-api-reference.md)

# Installazione del connettore Amazon Redshift Python
<a name="python-driver-install"></a>

Per installare il connettore Amazon Redshift Python, puoi utilizzare uno dei seguenti metodi:
+ Indice dei pacchetti Python (PyPI)
+ Conda
+ Clonazione del repository GitHub 

## Installazione del connettere Python da PyPI
<a name="python-pip-install-pypi"></a>

Per installare il connettore Python da Python Package Index (PyPI), puoi usare pip. Per farlo, esegui il comando seguente.

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

È possibile installare il connettore all'interno di un ambiente virtuale. Per farlo, esegui il comando seguente.

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

Facoltativamente, puoi installare panda e con il connettore. NumPy 

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

Per ulteriori informazioni su pip, consultare il [sito pip](https://pip.pypa.io/en/stable/).

## Installazione del connettere Python da Conda
<a name="python-pip-install-from-conda"></a>

È possibile installare il connettore Python da Anaconda.org.

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

## Installazione del connettore Python clonando il repository da GitHub AWS
<a name="python-pip-install-from-source"></a>

Per installare il connettore Python dal sorgente, clona il GitHub repository da. AWS Dopo aver installato Python e virtualenv, configurare l'ambiente e installare le dipendenze richieste eseguendo i seguenti comandi.

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

# Opzioni di configurazione per il connettore Amazon Redshift Python
<a name="python-configuration-options"></a>

Di seguito è possibile trovare le descrizioni per le opzioni che è possibile specificare per il connettore Python di Amazon Redshift. Le opzioni seguenti si applicano all’ultima versione disponibile del connettore, salvo diversamente specificato.

## id\$1chiave\$1accesso
<a name="python-access-key-id-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

La chiave di accesso per il ruolo IAM o l'utente IAM configurato per l'autenticazione database IAM. 

Questo parametro è facoltativo.

## allow\$1db\$1user\$1override
<a name="python-allow-db-user-override-option"></a>
+ **Valore predefinito** - falso
+ **Tipo di dati** - booleano

True  
Specifica che il connettore utilizza il valore `DbUser` dall'asserzione Security Assertion Markup Language (SAML).

False  
Specifica che viene usato il valore nel parametro di connessione `DbUser`.

Questo parametro è facoltativo.

## Nome\$1App
<a name="python-app-name-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il nome dell'applicazione del provider di identità (IdP) utilizzata per l'autenticazione. 

Questo parametro è facoltativo.

## application\$1name
<a name="python-application_name-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il nome dell’applicazione client da trasmettere ad Amazon Redshift a scopo di verifica. Il nome dell’applicazione fornito viene visualizzato nella colonna 'application\$1name' della tabella [SYS\$1CONNECTION\$1LOG.](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html) Ciò consente di tenere traccia e risolvere i problemi delle origini di connessione durante il debug.

Questo parametro è facoltativo.

## auth\$1profile
<a name="python-auth-profile-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il nome di un profilo di autenticazione Amazon Redshift con proprietà di connessione come JSON. Per maggiori informazioni sulla denominazione dei parametri di connessione, vedere la classe `RedshiftProperty`. La classe `RedshiftProperty` memorizza i parametri di connessione forniti dall'utente finale e, se applicabile, generati durante il processo di autenticazione IAM (per esempio, credenziali IAM temporanee). [Per ulteriori informazioni, consultate la classe. RedshiftProperty ](https://github.com/aws/amazon-redshift-python-driver/blob/master/redshift_connector/redshift_property.py#L9) 

Questo parametro è facoltativo.

## auto\$1create
<a name="python-auto-create-option"></a>
+ **Valore predefinito** - falso
+ **Tipo di dati** - booleano

Un valore che indica se creare l'utente se l'utente non esiste. 

Questo parametro è facoltativo.

## client\$1id
<a name="python-client-id-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

L'ID client da Azure IdP. 

Questo parametro è facoltativo.

## client\$1secret
<a name="python-client-secret-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il client segreto da Azure IdP. 

Questo parametro è facoltativo.

## cluster\$1identifier
<a name="python-cluster-identifier-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

L'identificatore del cluster del cluster Amazon Redshift. 

Questo parametro è facoltativo.

## credentials\$1provider
<a name="python-credential-provider-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

L'IdP utilizzato per l'autenticazione con Amazon Redshift. I seguenti valori sono validi: 
+ `AdfsCredentialsProvider`
+ `AzureCredentialsProvider`
+ `BrowserAzureCredentialsProvider`
+ `BrowserAzureOAuth2CredentialsProvider`
+ `BrowserIdcAuthPlugin`: un plugin di autorizzazione che utilizza Centro identità AWS IAM.
+ `BrowserSamlCredentialsProvider`
+ `IdpTokenAuthPlugin`— Un plug-in di autorizzazione che accetta un token AWS IAM Identity Center o token di identità (JWT) basati su JSON OpenID Connect (OIDC) da qualsiasi provider di identità Web collegato a IAM Identity Center. AWS 
+ `PingCredentialsProvider`
+ `OktaCredentialsProvider`

Questo parametro è facoltativo.

## database
<a name="python-database-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Scegliere il nome del database a cui connettersi. 

Questo parametro è obbligatorio.

## database\$1metadata\$1current\$1db\$1only
<a name="python-database-metadata-current-db-only-option"></a>
+ **Valore predefinito** - vero
+ **Tipo di dati** - booleano

Un valore che indica se un'applicazione supporta cataloghi multidatabase di condivisione dati. Il valore predefinito di True indica che l'applicazione non supporta i cataloghi multidatabase di condivisione dati per la compatibilità con le versioni precedenti. 

Questo parametro è facoltativo.

## db\$1groups
<a name="python-db-groups-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Un elenco separato da virgole di nomi di gruppi di database esistenti a cui l'utente ha indicato si unisce per la sessione corrente. DbUser 

Questo parametro è facoltativo.

## db\$1user
<a name="python-db-user-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

L'ID utente da utilizzare con Amazon Redshift. 

Questo parametro è facoltativo.

## endpoint\$1url
<a name="python-endpoint-url-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

L'URL dell'endpoint Amazon Redshift. Questa opzione è solo per uso interno. AWS 

Questo parametro è facoltativo.

## group\$1federation
<a name="python-group-federation-option"></a>
+ **Valore predefinito** - falso
+ **Tipo di dati** - booleano

Questa opzione specifica se utilizzare i gruppi IDP di Amazon Redshift.

Questo parametro è facoltativo.

**true**  
Utilizzare i gruppi di Identity Provider (IDP) di Amazon Redshift.

**false**  
Usa l'API STS e GetClusterCredentials per la federazione degli utenti e specifica **db\$1groups** per la connessione.

## host
<a name="python-host-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Nome host del cluster Amazon Redshift. 

Questo parametro è facoltativo.

## iam
<a name="python-iam-option"></a>
+ **Valore predefinito** - falso
+ **Tipo di dati** - booleano

L'autenticazione IAM è abilitata. 

Questo parametro è obbligatorio.

## iam\$1disable\$1cache
<a name="python-iam-disable-cache-option"></a>
+ **Valore predefinito** - falso
+ **Tipo di dati** - booleano

Questa opzione specifica se le credenziali IAM vengono memorizzate nella cache. Per impostazione predefinita, le credenziali IAM sono memorizzate nella cache. Questo migliora le prestazioni quando le richieste al gateway API sono strozzate. 

Questo parametro è facoltativo.

## idc\$1client\$1display\$1name
<a name="python-idc_client_display_name-option"></a>
+ **Valore predefinito**: connettore Python Amazon Redshift
+ **Tipo di dati**: stringa

Il nome visualizzato da utilizzare per il client che sta utilizzando. BrowserIdcAuthPlugin

Questo parametro è facoltativo.

## idc\$1region
<a name="python-idc_region"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

La AWS regione in cui si trova l'istanza di AWS IAM Identity Center.

Questo parametro è obbligatorio solo per l’autenticazione tramite `BrowserIdcAuthPlugin` nell’opzione di configurazione credentials\$1provider.

## idp\$1partition
<a name="python-idp_partition-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Speciifica la partizione cloud in cui è configurato il tuo provider di identità (IdP). Ciò determina a quale endpoint di autenticazione IdP si connette il driver.

Se questo parametro viene lasciato vuoto, per impostazione predefinita il driver utilizza la partizione commerciale. I valori possibili sono:
+  `us-gov`: usa questo valore se il tuo IdP è configurato in Azure per enti pubblici. Ad esempio, Azure AD Government usa l'endpoint. `login.microsoftonline.us`
+  `cn`: Usa questo valore se il tuo IdP è configurato nella partizione cloud della Cina. Ad esempio, Azure AD Cina usa l'endpoint`login.chinacloudapi.cn`. 

Questo parametro è facoltativo.

## idpPort
<a name="python-idp-port-option"></a>
+ **Valore predefinito** - 7890
+ **Tipo di dati** - numero intero

La porta di ascolto a cui IdP invia l'asserzione SAML. 

Questo parametro è obbligatorio.

## idP\$1Response\$1Timeout
<a name="python-idp-response-timeout-option"></a>
+ **Valore predefinito** – 120
+ **Tipo di dati** - numero intero

Il timeout per il recupero dell'asserzione SAML da IdP. 

Questo parametro è obbligatorio.

## idp\$1tenant
<a name="python-idp-tenant-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il tenant IdP. 

Questo parametro è facoltativo.

## issuer\$1url
<a name="python-issuer_url"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

 Punta all'endpoint dell'istanza del server AWS IAM Identity Center. 

Questo parametro è obbligatorio solo per l’autenticazione tramite `BrowserIdcAuthPlugin` nell’opzione di configurazione credentials\$1provider.

## listen\$1port
<a name="python-listen-port-option"></a>
+ **Valore predefinito** - 7890
+ **Tipo di dati** - numero intero

La porta utilizzata dal driver per ricevere la risposta SAML dal provider di identità o dal codice di autorizzazione quando si usano i servizi SAML, Azure AD o AWS IAM Identity Center tramite un plug-in del browser.

Questo parametro è facoltativo.

## login\$1url
<a name="python-login-url-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

L'URL Single Sign-On per l'IdP. 

Questo parametro è facoltativo.

## max\$1prepared\$1statement
<a name="python-max-prepared-statements-option"></a>
+ **Valore predefinito**: 1000
+ **Tipo di dati** - numero intero

Il numero massimo di istruzioni preparate che possono essere memorizzate nella cache per connessione. Impostando questo parametro su 0, puoi disabilitare il meccanismo di memorizzazione nella cache. Se inserisci un numero negativo per questo parametro, viene impostato il valore predefinito. 

Questo parametro è facoltativo.

## numeric\$1to\$1float
<a name="python-numeric-to-float-option"></a>
+ **Valore predefinito** - falso
+ **Tipo di dati** - booleano

Questa opzione specifica se il connettore converte i valori del tipo di dati numerici da decimal.Decimal in float. Per impostazione predefinita, il connettore riceve i valori del tipo di dati numerici come decimal.Decimal e non li converte. 

Non è consigliabile abilitare numeric\$1to\$1float per casi d'uso che richiedono precisione, poiché i risultati potrebbero essere arrotondati. 

Per ulteriori informazioni su decimal.Decimal e i compromessi tra esso e float, consulta [decimal — Decimal fixed point and floating point arithmetic](https://docs.python.org/3/library/decimal.html) (decimal — Decimale a punto fisso e aritmetica a virgola mobile) sul sito Web Python. 

Questo parametro è facoltativo.

## partner\$1sp\$1id
<a name="python-partner-sp-id-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

L'ID SP partner utilizzato per l'autenticazione con Ping. 

Questo parametro è facoltativo.

## password
<a name="python-password-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

La password da utilizzare per l'autenticazione. 

Questo parametro è facoltativo.

## port
<a name="python-port-option"></a>
+ **Valore di default**: 5439
+ **Tipo di dati** - numero intero

Il numero della porta del cluster Amazon Redshift. 

Questo parametro è obbligatorio.

## preferred\$1role
<a name="python-preferred-role-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il ruolo IAM preferito per la connessione corrente. 

Questo parametro è facoltativo.

## principal\$1arn
<a name="python-principal-arn-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il nome della risorsa Amazon (ARN) dell'utente o del ruolo IAM per il quale si genera la policy. Si consiglia di collegare una policy a un ruolo e assegnare il ruolo all'utente per l'accesso. 

Questo parametro è facoltativo.

## profile
<a name="python-profile-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il nome di un profilo in un file di AWS credenziali che contiene credenziali. AWS 

Questo parametro è facoltativo.

## provider\$1name
<a name="python-provider_name-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il nome del Redshift Native Authentication Provider. 

Questo parametro è facoltativo.

## region
<a name="python-region-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

La posizione Regione AWS in cui si trova il cluster. 

Questo parametro è facoltativo.

## role\$1arn
<a name="python-role-arn-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

L'Amazon Resource Name (ARN) del ruolo che il chiamante sta assumendo. Questo parametro viene utilizzato dal provider indicato da `JwtCredentialsProvider`. 

Per il provider `JwtCredentialsProvider`, questo parametro è obbligatorio. Questo parametro è facoltativo.

## role\$1session\$1name
<a name="python-role-session-name-option"></a>
+ **Valore predefinito** - sessione\$1jwt\$1redshift
+ **Tipo di dati** - stringa

Un identificatore della sessione del ruolo assunto. In genere, si passa il nome o l'identificatore associato all'utente che sta utilizzando l'applicazione. Le credenziali di sicurezza temporanee utilizzate dall'applicazione sono associate a tale utente. Questo parametro viene utilizzato dal provider indicato da `JwtCredentialsProvider`. 

Questo parametro è facoltativo.

## scope
<a name="python-scope-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Un elenco separato da spazi contenente ambiti ai quali l'utente può acconsentire. Specificate questo parametro in modo che l'applicazione possa ottenere il consenso per la chiamata APIs che desiderate chiamare. È possibile specificare questo parametro quando si specifica BrowserAzure OAuth2 CredentialsProvider l'opzione credentials\$1provider.

Questo parametro è obbligatorio per il plug-in. BrowserAzure OAuth2 CredentialsProvider

## secret\$1access\$1key\$1id
<a name="python-secret-access-key-id-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

La chiave di accesso segreta per il ruolo IAM o l'utente configurato per l'autenticazione database IAM. 

Questo parametro è facoltativo.

## session\$1token
<a name="python-session-token-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

La chiave di accesso per il ruolo IAM o l'utente IAM configurato per l'autenticazione database IAM. Questo parametro è obbligatorio se vengono utilizzate AWS credenziali temporanee. 

Questo parametro è facoltativo.

## serverless\$1acct\$1id
<a name="python-serverless-acct-id-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

L'ID account di Amazon Redshift Serverless.

Questo parametro è facoltativo.

## serverless\$1work\$1group
<a name="python-serverless-work-group-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il nome del gruppo di lavoro di Amazon Redshift Serverless.

Questo parametro è facoltativo.

## ssl
<a name="python-ssl-option"></a>
+ **Valore predefinito** - vero
+ **Tipo di dati** - booleano

Secure Sockets Layer (SSL) è abilitato. 

Questo parametro è obbligatorio.

## ssl\$1insecure
<a name="python-ssl-insecure-option"></a>
+ **Valore predefinito** - falso
+ **Tipo di dati** - booleano

Un valore che specifica se disabilitare o meno la verifica del certificato SSL del server dell’host del gestore dell’identità digitale. Se imposti questo parametro su True, disabiliti la verifica del certificato SSL del server dell’host del gestore dell’identità digitale. Consigliamo di mantenere il valore predefinito False negli ambienti di produzione.

Questo parametro è facoltativo.

## sslmode
<a name="python-sslmode-option"></a>
+ **Valore predefinito** - verify-ca
+ **Tipo di dati** - stringa

La sicurezza della connessione ad Amazon Redshift. Puoi specificare uno dei seguenti: 
+ verify-ca
+ verify-full

Questo parametro è obbligatorio.

## tcp\$1keepalive
<a name="python-tcp_keepalive-option"></a>
+ **Valore predefinito** - vero
+ **Tipo di dati** - booleano

Se utilizzare keepalive TCP al fine di impedire il timeout delle connessioni. Puoi specificare le seguenti valori:
+ True: il driver utilizza i keepalive TCP al fine di impedire il timeout delle connessioni.
+ False: il driver non utilizza keepalive TCP.

Questo parametro è facoltativo.

## tcp\$1keepalive\$1count
<a name="python-tcp_keepalive_count-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - numero intero

Il numero di sonde non riconosciute da inviare prima di considerare la connessione inattiva. Ad esempio, se imposti il valore su 3, significa che il driver invia tre pacchetti keepalive senza risposta prima di determinare che la connessione non è più attiva.

Se questo parametro non è specificato, Amazon Redshift utilizza il valore predefinito del sistema.

Questo parametro è facoltativo.

## tcp\$1keepalive\$1interval
<a name="python-tcp_keepalive_interval-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - numero intero

L’intervallo, in secondi, tra le sonde keepalive successive se il driver non ha ricevuto la conferma della sonda precedente. Se specifichi questo parametro, deve essere un numero intero positivo.

Se questo parametro non è specificato, Amazon Redshift utilizza il valore predefinito del sistema.

Questo parametro è facoltativo.

## tcp\$1keepalive\$1idle
<a name="python-tcp_keepalive_idle-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - numero intero

La durata dell’inattività, in secondi, dopo la quale il driver invia la prima sonda keepalive. Ad esempio, se imposti il valore su 120, significa che il driver aspetta due minuti di inattività prima di inviare il primo pacchetto keepalive. Se specifichi questo parametro, deve essere un numero intero positivo. 

Se questo parametro non è specificato, Amazon Redshift utilizza il valore predefinito del sistema.

Questo parametro è facoltativo.

## timeout
<a name="python-timeout-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - numero intero

Il numero di secondi prima del timeout della connessione al server. 

Questo parametro è facoltativo.

## token
<a name="python-token-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Un token di accesso fornito da AWS IAM Identity Center o un token Web JSON (JWT) OpenID Connect (OIDC) fornito da un provider di identità Web collegato a IAM Identity Center. AWS L'applicazione deve generare questo token autenticando l'utente dell'applicazione con AWS IAM Identity Center o un provider di identità collegato a IAM Identity Center. AWS 

Questo parametro funziona con `IdpTokenAuthPlugin`.

## token\$1type
<a name="python-token_type-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il tipo di token che viene utilizzato in `IdpTokenAuthPlugin`.

Puoi specificare le seguenti valori:

**ACCESS\$1TOKEN**  
Inseriscilo se utilizzi un token di accesso fornito da AWS IAM Identity Center.

**EXT\$1JWT**  
Inserisci questo valore se utilizzi un JSON Web Token (JWT) OpenID Connect (OIDC) fornito da un provider di identità basato sul web integrato con Centro identità AWS IAM.

Questo parametro funziona con `IdpTokenAuthPlugin`.

## user
<a name="python-user-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il nome utente da utilizzare per l'autorizzazione. 

Questo parametro è facoltativo.

## web\$1identity\$1token
<a name="python-web-identity-token-option"></a>
+ **Valore predefinito** - nessuno
+ **Tipo di dati** - stringa

Il token di accesso OAuth 2.0 o token OpenID Connect ID fornito dal provider di identità. Assicurarsi che l'applicazione ottenga questo token autenticando l'utente dell'applicazione con un provider di identità Web. Il provider indicato da `JwtCredentialsProvider` utilizza questo parametro. 

Per il provider `JwtCredentialsProvider`, questo parametro è obbligatorio. Questo parametro è facoltativo.

# Importazione del connettore Python
<a name="python-start-import"></a>

Per importare il connettore Python, esegui il comando seguente.

```
>>> import redshift_connector
```

Per connetterti a un cluster Amazon Redshift utilizzando AWS le credenziali, esegui il comando seguente.

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

# Integrazione del connettore Python con NumPy
<a name="python-connect-integrate-numpy"></a>

Di seguito è riportato un esempio di integrazione del connettore Python con. 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)
```

Di seguito è riportato il risultato.

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

# Integrazione del connettore Python con panda
<a name="python-connect-integrate-pandas"></a>

Di seguito è riportato un esempio di integrazione del connettore Python con panda.

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

# Utilizzo di plug-in del provider di identità
<a name="python-connect-identity-provider-plugins"></a>

Per informazioni generali su come utilizzare i plugin del provider di identità, consultare [Opzioni per fornire credenziali IAM](options-for-providing-iam-credentials.md). Per ulteriori informazioni sulla gestione delle identità IAM, comprese le best practice per i ruoli IAM, consulta [Identity and Access Management in Amazon Redshift](redshift-iam-authentication-access-control.md).

## Autenticazione tramite il plugin del provider di identità ADFS
<a name="python-connect-identity-provider-active-dir"></a>

Di seguito è riportato un esempio di utilizzo del plugin del provider di identità ADFS (Active Directory Federation Service) per autenticare un utente che si connette a un database 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'
)
```

## Autenticazione tramite il plugin del provider di identità Azure
<a name="python-connect-identity-provider-azure"></a>

Di seguito è riportato un esempio di autenticazione utilizzando il plugin del provider di identità di Azure. È possibile creare valori per un `client_id` e `client_secret` per un'applicazione Azure Enterprise come illustrato di seguito. 

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

## Autenticazione tramite il plug-in del AWS provider di identità IAM Identity Center
<a name="python-connect-identity-provider-aws-idc"></a>

 Di seguito è riportato un esempio di autenticazione utilizzando il plug-in del provider di 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
)
```

## Autenticazione tramite il plugin del provider di identità Azure Browser
<a name="python-connect-identity-provider-azure-browser"></a>

Di seguito è riportato un esempio di utilizzo del plugin del provider di identità del Browser Azure per autenticare un utente che si connette a un database Amazon Redshift.

L'autenticazione a più fattori avviene nel browser, dove le credenziali di accesso sono fornite dall'utente.

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

## Autenticazione tramite il plugin del provider di identità Okta
<a name="python-connect-identity-provider-okta"></a>

Di seguito è riportato un esempio di autenticazione utilizzando il plugin del provider di identità di Okta. È possibile ottenere i valori per `idp_host` ,`app_id` e `app_name` tramite l'applicazione 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'
)
```

## Autenticazione tramite JumpCloud un plug-in generico per il provider di identità del browser SAML
<a name="python-connect-identity-provider-jumpcloud"></a>

Di seguito è riportato un esempio di utilizzo JumpCloud con un plug-in generico SAML per l'autenticazione del browser Identity Provider.

Il parametro password è obbligatorio. Tuttavia, non è necessario immettere questo parametro perché l'autenticazione a più fattori avviene nel browser.

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

# Esempi di utilizzo del connettore Python Amazon Redshift
<a name="python-connect-examples"></a>

Di seguito sono riportati degli esempio di utilizzo del connettore Python Amazon Redshift. Per eseguirli, è prima necessario installare il connettore Python. Per ulteriori informazioni sull'installazione del connettore Amazon Redshift Python, consulta [Installazione del connettore Amazon Redshift Python](python-driver-install.md). Per ulteriori informazioni sulle opzioni di configurazione che è possibile utilizzare con il connettore Python, consulta [Opzioni di configurazione per il connettore Amazon Redshift Python](python-configuration-options.md).

**Topics**
+ [Connessione e interrogazione di un cluster Amazon Redshift tramite credenziali AWS](#python-connect-cluster)
+ [Abilitazione di autocommit](#python-connect-enable-autocommit)
+ [Configurazione del paramstyle del cursore](#python-connect-config-paramstyle)
+ [Utilizzo di COPY e UNLOAD rispettivamente per copiare e scrivere dati in un bucket Amazon S3](#python-connect-copy-unload-s3)

## Connessione e interrogazione di un cluster Amazon Redshift tramite credenziali AWS
<a name="python-connect-cluster"></a>

L'esempio seguente ti guida nella connessione a un cluster Amazon Redshift utilizzando AWS le tue credenziali, quindi nell'interrogazione di una tabella e nel recupero dei risultati della query.

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

## Abilitazione di autocommit
<a name="python-connect-enable-autocommit"></a>

La proprietà autocommit è disattivata per impostazione predefinita, seguendo la specifica dell'API del database Python. Per attivare la proprietà autocommit della connessione, è possibile utilizzare i comandi riportati di seguito dopo aver eseguito un comando di ripristino dello stato precedente per assicurarsi che non sia in corso una transazione.

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

## Configurazione del paramstyle del cursore
<a name="python-connect-config-paramstyle"></a>

Il paramstyle di un cursore può essere modificato utilizzando cursor.paramstyle. Il paramstyle predefinito usato è `format`. I valori validi per il paramstyle sono `qmark`, `numeric`, `named`, `format` e `pyformat`.

Di seguito sono riportati alcuni esempi di utilizzo di vari paramstyle per passare i parametri a un'istruzione SQL di esempio.

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

## Utilizzo di COPY e UNLOAD rispettivamente per copiare e scrivere dati in un bucket Amazon S3
<a name="python-connect-copy-unload-s3"></a>

L'esempio seguente mostra come copiare i dati da un bucket Amazon S3 in una tabella e quindi scaricarli da tale tabella nel bucket.

Un file di testo denominato `category_csv.txt` contenente i seguenti dati viene caricato in un bucket 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"
```

Di seguito è riportato un esempio del codice Python, che per primo si connette al database Amazon Redshift. Quindi crea una tabella chiamata `category` e copia i dati CSV dal bucket S3 nella tabella.

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

Se `autocommit` non è impostato su True, esegui il commit con `conn.commit()` dopo aver eseguito le istruzioni `execute()`.

I dati vengono scaricati nel file `unloaded_category_csv.text0000_part00` nel bucket S3 contenente quanto segue:

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

# Riferimento API per il connettore Python di Amazon Redshift
<a name="python-api-reference"></a>

Di seguito, puoi trovare una descrizione delle operazioni API del connettore Python di Amazon Redshift.

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

Di seguito è riportata una descrizione dell'operazione API `redshift_connector`.

`connect(user, database, password[, port, …])`  
Stabilisce una connessione a un cluster Amazon Redshift. Questa funzione convalida l'input dell'utente, facoltativamente si autentica utilizzando un plugin del provider di identità e quindi crea un oggetto di connessione.

`apilevel`  
Il livello DBAPI supportato, attualmente "2.0".

`paramstyle``str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str`  
Lo stile dei parametri API del database da utilizzare a livello globale.

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

Di seguito, puoi trovare una descrizione delle operazioni API di connessi per il connettore Python di Amazon Redshift.

`__init__(user, password, database[, host, …])`  
Inizializza un oggetto di connessione raw.

`cursor`  
Crea un oggetto cursore associato a questa connessione.

`commit`  
Esegue il commit della transazione corrente del database.

`rollback`  
Ripristina la transazione corrente del database.

`close`  
Chiude la connessione del database.

`execute(cursor, operation, vals)`  
Esegue i comandi SQL specificati. È possibile fornire i parametri come sequenza o come mappatura, a seconda del valore di `redshift_connector.paramstyle`.

`run(sql[, stream])`  
Esegue i comandi SQL specificati. In alternativa, puoi fornire un flusso da utilizzare con il comando COPY.

`xid(format_id, global_transaction_id, …)`  
Crea un ID transazione. Solo il parametro `global_transaction_id` è usato in postgres. format\$1id e branch\$1qualifier non vengono utilizzati in postgres. La `global_transaction_id` può essere qualsiasi identificatore di stringa supportato da postgres che restituisce una tupla (`format_id`, `global_transaction_id`, `branch_qualifier`).

`tpc_begin(xid)`  
Inizia una transazione TPC con un ID transazione `xid` costituito da un ID formato, un ID transazione globale e un qualificatore di filiale. 

`tpc_prepare`  
Esegue la prima fase di una transazione iniziata con .tpc\$1begin.

`tpc_commit([xid])`  
Quando viene chiamato senza argomenti, .tpc\$1commit commette una transazione TPC precedentemente preparata con .tpc\$1prepare ().

`tpc_rollback([xid])`  
Quando viene chiamato senza argomenti, .tpc\$1rollback ripristina una transazione TPC.

`tpc_recover`  
Restituisce un elenco di transazioni in sospeso IDs adatte all'uso con .tpc\$1commit (xid) o .tpc\$1rollback (xid).

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

Di seguito, potete trovare una descrizione dell'operazione API del cursore.

`__init__(connection[, paramstyle])`  
Inizializza un oggetto cursore non elaborato.

`insert_data_bulk(filename, table_name, parameter_indices, column_names, delimiter, batch_size)`  
Esegue un'istruzione INSERT in blocco.

`execute(operation[, args, stream, …])`  
Esegue un'operazione di database.

`executemany(operation, param_sets)`  
Prepara un'operazione di database e quindi la esegue per tutte le sequenze di parametri o mappature fornite.

`fetchone`  
Recupera la riga successiva di un set di risultati della query.

`fetchmany([num])`  
Recupera il prossimo set di righe del risultato di una query.

`fetchall`  
Recupera tutte le righe rimanenti di un risultato di una query.

`close`  
Chiude il cursore adesso. 

`__iter__`  
Un oggetto cursore può essere iterato per recuperare le righe da una query.

`fetch_dataframe([num])`  
Restituisce un dataframe dei risultati dell'ultima query.

`write_dataframe(df, table)`  
Scrive lo stesso dataframe della struttura in un database Amazon Redshift.

`fetch_numpy_array([num])`  
Restituisce una NumPy matrice dei risultati dell'ultima query.

`get_catalogs`  
Amazon Redshift non supporta più cataloghi provenienti da una singola connessione. Amazon Redshift restituisce solo il catalogo corrente.

`get_tables([catalog, schema_pattern, …])`  
Restituisce le tabelle pubbliche univoche definite dall'utente all'interno del sistema.

`get_columns([catalog, schema_pattern, …])`  
Restituisce un elenco di tutte le colonne di una tabella specifica in un database Amazon Redshift.

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

Di seguito è riportata la sintassi per il funzionamento dell'API del AdfsCredentialsProvider plug-in per il connettore Amazon Redshift Python. 

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

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

Di seguito è riportata la sintassi per il funzionamento dell'API del AzureCredentialsProvider plug-in per il connettore Amazon Redshift Python.

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

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

Di seguito è riportata la sintassi per il funzionamento dell'API del BrowserAzureCredentialsProvider plug-in per il connettore Amazon Redshift Python.

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

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

Di seguito è riportata la sintassi per il funzionamento dell'API del BrowserSamlCredentialsProvider plug-in per il connettore Amazon Redshift Python.

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

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

Di seguito è riportata la sintassi per il funzionamento dell'API del OktaCredentialsProvider plug-in per il connettore Amazon Redshift Python.

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

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

Di seguito è riportata la sintassi per il funzionamento dell'API del PingCredentialsProvider plug-in per il connettore Amazon Redshift Python.

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

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

Di seguito è riportata la sintassi per il funzionamento dell'API del SamlCredentialsProvider plug-in per il connettore Amazon Redshift Python.

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