

 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à.

# Eseguire query su un database
<a name="query-databases"></a>

Per eseguire query sui database ospitati dal cluster Amazon Redshift, sono disponibili due opzioni:
+ Connect al cluster ed esegui query Console di gestione AWS con l'editor di query. 

  Se l'editor di query viene utilizzato sulla console Amazon Redshift, non è necessario scaricare e configurare un'applicazione client SQL. 
+ Connettiti al cluster con uno strumento client SQL, ad esempio SQL Workbench/J. 

  Amazon Redshift supporta strumenti client SQL che si connettono tramite Java Database Connectivity (JDBC) e Open Database Connectivity (ODBC). Amazon Redshift non fornisce né installa alcuna libreria o alcuno strumento client SQL, pertanto al fine di utilizzarli è necessario installarli sul computer client o su un'istanza Amazon EC2. Puoi usare la maggior parte degli strumenti del client SQL che supportano i driver JDBC o ODBC.

**Nota**  
 Quando si scrivono le stored procedure, si consiglia di attenersi a una best practice per proteggere i valori sensibili:   
 Non eseguire la codifica fissa delle informazioni sensibili nella logica delle procedure archiviate. Ad esempio, non assegnare una password utente in un'istruzione CREATE USER nel corpo di una procedura archiviata. Ciò rappresenta un rischio per la sicurezza, poiché i valori con codifica fissa possono essere registrati come metadati dello schema nelle tabelle del catalogo. È invece consigliabile passare i valori sensibili, ad esempio le password, come argomenti alla procedura archiviata, mediante parametri.   
Per ulteriori informazioni sulle procedure archiviate, consulta [CREATE PROCEDURE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_PROCEDURE.html) e [Creazione di procedure archiviate in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-overview.html). Per ulteriori informazioni sulle tabelle di catalogo, consulta [Tabelle di catalogo di sistema](https://docs.aws.amazon.com/redshift/latest/dg/c_intro_catalog_views.html).

# Connessione ad Amazon Redshift
<a name="cluster-syntax"></a>

Puoi connetterti al database utilizzando la sintassi seguente.

```
cluster-name.account-number.aws-region.redshift.amazonaws.com/database-name
```

Gli elementi della sintassi sono definiti come segue.
+  `cluster-name` 

   Il nome del cluster. 
+  `account-number` 

   L'identificatore univoco associato al tuo numero di AWS conto in un dato momento. Regione AWS Tutti i cluster creati da un determinato account in una determinata Regione AWS hanno lo stesso `account-number`. 
+  `aws-region` 

   Il codice in cui Regione AWS si trova il cluster. 
+  `database-name` 

   Il nome del database. 

Ad esempio, la seguente stringa di connessione specifica il `my-db` database nel `my-cluster` cluster Regione AWS us-east-1.

```
my-cluster.123456789012.us-east-1.redshift.amazonaws.com/my-db
```

# Esecuzione di query su un database con Query Editor V2
<a name="query-editor-v2"></a>

L'editor di query v2 è un'applicazione client SQL basata sul Web separata che utilizzi per creare ed eseguire query sul data warehouse Amazon Redshift. L'editor di query v2 viene utilizzato principalmente per modificare ed eseguire query, visualizzare i risultati e condividere il lavoro con il team. Con Query Editor v2, è possibile creare database, schemi, tabelle e funzioni definite dall'utente (). UDFs In un pannello con struttura ad albero, per ciascuno dei database, puoi visualizzarne gli schemi. Per ogni schema, è possibile visualizzarne le tabelle, le viste e le stored UDFs procedure. L'editor di query v2 è un sostituto del precedente editor di query. 

**Nota**  
L'editor di query v2 è disponibile in commercio Regioni AWS. Per un elenco delle aree Regioni AWS in cui è disponibile l'editor di query v2, consulta gli endpoint elencati per [Redshift query editor](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) v2 in. *Riferimenti generali di Amazon Web Services* 

Per una demo dell'editor di query v2, guardare i video seguenti. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/IwZNIroJUnc/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/IwZNIroJUnc)


[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/4EIV4XTE9iI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/4EIV4XTE9iI)


[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/7y-f1wlyVhI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/7y-f1wlyVhI)


L'editor di query v2 ha un ricco set di funzionalità per gestire ed eseguire le istruzioni SQL. Gli argomenti nelle sezioni seguenti ti consentono di iniziare con molte di queste funzionalità. Esplora l'editor di query v2 da solo per familiarizzare con le sue capacità. 

# Configurazione del Account AWS
<a name="query-editor-v2-getting-started"></a>

Puoi eseguire questo set di attività per configurare l'editor di query v2 per interrogare un database Amazon Redshift. Con le autorizzazioni appropriate, puoi accedere ai dati in un cluster o gruppo di lavoro Amazon Redshift di tua proprietà che si trova attualmente. Account AWS Regione AWS

La prima volta che un amministratore configura l'editor di query v2 per te Account AWS, sceglie quello da utilizzare per crittografare le risorse dell' AWS KMS key editor di query v2. Per impostazione predefinita, viene utilizzata una chiave AWS proprietaria per crittografare le risorse. In alternativa un amministratore può utilizzare una chiave gestita dal cliente scegliendo il nome della risorsa Amazon (ARN) per la chiave nella pagina di configurazione. 

Dopo aver configurato un account, le impostazioni di AWS KMS crittografia non possono essere modificate. Per ulteriori informazioni sulla creazione e l'utilizzo di una chiave gestita dal cliente con l'editor di query v2, consultare [Creazione di una chiave gestita dal AWS KMS cliente da utilizzare con Query Editor v2](#query-editor-v2-kms-key). L'amministratore può anche scegliere facoltativamente S3 bucket (Bucket S3) e un percorso utilizzati per alcune funzionalità, come il caricamento di dati da un file. Per ulteriori informazioni, consulta [Caricamento di dati da una configurazione di file e da un flusso di lavoro locali](query-editor-v2-loading-data-local.md). 

L'editor di query v2 di Amazon Redshift supporta l'autenticazione, la crittografia, l'isolamento e la conformità per mantenere al sicuro i dati a riposo e i dati in transito. Per ulteriori informazioni sulla sicurezza dei dati e sull'editor di query v2, consultare: 
+ [Crittografia dei dati a riposo](security-server-side-encryption.md)
+ [Crittografia dei dati in transito](security-encryption-in-transit.md)
+ [Analisi della configurazione e delle vulnerabilità in Amazon Redshift](security-vulnerability-analysis-and-management.md)

AWS CloudTrail acquisisce le chiamate API e gli eventi correlati effettuati da o per conto tuo Account AWS e invia i file di log a un bucket Amazon S3 da te specificato. Puoi identificare quali utenti e account hanno chiamato AWS, l'indirizzo IP di origine da cui sono state effettuate le chiamate e quando sono avvenute le chiamate. Per ulteriori informazioni su come l'editor di query V2 funziona su AWS CloudTrail, consulta [Registrazione dei log con CloudTrail](logging-with-cloudtrail.md). Per ulteriori informazioni in merito CloudTrail, consulta la [Guida AWS CloudTrail per l'utente](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). 

L'editor di query v2 ha quote regolabili per alcune delle sue risorse. Per ulteriori informazioni, consulta [Quote per gli oggetti Amazon Redshift](amazon-redshift-limits.md#amazon-redshift-limits-quota). 

## Risorse create con l'editor di query v2
<a name="query-editor-v2-resources"></a>

All'interno dell'editor di query v2, è possibile creare risorse come query e grafici salvati. Tutte le risorse nell'editor di query v2 sono associate a un utente o un ruolo IAM. Consigliamo di collegare le policy a un ruolo IAM e di assegnare il ruolo a un utente.

Nell'editor di query v2, è possibile aggiungere e rimuovere tag per query e grafici salvati. È possibile utilizzare questi tag quando si impostano criteri IAM personalizzati o per cercare risorse. Puoi anche gestire i tag utilizzando il AWS Resource Groups Tag Editor.

Puoi configurare i ruoli IAM con le policy IAM per condividere le query con altri membri del Regione AWS tuo stesso account Account AWS in.

## Creazione di una chiave gestita dal AWS KMS cliente da utilizzare con Query Editor v2
<a name="query-editor-v2-kms-key"></a>

**Per creare una chiave di crittografia simmetrica gestita dal cliente**:

È possibile creare una chiave di crittografia simmetrica gestita dal cliente per crittografare le risorse dell'editor di query v2 utilizzando le operazioni della AWS KMS console o dell'API. AWS KMS *Per istruzioni sulla creazione di una chiave, consulta [Creazione di una chiave di crittografia AWS KMS simmetrica](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) nella Guida per gli sviluppatori.AWS Key Management Service *

**Policy della chiave**

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, è possibile specificare una policy della chiave. Per ulteriori informazioni, consulta [Gestire l'accesso alle AWS KMS chiavi nella Guida per](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access) gli *AWS Key Management Service sviluppatori*. 

Per utilizzare la chiave gestita dal cliente con Amazon Redshift query editor v2, è necessario che le seguenti operazioni API siano consentite nella policy chiave: 
+ `kms:GenerateDataKey` — Genera una chiave dati simmetrica univoca per crittografare i tuoi dati.
+ `kms:Decrypt` — Decritta i dati crittografati con la chiave gestita dal cliente.
+ `kms:DescribeKey` — Fornisce i dettagli della chiave gestiti dal cliente per consentire al servizio di convalidare la chiave. 

Di seguito è riportato un esempio di AWS KMS politica per Account AWS `111122223333`. Nella prima sezione, il `kms:ViaService` limita l'uso della chiave al servizio dell'editor di query v2 (che è denominato `sqlworkbench.region.amazonaws.com` nella policy). L' Account AWS utilizzo della chiave deve essere`111122223333`. Nella seconda sezione, l'utente root e gli amministratori chiave di Account AWS `111122223333` possono accedere alla chiave.

 Quando si crea una Account AWS, si inizia con un'identità di accesso denominata *utente Account AWS root* che ha accesso completo a tutte Servizi AWS le risorse. Consigliamo vivamente di non utilizzare l’utente root per le attività quotidiane. Per le attività che richiedono le credenziali come utente root, consulta [Attività che richiedono le credenziali dell’utente root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) nella *Guida per l’utente di IAM*. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-consolepolicy",
    "Statement": [
        {
            "Sid": "Allow access to principals authorized to use Amazon Redshift Query Editor V2",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "sqlworkbench.us-east-1.amazonaws.com",
                    "kms:CallerAccount": "111122223333"
                }
            }
        },
        {
            "Sid": "Allow access for key administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "kms:*"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_ID"
        }
    ]
}
```

------

Le seguenti risorse forniscono ulteriori informazioni sulle AWS KMS chiavi:
+ Per ulteriori informazioni sulle AWS KMS politiche, vedere [Specificare le autorizzazioni in una politica nella Guida](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#overview-policy-elements) per gli *AWS Key Management Service sviluppatori*. 
+ Per informazioni sulla risoluzione dei problemi relativi alle AWS KMS politiche, consulta [Risoluzione dei problemi di accesso tramite chiave](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html#example-no-iam) nella Guida per gli *AWS Key Management Service sviluppatori*. 
+ Per ulteriori informazioni sulle chiavi, consultare [Chiavi KMS AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) nella *Guida per gli sviluppatori di AWS Key Management Service *.

## Accesso all'editor di query v2
<a name="query-editor-v2-configure"></a>

Per accedere all'editor di query v2, sono necessarie le opportune autorizzazioni. Un amministratore può allegare una delle seguenti politiche AWS gestite al ruolo per concedere l'autorizzazione. Consigliamo di collegare le policy a un ruolo IAM e di assegnare il ruolo a un utente. Queste politiche AWS gestite sono scritte con diverse opzioni che controllano il modo in cui l'etichettatura delle risorse consente la condivisione delle query. Puoi utilizzare la console IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) per allegare le policy IAM. 
+ **AmazonRedshiftQueryEditorV2 FullAccess** — Garantisce l'accesso completo alle operazioni e alle risorse dell'editor di query Amazon Redshift v2. Questa policy inoltre garantisce l'accesso ad altri servizi richiesti.
+ **AmazonRedshiftQueryEditorV2 NoSharing**: consente di lavorare con Amazon Redshift Query Editor v2 senza condividere risorse. Questa policy inoltre garantisce l'accesso ad altri servizi richiesti. 
+ **AmazonRedshiftQueryEditorV2 ReadSharing** — Garantisce la possibilità di lavorare con Amazon Redshift Query Editor v2 con una condivisione limitata delle risorse. Il principale concesso può leggere le risorse condivise con il suo team ma non può aggiornarle. Questa policy inoltre garantisce l'accesso ad altri servizi richiesti. 
+ **AmazonRedshiftQueryEditorV2 ReadWriteSharing** — Garantisce la possibilità di lavorare con Amazon Redshift Query Editor v2 con condivisione di risorse. Il principale concesso può leggere e aggiornare le risorse condivise con il suo team. Questa policy inoltre garantisce l'accesso ad altri servizi richiesti. 

Puoi anche creare una policy in base alle autorizzazioni consentite e negate nelle policy gestite fornite. Se si utilizza l'editor policy della console IAM per creare le proprie policy, scegliere**SQL Workbench** come servizio per il quale si crea la policy nell'editor visivo. L'editor di query v2 utilizza il nome del servizio SQL Workbench di AWS nell'editor visivo e nel simulatore di policy IAM. 

Affinché un principale (un utente con un ruolo IAM assegnato) si connetta a un cluster di Amazon Redshift, deve disporre delle autorizzazioni in una delle policy gestite dell'editor di query v2. Inoltre, hanno bisogno di una delle `redshift:GetClusterCredentials` autorizzazioni `redshift:GetClusterCredentialsWithIAM` o di accesso al cluster. Per ottenere questa autorizzazione, un utente con autorizzazione amministrativa può collegare una policy ai ruoli IAM utilizzati per la connessione al cluster utilizzando le credenziali temporanee. È possibile assegnare la policy a cluster specifici o essere più generici. Per ulteriori informazioni sull'autorizzazione all'uso di credenziali temporanee, consulta [Creare un ruolo o un utente IAM con autorizzazioni per chiamare GetClusterCredentialsWith IAM](generating-iam-credentials-steps.md#generating-iam-credentials-role-permissions) o. GetClusterCredentials 

Affinché un principale (un utente IAM con un ruolo IAM assegnato) attivi la possibilità nella pagina **Impostazioni dell'account** per altri nell'account impostando **Esporta set di risultati**, ha bisogno dell'autorizzazione `sqlworkbench:UpdateAccountExportSettings` collegata al ruolo. Questa autorizzazione è inclusa nella politica `AmazonRedshiftQueryEditorV2FullAccess` AWS gestita.

Man mano che vengono aggiunte nuove funzionalità all'editor di query v2, le politiche AWS gestite vengono aggiornate in base alle esigenze. Se crei policy in base alle autorizzazioni consentite e negate nelle policy gestite fornite, assicurati di includere nelle tue policy le modifiche apportate alle policy gestite. Per ulteriori informazioni sulle policy gestite in Amazon Redshift, consultare [AWS politiche gestite per Amazon Redshift](redshift-iam-access-control-identity-based.md#redshift-policy-resources.managed-policies).

Per fornire l’accesso, aggiungi autorizzazioni agli utenti, gruppi o ruoli:
+ Utenti e gruppi in AWS IAM Identity Center:

  Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) (Creazione di un set di autorizzazioni) nella *Guida per l’utente di AWS IAM Identity Center *.
+ Utenti gestiti in IAM tramite un provider di identità:

  Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate nella pagina [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) della *Guida per l’utente IAM*.
+ Utenti IAM:
  + Crea un ruolo che l’utente possa assumere. Segui le istruzioni riportate nella pagina [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) della *Guida per l’utente IAM*.
  + (Non consigliato) Collega una policy direttamente a un utente o aggiungi un utente a un gruppo di utenti. Segui le istruzioni riportate nella pagina [Aggiunta di autorizzazioni a un utente (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) nella *Guida per l’utente IAM*.

**Nota**  
Se un AWS IAM Identity Center amministratore rimuove tutte le associazioni di set di autorizzazioni per un determinato set di autorizzazioni nell'intero account, l'accesso a tutte le risorse dell'editor di query originariamente associate al set di autorizzazioni rimosso non è più accessibile. Se in seguito vengono ricreate le stesse autorizzazioni, viene creato un nuovo identificatore interno. Poiché l'identificatore interno è cambiato, non è possibile accedere alle risorse dell'editor di query precedentemente di proprietà di un utente. Prima che gli amministratori eliminino un set di autorizzazioni, si consiglia agli utenti di tale set di autorizzazioni di esportare in un backup le risorse dell'editor di query, ad esempio notebook e query.

## Configurazione dei tag principali per la connessione a un cluster o un gruppo di lavoro dall'editor di query v2
<a name="query-editor-v2-principal-tags-iam"></a>

Per connettersi al cluster o al gruppo di lavoro utilizzando l'opzione utente federato, imposta l'utente o il ruolo IAM con i tag principali. In alternativa, configura il gestore dell'identità digitale (IdP) per passare in `RedshiftDbUser` e (facoltativamente) in `RedshiftDbGroups`. Per ulteriori informazioni sull'utilizzo di IAM per gestire i tag, consulta [Passare i tag di sessione in AWS Security Token Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) nella *Guida per l'utente IAM*. Per configurare l'accesso utilizzando AWS Identity and Access Management, un amministratore può aggiungere tag utilizzando la console IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)). 

**Come aggiungere tag principali a un ruolo IAM**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione scegliere **Roles (Ruoli)**.

1. Scegli il ruolo che deve accedere all'editor di query v2 utilizzando un utente federato.

1. Selezionare la scheda **Tag**.

1. Scegliere **Manage tags** (Gestisci tag). 

1. Scegli **Aggiungi tag**, inserisci la **Chiave** come `RedshiftDbUser` e inserisci un **Valore** del nome utente federato.

1. Facoltativamente scegli **Aggiungi tag**, inserisci la **Chiave** come `RedshiftDbGroups` e inserisci un **Valore** del nome del gruppo da associare all’utente.

1. Scegli **Save changes** (Salva le modifiche) per visualizzare l'elenco dei tag associati al ruolo IAM scelto. La propagazione delle modifiche potrebbe richiedere alcuni secondi.

1. Per utilizzare l'utente federato, aggiorna la pagina dell'editor di query v2 dopo la propagazione delle modifiche.

**Configurazione del gestore dell'identità digitale (IdP) per passare i tag principali**  
La procedura per configurare i tag utilizzando un gestore dell'identità digitale (IdP) varia in base all'IdP. Consulta la documentazione IdP per istruzioni su come trasferire le informazioni di utente e gruppo agli attributi SAML. Se configurati correttamente, i seguenti attributi vengono visualizzati nella risposta SAML che viene utilizzata da AWS Security Token Service per compilare i tag principali per `RedshiftDbUser` e. `RedshiftDbGroups` 

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbUser">
    <AttributeValue>db-user-name</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbGroups">
    <AttributeValue>db-groups</AttributeValue>
</Attribute>
```

 L'opzione *db\$1groups* deve essere un elenco separato da due punti, ad esempio. `group1:group2:group3`

Inoltre, è possibile impostare l'opzione `TransitiveTagKeys` per conservare i tag durante il concatenamento dei ruoli.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys">
  <AttributeValue>RedshiftDbUser</AttributeValue>
  <AttributeValue>RedshiftDbGroups</AttributeValue>
</Attribute>
```

Per ulteriori informazioni su come impostare l'editor di query v2, consulta [Autorizzazioni necessarie per utilizzare l'editor della query v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).

Per informazioni su come configurare Active Directory Federation Services (AD FS), consulta il post del blog: [Federate access to Amazon Redshift query editor v2 with Active Directory Federation Services (AD FS)](https://aws.amazon.com/blogs//big-data/federate-access-to-amazon-redshift-query-editor-v2-with-active-directory-federation-services-ad-fs-part-3/) (Federazione dell'accesso all'editor di query v2 di Amazon Redshift con Active Directory Federation Services [AD FS]). 

Per informazioni su come configurare Okta, consulta il post del blog: [Federate single sign-on access to Amazon Redshift query editor v2 with Okta](https://aws.amazon.com/blogs//big-data/federate-single-sign-on-access-to-amazon-redshift-query-editor-v2-with-okta/) (Federazione dell'accesso Single Sign-On all'editor di query v2 di Amazon Redshift con Okta). 

**Nota**  
Quando ti connetti al cluster o al gruppo di lavoro utilizzando l'opzione di connessione **Utente federato** dell'editor di query v2, il gestore dell'identità digitale può fornire tag principali personalizzati per `RedshiftDbUser` e `RedshiftDbGroups`. Attualmente, AWS IAM Identity Center non supporta il passaggio di tag principali personalizzati direttamente all'editor di query v2.

# Apertura editor di query v2
<a name="query-editor-v2-open"></a>

Con Amazon Redshift puoi eseguire query SQL sul cluster di data warehouse utilizzando Query Editor V2 nella console Amazon Redshift. Query Editor V2 è uno strumento basato sul web che fornisce un’interfaccia intuitiva per eseguire query ad hoc, esplorare dati e svolgere attività di analisi dei dati. Nelle sezioni seguenti viene illustrato il processo di apertura di Query Editor V2 nella console e di utilizzo efficace delle sue funzionalità.

**Scopri come aprire l'editor di query v2**

1. Accedi a Console di gestione AWS e apri la console Amazon Redshift all'indirizzo. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Dal menu navigator, selezionare **Editor**, quindi **Editor di query v2**. L'editor di query v2 viene aperto in una nuova scheda del browser.

Nella pagina dell'editor di query è disponibile un menu di navigazione in cui è possibile scegliere una vista nel modo descritto di seguito.

**Editor ![\[Horizontal lines representing redacted or censored text.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-align-left.png)**  
Puoi gestire ed eseguire query sui dati organizzati come tabelle e contenuti in un database. Il database può contenere dati archiviati o un riferimento a dati archiviati altrove, ad esempio in Amazon S3. È possibile connettersi a un database contenuto in un cluster o in un gruppo di lavoro serverless.  
Quando si lavora nella vista **Editor**, si dispone dei seguenti controlli:   
+ Il campo **Cluster** o **Workgroup** (Gruppo di lavoro) visualizza il nome dell'elemento a cui si è attualmente connessi. Il campo **Database** visualizza i database all'interno del cluster o del gruppo di lavoro. Le azioni che esegui nella vista **Database** agiscono per impostazione predefinita sul database selezionato. 
+ Una vista gerarchica ad albero dei cluster o dei gruppi di lavoro, dei database e degli schemi. In schemi, è possibile lavorare con tabelle, viste, funzioni e procedure archiviate. Ogni oggetto nella vista ad albero supporta un menu contestuale per eseguire azioni associate, ad esempio **Aggiorna** o **Elimina**, per l'oggetto. 
+ Un'operazione ![\[The create icon used in the AWS Console.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-add.png) **Crea** per creare database, schemi, tabelle e funzioni.
+ Un'operazione ![\[The upload icon used in the AWS Console.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-upload.png)**Carica dati** per caricare i dati da Amazon S3 o da un file locale nel database.
+ Un'icona ![\[The floppy disk icon used in the AWS Console.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-floppy-disk.png) **Salva** per salvare la query. 
+ Un'icona ![\[The shortcut icon used in the AWS Console.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-key-command.png) **Shortcuts** per visualizzare le scorciatoie da tastiera per l'editor. 
+ Un'icona ![\[The more actions icon used in the AWS Console.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-more.png) **Altro** per visualizzare più operazioni nell'editor. Ad esempio: 
  + **Condividi con il mio team** per condividere la query o il notebook con il team. Per ulteriori informazioni, consulta [Collaborazione e condivisione come team](query-editor-v2-team.md).
  + **Tasti di scelta rapida** per visualizzare i tasti di scelta rapida per l'editor.
  + **Cronologia delle schede** per visualizzare la cronologia delle schede di una scheda nell'editor.
  + **Aggiorna il completamento automatico** per aggiornare i suggerimenti visualizzati durante la creazione di SQL.
+ Un'area **Editor** ![\[The editor icon in the AWS Console where can enter and run queries.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png) in cui è possibile inserire ed eseguire la query. 

  Dopo aver eseguito una query, viene visualizzata la scheda **Risultato** con i risultati. Qui puoi abilitare **Grafico** per visualizzare i risultati. Puoi anche esportare i risultati usando il comando **Export** (Esporta).
+ Un'area ![\[The icon in the AWS Console where you can add sections to enter and run SQL or add Markdown.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png) **Notebook** in cui è possibile aggiungere sezioni per inserire ed eseguire istruzioni SQL o aggiungere markdown. 

  Dopo aver eseguito una query, viene visualizzata la scheda **Risultato** con i risultati. È in questa area che è possibile esportare i risultati mediante il comando **Export** (Esporta).

**Query ![\[A folder icon used in the AWS Console used to query databases.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-folder-close.png)**  
Una query contiene i comandi SQL per gestire i dati contenuti in un database ed eseguirvi query. Quando utilizzi l'editor di query v2 per caricare i dati di esempio, vengono automaticamente create e salvate anche query di esempio.  
 Quando si sceglie una query salvata, è possibile aprirla, rinominarla ed eliminarla usando il menu contestuale (clic con il pulsante destro del mouse). È possibile visualizzare attributi come l'**ARN della query** di una query salvata scegliendo **Dettagli della query**. È anche possibile visualizzarne la cronologia delle versioni, modificare i tag collegati alla query e condividerla con il proprio team.

**Notebook ![\[A book icon used in the AWS Console used as SQL notebook.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-manual.png)**  
Un notebook SQL contiene celle SQL e Markdown. È possibile utilizzare i notebook per organizzare, annotare e condividere più query SQL in un singolo documento.  
 Quando si sceglie un notebook salvato, è possibile aprirlo, rinominarlo ed eliminarlo usando il menu contestuale (clic con il pulsante destro del mouse). È possibile visualizzare attributi come l'**ARN del notebook** di un notebook salvato scegliendo **Dettagli del notebook**. È anche possibile visualizzarne la cronologia delle versioni, modificare i tag collegati al notebook, esportarlo e condividerlo con il proprio team. Per ulteriori informazioni, consulta [Notebook in Amazon RedshiftNotebook](query-editor-v2-notebooks.md).

**Grafici ![\[Icon of a chart used in the AWS Console as visual representation of data.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-chart.png)**  
Un grafico è una rappresentazione visiva dei dati. Nell'editor di query v2 sono disponibili gli strumenti per la creazione e il salvataggio di molti tipi di grafici.   
 Quando si sceglie un grafico salvato, è possibile aprirlo, rinominarlo ed eliminarlo usando il menu contestuale (clic con il pulsante destro del mouse). È possibile visualizzare attributi come l'**ARN del grafico** di un grafico salvato scegliendo **Dettagli del grafico**. È anche possibile modificare i tag collegati al grafico ed esportarlo. Per ulteriori informazioni, consulta [Visualizzazione dei risultati delle query](query-editor-v2-charts.md). 

**Cronologia ![\[Icon of a clock used in the AWS Console for query history.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-clock.png)**  
La cronologia di query è un elenco di query eseguite utilizzando l'editor di query v2 di Amazon Redshift. Queste query sono state eseguite come singole quiery o come parte di un notebook SQL. Per ulteriori informazioni, consulta [Visualizzazione della cronologia delle query e delle schede](query-editor-v2-history.md). 

**Query pianificate ![\[Icon of a calendar used in the AWS Console for scheduled queries.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-calendar.png)**  
Una query pianificata è una query impostata per essere avviata in orari specifici.

 Tutte le visualizzazioni dell'editor di query v2 includono le seguenti icone:
+ L'icona ![\[Icon of a quarter moon used in the AWS Console to switch between light and dark modes.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-moon.png) (**Modalità visiva**) per passare dal tema chiaro al tema scuro.
+ L'icona ![\[Icon of a gear used in the AWS Console to show settings.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-cog.png) (**Impostazioni**) per mostrare un menu per accedere alle diverse schermate delle impostazioni.
  + L'icona ![\[Icon used in the AWS Console to show editor preferences.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-properties.png) (**Preferenze dell'editor**) per modificare le preferenze quando utilizzi l'editor di query v2. Qui puoi scegliere **Modifica delle impostazioni dell'area di lavoro** per modificare la dimensione del carattere, la dimensione delle schede e altre impostazioni di visualizzazione. Puoi anche attivare (o disattivare) il **Completamento automatico** per mostrare suggerimenti quando inserisci il codice SQL.
  + L'icona ![\[Icon used in the AWS Console to view connections used in the editor tab.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-connection.png) (**Connessioni**) per visualizzare le connessioni utilizzate dalle schede dell'editor.

    Per recuperare dati da un database, viene utilizzata una connessione. Viene creata una connessione per un database specifico. Con una connessione isolata, i risultati di un comando SQL che modifica il database in una scheda dell'editor, ad esempio la creazione di una tabella temporanea, non sono visibili in un'altra scheda dell'editor. Quando si apre una scheda nell'editor di query v2, l'impostazione predefinita è una connessione isolata. Quando si crea una connessione condivisa, ovvero si disattiva il parametro **Isolated session** (Sessione isolata), i risultati di altre connessioni condivise allo stesso database sono visibili tra loro. Tuttavia, le schede dell'editor che utilizzano una connessione condivisa a un database non vengono eseguite in parallelo. Le query che utilizzano la stessa connessione devono attendere che la connessione torni disponibile. Una connessione a un database non può essere condivisa con un altro database e pertanto i risultati SQL non sono visibili tra le varie connessioni.

    Il numero di connessioni attive che qualsiasi utente nell'account può avere è gestito da un amministratore dell'editor di query v2.
  + L'icona ![\[Icon used in the AWS Console used by administrators to change settings of user accounts.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-settings.png) (**Impostazioni account**) utilizzata da un amministratore per modificare alcune impostazioni di tutti gli utenti nell'account. Per ulteriori informazioni, consulta [Impostazioni dell’account](#query-editor-v2-settings).

## Considerazioni sull'utilizzo dell'editor di query v2
<a name="query-editor-v2-considerations"></a>

Considera quanto segue quando utilizzi l'editor di query v2.
+ La durata massima di una query è 24 ore.
+ La dimensione massima dei risultati della query è 100 MB. Se la chiamata restituisce più di 100 MB di dati di risposta, i primi 100 MB vengono restituiti con un avviso.
+ È possibile eseguire una query contenente fino a 300 mila caratteri. 
+ È possibile salvare una query contenente fino a 30 mila caratteri. 
+ Per impostazione predefinita, l'editor di query v2 esegue automaticamente il commit di ogni singolo comando SQL eseguito. Quando viene fornita un'istruzione BEGIN, le istruzioni all'interno del blocco BEGIN-COMMIT o BEGIN-ROLLBACK vengono eseguite come una singola transazione. Per ulteriori informazioni sulle transazioni, consultare [BEGIN](https://docs.aws.amazon.com/redshift/latest/dg/r_BEGIN.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ Il numero massimo di avvisi che l'editor di query v2 visualizza durante l'esecuzione di un'istruzione SQL è `10`. Ad esempio, quando viene eseguita una stored procedure, non vengono visualizzate più di 10 istruzioni RAISE.
+ Query Editor V2 non supporta un attributo `RoleSessionName` IAM che contiene virgole (,). Potresti visualizzare un errore simile al seguente: Messaggio di errore: «'AROA123456789example:myText, yourtext' non è un valore valido per TagValue - contiene caratteri non validi» Questo problema si verifica quando definisci un IAM `RoleSessionName` che include una virgola e poi usi l'editor di query v2 con quel ruolo IAM.

  *Per ulteriori informazioni su un IAM`RoleSessionName`, consulta l'attributo [RoleSessionName SAML](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html#saml_role-session-attribute) nella Guida per l'utente IAM.* 

## Impostazioni dell’account
<a name="query-editor-v2-settings"></a>

Un utente con le autorizzazioni IAM adeguate può visualizzare e modificare le opzioni selezionate in **Account settings** (Impostazioni account) per gli altri utenti nello stesso Account AWS. L'amministratore può visualizzare o impostare quanto segue:
+ Il numero massimo di connessioni simultanee al database per utente nell'account. Sono incluse le connessioni per le **sessioni isolate**. Quando si modifica questo valore, possono essere necessari 10 minuti per rendere effettiva la modifica.
+ La possibilità da parte degli utenti nell'account di esportare un intero set di risultati da un comando SQL a un file.
+ La possibilità di caricare e visualizzare i database di esempio con alcune query salvate associate.
+ Specifica un percorso Amazon S3 utilizzato dagli utenti dell'account per caricare i dati da un file locale.
+ La possibilità di visualizzare l'ARN della chiave KMS per crittografare le risorse dell'editor di query v2.

# Connessione a un database Amazon Redshift
<a name="query-editor-v2-connecting"></a>

Per connetterti a un database, scegli il nome del cluster o del gruppo di lavoro nel pannello con struttura ad albero. Se richiesto, immettere i parametri di connessione.

Quando ti connetti a un cluster o a un gruppo di lavoro e ai relativi database, di solito fornisci un nome per il **database**. È inoltre possibile fornire i parametri necessari per uno dei seguenti metodi di autenticazione:

**Centro identità IAM**  
Con questo metodo, esegui la connessione al data warehouse Amazon Redshift con le credenziali dell'autenticazione unica del tuo gestore dell'identità digitale. Il cluster o il gruppo di lavoro deve essere abilitato per il Centro identità IAM nella console Amazon Redshift. Per informazioni sulla configurazione delle connessioni per Centro identità IAM, consulta [Connect Redshift con AWS IAM Identity Center per un'esperienza Single Sign-On](redshift-iam-access-control-idp-connect.md).

**Utente federato**  
Con questo metodo, i tag dei principali dell'utente o del ruolo IAM devono fornire i dettagli di connessione. Questi tag vengono configurati nel AWS Identity and Access Management nostro provider di identità (IdP). L'editor di query v2 si basa sui seguenti tag:  
+ `RedshiftDbUser`: questo tag definisce l'utente del database utilizzato dall'editor di query v2. Questo tag è obbligatorio.
+ `RedshiftDbGroups`: questo tag definisce i gruppi di database che vengono uniti durante la connessione all'editor di query v2. Questo tag è facoltativo e il suo valore deve essere un elenco separato da due punti, ad esempio `group1:group2:group3`. I valori vuoti vengono ignorati, ossia, `group1::::group2` è interpretato come `group1:group2`. 
Questi tag vengono inoltrati all'API `redshift:GetClusterCredentials` per ottenere le credenziali per il tuo cluster. Per ulteriori informazioni, consulta [Configurazione dei tag principali per la connessione a un cluster o un gruppo di lavoro dall'editor di query v2](query-editor-v2-getting-started.md#query-editor-v2-principal-tags-iam).

**Credenziali temporanee con un nome utente del database**  
Questa opzione è disponibile solo quando ci si connette a un cluster. Con questo metodo, l'editor di query v2 fornisce un **nome utente** per il database. L'editor di query v2 genera una password temporanea per la connessione al database con il tuo nome utente del database. Un utente che utilizza questo metodo per connettersi deve avere l'autorizzazione IAM per `redshift:GetClusterCredentials`. Per impedire agli utenti di utilizzare questo metodo, modifica il loro utente o ruolo IAM per negare questa autorizzazione. 

**Credenziali temporanee che utilizzano la tua identità IAM**  
Questa opzione è disponibile solo quando ci si connette a un cluster. Con questo metodo, l'editor di query v2 mappa un nome utente alla tua identità IAM e genera una password temporanea per la connessione al database con la tua identità IAM. Un utente che utilizza questo metodo per connettersi deve avere l'autorizzazione IAM per `redshift:GetClusterCredentialsWithIAM`. Per impedire agli utenti di utilizzare questo metodo, modifica il loro utente o ruolo IAM per negare questa autorizzazione. 

**Nome utente e password del database**  
Con questo metodo, fornire anche un **Nome utente** e una **Password** per il database a cui ti stai connettendo. L'editor di query v2 crea un segreto per tuo conto archiviato in Gestione dei segreti AWS. Questo segreto contiene le credenziali per la connessione al database. 

**Gestione dei segreti AWS**  
 Con questo metodo, anziché un nome di database fornisci un **Secret** (Segreto) archiviato in Gestione dei segreti che contiene il tuo database e le credenziali di accesso. Per ulteriori informazioni sulla creazione di un segreto, consulta [Creazione di un segreto per le credenziali di connessione al database](redshift-secrets-manager-integration-create.md). 

Quando selezioni un cluster o un gruppo di lavoro con l'editor di query v2, a seconda del contesto, puoi creare, modificare ed eliminare connessioni utilizzando il menu contestuale (clic con il pulsante destro del mouse). È possibile visualizzare attributi come l'**ARN di connessione** della connessione scegliendo **Dettagli connessione**. È anche possibile modificare i tag collegati alla connessione.

# Navigazione in un database Amazon Redshift
<a name="query-editor-v2-object-browse"></a>

All'interno di un database è possibile gestire schemi, tabelle, viste, funzioni e procedure archiviate nel pannello di visualizzazione ad albero. Ad ogni oggetto nella visualizzazione vengono associate operazioni in un menu contestuale (clic con il pulsante destro del mouse).

Il pannello gerarchico con visualizzazione ad albero mostra gli oggetti del database. Per aggiornare il pannello della visualizzazione ad albero per visualizzare gli oggetti del database che potrebbero essere stati creati dopo l'ultima visualizzazione della visualizzazione ad albero, scegli l'icona ![\[Circular arrow icon representing a refresh or reload action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-refresh.png). Aprire il menu contestuale (clic con il pulsante destro del mouse) di un oggetto per vedere quali operazioni è possibile eseguire.

![\[Tree-view icons\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/sqlworkbench-tree-view.png)

Dopo aver scelto una tabella, puoi procedere come segue:
+ Per avviare una query nell'editor con un'istruzione SELECT che esegue query su tutte le colonne della tabella, utilizzare **Seleziona tabella**.
+ Per visualizzare gli attributi o una tabella, utilizzare **Visualizza definizione della tabella**. Utilizzare questa opzione per visualizzare i nomi delle colonne, i tipi di colonna, la codifica, le chiavi di distribuzione, le chiavi di ordinamento e se una colonna può contenere valori nulli. Per ulteriori informazioni sugli attributi della tabella, consultare [CREA TABELLA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ Per eliminare una tabella, utilizzare **Elimina**. È possibile utilizzare **Troncare tabella** per eliminare tutte le righe dalla tabella o **Elimina tabella** per rimuovere la tabella dal database. Per ulteriori informazioni, consultare [TRONCARE](https://docs.aws.amazon.com/redshift/latest/dg/r_TRUNCATE.html) e [ELIMINA TABELLA](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

Scegliere uno schema per **Aggiorna** o **Elimina schema**. 

Scegliere una vista per **Mostra la definizione della vista** o **Elimina vista**. 

Scegliere una funzione per **Mostra definizione della funzione** o **Elimina funzione**. 

Scegli una procedura archiviata per **Mostra definizione della procedura** o **Elimina procedura**. 

# Creazione di oggetti di database
<a name="query-editor-v2-object-create"></a>

È possibile creare oggetti di database, inclusi database, schemi, tabelle e funzioni definite dall'utente (). UDFs Per creare oggetti di database, è necessaria la connessione a un cluster o a un gruppo di lavoro e a un database.

## Creazione di database
<a name="query-editor-v2-object-create-database"></a>

Puoi usare l'editor di query v2 per creare database nel tuo cluster o gruppo di lavoro.

**Come creare un database**

Per informazioni sui database [CREA DATABASE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_DATABASE.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

1. Scegliere ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-add.png)**Crea**, quindi scegliere **Database**.

1. Inserire un **Nome database**.

1. (Facoltativo) Seleziona **Utenti e gruppi** e scegli un **Utente del database**.

1. (Facoltativo) È possibile creare il database da una unità di condivisione dati o da  AWS Glue Data Catalog. Per ulteriori informazioni su AWS Glue, consulta [What is? AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) nella *Guida per gli AWS Glue sviluppatori*.
   + (Facoltativo) Seleziona **Crea utilizzando una unità di condivisione dati** e scegli **Seleziona una unità di condivisione dati**. L'elenco include le unità di condivisione dati che possono essere utilizzate per creare un'unità di condivisione dati consumer nel cluster o nel gruppo di lavoro corrente.
   + (Facoltativo) Selezionate **Crea utilizzando AWS Glue Data Catalog** e scegliete un **database Choose an AWS Glue**. In **Schema del catalogo dati**, inserisci il nome che verrà utilizzato per lo schema quando si fa riferimento ai dati in un nome composto da tre parti (database.schema.table). 

1. Scegliere **Crea database**.

   Il nuovo database viene visualizzato nel pannello con visualizzazione ad albero.

   Quando scegli la procedura facoltativa per eseguire una query su un database creato da una unità di condivisione dati, connettiti a un database Amazon Redshift nel cluster o nel gruppo di lavoro (ad esempio, il database predefinito `dev`) e usa una notazione in tre parti (database.schema.table) che fa riferimento al nome del database che hai creato quando hai selezionato **Crea utilizzando un'unità di condivisione dati**. Il database di unità di condivisione dati è elencato nella scheda editor dell'editor di query v2, ma non è abilitato per la connessione diretta.

   **Quando scegli il passaggio opzionale per interrogare un database creato da un AWS Glue Data Catalog, connettiti al tuo database Amazon Redshift nel cluster o nel gruppo di lavoro (ad esempio, il database predefinito`dev`) e usa una notazione in tre parti (database.schema.table) che fa riferimento al nome del database creato quando hai selezionato **Crea utilizzando AWS Glue Data Catalog**, allo schema che hai nominato nello schema del catalogo dati e alla tabella in.** AWS Glue Data Catalog Simile a:

   ```
   SELECT * FROM glue-database.glue-schema.glue-table
   ```
**Nota**  
Conferma di essere connesso al database predefinito utilizzando il metodo di connessione **Credenziali temporanee che utilizzano la tua identità IAM** e che alle tue credenziali IAM sia stato concesso il privilegio di utilizzo per il AWS Glue database.  

   ```
   GRANT USAGE ON DATABASE glue-database to "IAM:MyIAMUser"
   ```

   Il AWS Glue database è elencato nella scheda dell'editor di query v2, ma non è abilitato per la connessione diretta.

   *Per ulteriori informazioni sull'interrogazione di un AWS Glue Data Catalog, consulta [Lavorare con le condivisioni di dati gestite da Lake Formation come consumatore e Lavorare con le condivisioni di dati gestite da Lake Formation come produttore nella Amazon Redshift Database](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-consumer.html) [Developer Guide](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-producer.html).*

**Esempio di creazione di un database come utente di unità di condivisione dati**

L'esempio seguente descrive uno scenario specifico utilizzato per creare un database da un'unità di condivisione dati utilizzando l'editor di query v2. Esamina questo scenario per scoprire come creare un database da un'unità di condivisione dati nel tuo ambiente. Questo scenario utilizza due cluster, `cluster-base` (il cluster produttori) e `cluster-view` (il cluster di consumatori).

1. Usa la console Amazon Redshift per creare una condivisione di dati per la tabella `category2` nel cluster `cluster-base`. L'unità di condivisione dati del produttore è denominata `datashare_base`.

   Per ulteriori informazioni sulla creazione di unità di condivisione dati, consultare [Condivisione dei dati tra cluster in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

1. Usa la console Amazon Redshift per creare un'unità di condivisione dati `datashare_base` come consumatore per la tabella `category2` nel cluster `cluster-view`.

1. Visualizza il pannello di visualizzazione ad albero nell'editor di query v2 che mostra la gerarchia di `cluster-base` come:
   + Cluster: `cluster-base`
     + Database: `dev`
       + Schema: `public`
         + Tabelle: `category2`

1. Scegliere ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-add.png)**Crea**, quindi scegliere **Database**.

1. Per **Nome database**, immettere `see_datashare_base`.

1. Seleziona **Crea utilizzando una unità di condivisione dati** e scegli **Seleziona una unità di condivisione dati**. Scegli `datashare_base` da utilizzare come origine del database che stai creando.

   Il pannello di visualizzazione ad albero nell'editor di query v2 mostra la gerarchia di `cluster-view` come:
   + Cluster: `cluster-view`
     + Database: `see_datashare_base`
       + Schema: `public`
         + Tabelle: `category2`

1. Quando esegui una query sui dati, connettiti al database predefinito del cluster `cluster-view`(tipicamente denominato `dev`), ma fai riferimento al database di unità di condivisione dati `see_datashare_base` nel tuo SQL.
**Nota**  
Nella vista dell'editor di query v2, il cluster selezionato è `cluster-view`. Il database selezionato è `dev`. Il database `see_datashare_base` è elencato ma non è abilitato per la connessione diretta. Tu scegli il database `dev` e i riferimenti `see_datashare_base` nel codice SQL che esegui.

   ```
   SELECT * FROM "see_datashare_base"."public"."category2";
   ```

   La query recupera i dati dall'unità di condivisione dati `datashare_base` nel cluster `cluster_base`.

**Esempio di creazione di un database da un AWS Glue Data Catalog**

L'esempio seguente descrive uno scenario specifico utilizzato per creare un database da un editor di query AWS Glue Data Catalog using v2. Esamina questo scenario per scoprire come creare un database da un ambiente AWS Glue Data Catalog in uso. Questo scenario utilizza un cluster, `cluster-view` per contenere il database che crei.

1. Scegliere ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-add.png)**Crea**, quindi scegliere **Database**.

1. Per **Nome database**, immettere `data_catalog_database`.

1. Seleziona **Crea usando un AWS Glue Data Catalog** e scegli **Scegli un AWS Glue database**. Scegli `glue_db` da utilizzare come origine del database che stai creando.

   Scegli **Schema del catalogo dati** e inserisci `myschema` come nome dello schema da utilizzare nella notazione in tre parti.

   Il pannello di visualizzazione ad albero nell'editor di query v2 mostra la gerarchia di `cluster-view` come:
   + Cluster: `cluster-view`
     + Database: `data_catalog_database`
       + Schema: `myschema`
         + Tabelle: `category3`

1. Quando esegui una query sui dati, connettiti al database predefinito del cluster `cluster-view` (tipicamente denominato `dev`), ma fai riferimento al database `data_catalog_database` nel tuo SQL. 
**Nota**  
Nella vista dell'editor di query v2, il cluster selezionato è `cluster-view`. Il database selezionato è `dev`. Il database `data_catalog_database` è elencato ma non è abilitato per la connessione diretta. Tu scegli il database `dev` e i riferimenti `data_catalog_database` nel codice SQL che esegui.

   ```
   SELECT * FROM "data_catalog_database"."myschema"."category3";
   ```

   L'interrogazione recupera i dati catalogati da  AWS Glue Data Catalog.

## Creazione di schemi
<a name="query-editor-v2-object-create-schema"></a>

Puoi usare l'editor di query v2 per creare schemi nel tuo cluster o gruppo di lavoro.

**Per creare uno schema**

Per informazioni sugli schemi, consultare [Schemi](https://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

1. Scegliere ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-add.png)**Crea**, quindi scegliere **Schema**.

1. Inserire un **Nome schema**.

1. Scegliere **Local** (Locale) o **External** (Esterno) in **Schema type** (Tipo di schema).

   Per ulteriori informazioni sugli schemi locali, consultare [CREATE SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_SCHEMA.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. Per ulteriori informazioni sugli schemi esterni, consultare [CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

1. Se si sceglie **External** (Esterno), per lo schema esterno sono disponibili le seguenti opzioni.
   + **Glue Data Catalog** (Catalogo dati di Glue): per creare uno schema esterno in Amazon Redshift che faccia riferimento alle tabelle in AWS Glue. Oltre a scegliere il AWS Glue database, scegli il ruolo IAM associato al cluster e il ruolo IAM associato al Data Catalog.
   + **PostgreSQL**: per creare uno schema esterno in Amazon Redshift riferito a un database Amazon RDS per PostgreSQL o a un database compatibile con Amazon Aurora PostgreSQL. Specificare inoltre le informazioni sulla connessione al database. Per ulteriori informazioni sulle query federate, consultare [Esecuzione di query su dati con query federate](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
   + **MySQL**: per creare uno schema esterno in Amazon Redshift riferito a un database Amazon RDS per MySQL o a un database compatibile con Amazon Aurora MySQL. Specificare inoltre le informazioni sulla connessione al database. Per ulteriori informazioni sulle query federate, consultare [Esecuzione di query su dati con query federate](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

1. Scegliere **Crea schema**.

   Il nuovo schema viene visualizzato nel pannello con visualizzazione ad albero.

## Creazione di tabelle
<a name="query-editor-v2-object-create-table"></a>

Puoi usare l'editor di query v2 per creare tabelle nel tuo cluster o gruppo di lavoro.

**Per creare una tabella**

È possibile creare una tabella basata su un file CSV (valori separati da virgole) in cui è possibile specificare o definire ogni colonna della tabella. Per informazioni sulle tabelle, consultare [Progettazione tabelle](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html) e [CREA TABELLA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

Scegliere **Apri query nell'editor** per visualizzare e modificare l'istruzione CREA TABELLA prima di eseguire la query per creare la tabella. 

1. Scegli ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-add.png)**Create** (Crea) e quindi **Table** (Tabella).

1. Scegliere uno schema.

1. Inserire un nome tabella.

1. Scegliere ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png) **Aggiungi campo** per aggiungere una colonna. 

1. Utilizzare un file CSV come modello per la definizione della tabella:

   1. Scegliere **Carica da CSV**.

   1. Seleziona la posizione del file.

      Se si utilizza un file CSV, assicurarsi che la prima riga del file contenga le intestazioni di colonna.

   1. Scegli il file e scegli **Apri**. Confermare che i nomi delle colonne e i tipi di dati corrispondano a quanto voluto.

1. Per ogni colonna, scegli la colonna e scegli le opzioni desiderate:
   + Scegliere un valore per **Codifica**.
   + Scegliere un **Valore predefinito**.
   + Attivare **Incremento automatico** se si desidera che i valori delle colonne vengano incrementati. Quindi specificare un valore per **Auto-incremento del seed** e **Fase di incremento automatico**.
   + Attivare **Non NULL** se la colonna deve sempre contenere un valore.
   + Inserire un valore **Dimensione** per la colonna.
   + Attivare **Chiave primaria** se si desidera che la colonna sia una chiave primaria.
   + Attivare **Chiave unica** se si desidera che la colonna sia una chiave unica.

1. (Facoltativo) Scegliere **Dettagli tabella** e scegliere una qualsiasi delle seguenti opzioni:
   + Colonna e stile della chiave di distribuzione.
   + Colonna chiave di ordinamento e tipo di ordinamento.
   + Attiva **Backup** per includere la tabella negli snapshot.
   + Attivare **Tabella temporanea** per creare la tabella come tabella temporanea.

1. Scegliere **Apri query nell'editor** per continuare a specificare le opzioni per definire la tabella o scegliere **Crea tabella** per creare la tabella.

## Creazione di funzioni
<a name="query-editor-v2-object-create-function"></a>

Puoi usare l'editor di query v2 per creare funzioni nel tuo cluster o gruppo di lavoro.

**Per creare una funzione**

1. Scegliere ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-add.png)**Crea** e scegliere **Funzione**.

1. Per **Tipo**, scegliere **SQL** o **Python**.

1. Scegliere un valore per **Schema**.

1. Inserire un valore **Nome** per la funzione.

1. Inserire un valore **Volatilità** per la funzione.

1. Scegliere i **Parametri** in base ai loro tipi di dati nell'ordine dei parametri di input.

1. Per **Valori restituiti**, scegliere un tipo di dati.

1. Inserisci il codice **Programma SQL** o **Programma Python** per la funzione.

1. Scegli **Create** (Crea).

Per ulteriori informazioni sulle funzioni definite dall'utente (UDFs), consulta [Creazione di funzioni definite dall'utente](https://docs.aws.amazon.com/redshift/latest/dg/user-defined-functions.html) nella *Amazon Redshift* Database Developer Guide. 

# Visualizzazione della cronologia delle query e delle schede
<a name="query-editor-v2-history"></a>

Puoi visualizzare la cronologia delle query con l'editor di query v2. Nella cronologia delle query vengono visualizzate solo le query eseguite utilizzando l'editor di query v2. Vengono visualizzate entrambe le query eseguite utilizzando una scheda **Editor** o una scheda **Notebook**. È possibile filtrare l'elenco visualizzato in base a un periodo di tempo, ad esempio `This week`, in cui una settimana è definita come lunedì-domenica. L'elenco delle query recupera contemporaneamente 25 righe di query che corrispondono al filtro in uso. Scegli **Load more** (Carica altro) per vedere il set successivo. Scegli una query e dal menu **Actions** (Operazioni). Le operazioni disponibili dipendono dal fatto se la query selezionata è stata salvata o meno. È possibile effettuare le seguenti operazioni:
+ **View query details** (Visualizza dettagli della query): visualizza una pagina dei dettagli della query con ulteriori informazioni sulla query eseguita.
+ **Open query in a new tab** (Apri query in una nuova scheda): apre una nuova scheda dell'editor e la prepara con la query scelta. Se ancora connessi, il cluster o il gruppo di lavoro e il database vengono selezionati automaticamente. Per eseguire la query, verifica innanzitutto che siano stati scelti il cluster o il gruppo di lavoro e il database corretti.
+ **Open source tab** (Apri scheda origine): se è ancora aperta, passa alla scheda dell'editor o del notebook che conteneva la query quando è stata eseguita. Il contenuto dell'editor o del notebook potrebbe essere cambiato dopo l'esecuzione della query.
+ **Open saved query** (Apri la query salvata): passa alla scheda dell'editor o del notebook e apre la query.

È inoltre possibile visualizzare la cronologia delle query eseguite in una scheda **Editor** o la cronologia delle query eseguite in una scheda **Notebook**. Per visualizzare la cronologia delle query in una scheda, scegliere **Tab history** (Cronologia scheda). Nella cronologia della scheda, puoi effettuare le operazioni elencate di seguito:
+ **Copy query** (Copia query): copia il contenuto SQL della versione della query negli appunti.
+ **Open query in a new tab** (Apri query in una nuova scheda): apre una nuova scheda dell'editor e la prepara con la query scelta. Per eseguire la query, è necessario scegliere il cluster o il gruppo di lavoro e il database.
+ **View query details** (Visualizza dettagli della query): visualizza una pagina dei dettagli della query con ulteriori informazioni sulla query eseguita.

# Interazione con SQL generativo Amazon Q
<a name="query-editor-v2-generative-ai"></a>

**Nota**  
Il supporto SQL generativo di Amazon Q è disponibile solo nei seguenti paesi: Regioni AWS  
Regione Stati Uniti orientali (Virginia settentrionale) (us-east-1)
Regione Stati Uniti orientali (Ohio) (us-east-2)
Regione Stati Uniti occidentali (Oregon) (us-west-2)
Regione Asia Pacifico (Mumbai) (ap-south-1)
Regione Asia Pacifico (Seoul) (ap-northeast-2)
Regione Asia Pacifico (Singapore) (ap-southeast-1)
Regione Asia Pacifico (Sydney) (ap-southeast-2)
Regione Asia Pacifico (Tokyo) (ap-northeast-1)
Regione Canada (Centrale) (ca-central-1)
Regione Europa (Francoforte) (eu-central-1)
Regione Europa (Irlanda) (eu-west-1)
Regione Europa (Londra) (eu-west-2)
Regione Europa (Parigi) (eu-west-3)
Regione Sud America (San Paolo) (sa-east-1)
Per informazioni su dove vengono elaborati i dati, consulta [Inferenza tra Regioni in Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/cross-region-inference.html) nella *Guida per l’utente di Amazon Q*.

Puoi interagire con la funzionalità SQL generativo di Amazon Q nell'Editor di query Amazon Redshift v2. Si tratta di un assistente di codifica che genera istruzioni SQL in base alle istruzioni e allo schema del database, disponibile per la creazione di un notebook nell'editor di query v2. L’SQL generato è per il database a cui è collegato il notebook.

Quando interagisci con SQL generativo Amazon Q, poni domande specifiche, esegui l’iterazione in caso di richieste complesse e verifichi l’accuratezza delle risposte. 

Quando fornisci richieste di analisi in linguaggio naturale, sii il più specifico possibile per aiutare l'assistente di codifica a capire esattamente di cosa hai bisogno. Invece di chiedere «trova i migliori locali che hanno venduto il maggior numero di biglietti», fornisci maggiori dettagli, ad esempio «trova i tre locali che hanno venduto il maggior numero names/ids di biglietti nel 2008". Usa nomi coerenti e specifici per gli oggetti nel database quando li conosci, ad esempio i nomi di schema, tabella e colonna definiti nel database, invece di fare riferimento allo stesso oggetto in modi diversi, che può confondere l’assistente.

Suddividi le richieste complesse in più istruzioni semplici che sono più facili da interpretare per l'assistente. Poni domande di follow-up in modo iterativo per ottenere un'analisi più dettagliata dall'assistente. Ad esempio, per prima cosa chiedi in quale stato ci sono più sedi. Quindi, in base alla risposta, chiedi qual è la sede più popolare di questo stato. 

Esamina l'SQL generato prima di eseguirlo per verificarne l'accuratezza. Se la query SQL generata contiene errori o non corrisponde al tuo intento, fornisci all'assistente le istruzioni per correggerla invece di riformulare l'intera richiesta. Ad esempio, se nella query manca una clausola di predicato relativa all'anno, chiedi di fornire le sedi a partire dal 2008.

Invia il testo degli errori che ricevi dall’esecuzione di SQL generato come prompt a SQL generativo Amazon Q. Impara da questi errori per produrre SQL migliore.

Aggiungi lo schema al percorso di ricerca SQL per segnalare che lo schema deve essere usato. Ad esempio, aggiungi lo schema tickit quando i dati si trovano nello schema tickit anziché nello schema pubblico.

```
set search_path to '$user', tickit;
```

## Considerazioni sull’interazione con SQL generativo Amazon Q
<a name="query-editor-v2-generative-ai-considerations"></a>

Considera le seguenti indicazioni quando utilizzi il pannello di chat.
+ L'amministratore dell'editor di query v2 del tuo account deve aver attivato la funzionalità di chat nella pagina **Impostazioni di SQL generativo**.
+ Per utilizzare l'SQL generativo di Amazon Q, è necessaria l'autorizzazione `sqlworkbench:GetQSqlRecommendations` nella policy IAM, oltre alle altre autorizzazioni specificate nella policy AWS gestita per l'editor di query v2. Per ulteriori informazioni sulle politiche AWS gestite, consulta. [Accesso all'editor di query v2](query-editor-v2-getting-started.md#query-editor-v2-configure)
+ Le domande devono essere scritte in inglese.
+ Le domande devono fare riferimento al database connesso nel cluster o nel gruppo di lavoro. Per evitare errori di stato vuoto, nel database devono essere presenti almeno una tabella e alcuni dati.
+ Le domande devono riferirsi ai dati archiviati nel database connesso. Non è possibile fare riferimento a uno schema esterno. Per ulteriori informazioni sugli schemi supportati, consulta [Create schema](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ Qualsiasi domanda che restituisca un codice SQL che modifichi il database connesso può generare un avviso.
+ La tecnologia di IA generativa è nuova e nelle risposte possono esserci errori, a volte chiamati allucinazioni. Testa e rivedi tutto il codice per individuare errori e vulnerabilità prima di utilizzarlo nell'ambiente o nel carico di lavoro.
+ Puoi migliorare i suggerimenti condividendo nel tuo account le query SQL eseguite da altri utenti. L'amministratore dell'account può eseguire i seguenti comandi SQL per consentire l'accesso alla cronologia delle query dell'account.

  ```
  GRANT ROLE SYS:MONITOR to "IAMR:role-name";
  GRANT ROLE SYS:MONITOR to "IAM:user-name";
  GRANT ROLE SYS:MONITOR to "database-username";
  ```

  Per ulteriori informazioni su `SYS:MONITOR`, consulta [Ruoli definiti dal sistema di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/r_roles-default.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ I tuoi dati sono sicuri e privati. I tuoi dati non vengono condivisi tra account. Le query, i dati e gli schemi di database non vengono utilizzati per addestrare un modello di fondazione (FM) di IA generativa. L'input viene utilizzato come prompt contestuale nel modello di fondazione solo per rispondere alle tue query.

# Utilizzo di SQL generativo
<a name="query-editor-v2-generative-ai-interact"></a>

Dopo aver configurato le autorizzazioni corrette, quando si lavora con un notebook nell'editor di query v2, è possibile scegliere un'icona per iniziare una conversazione.

**Come interagire con la chat di SQL generativo Amazon Q per generare SQL**

1. Apri un notebook nella scheda **Editor** dell'editor di query v2.

1. Scegli l'icona SQL generativo ![\[Generative SQL panel\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-amazon-q.png) quindi segui le istruzioni per porre le tue domande di SQL generativo dell'Editor di query Amazon Redshift v2 nel pannello di chat.

   Fornisci le domande in un campo di prompt e SQL generativo Amazon Q risponde con l’SQL suggerito. Eventuali errori riscontrati vengono restituiti nel pannello di chat.

1. Scegli **Aggiungi al notebook** per aggiungere una cella markdown con il prompt e una cella SQL con l'istruzione SQL suggerita al notebook.

1. (Facoltativo) Fornisci feedback per l’SQL generato scegliendo l’icona di feedback ![\[Helpful feedback\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-thumbs-up.png) utile o l’icona di feedback ![\[Not helpful feedback\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-thumbs-down.png) non utile. Puoi classificare il feedback non utile come `Incorrect tables/columns`, `Incorrect predicates/literals/group bys`, `Incorrect SQL structure` o `Other`. Inoltre puoi fornire un testo in formato libero con il feedback sull’accuratezza dell’SQL.

1. (Facoltativo) Scegli **Rigenera SQL** per generare un'altra risposta per lo stesso prompt. È possibile scegliere **Rigenera SQL** una sola volta per il prompt corrente.

1. (Facoltativo) Nel pannello di chat di SQL generativo, scegli l'icona **Altro** ![\[More\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-vmore.png), quindi seleziona **Aggiorna database** per aggiornare i metadati che descrivono il database connesso. Questi metadati includono le definizioni di schemi, tabelle e colonne del database.

# Aggiornamento delle impostazioni di SQL generativo come amministratore
<a name="query-editor-v2-generative-ai-settings"></a>

Un utente con le autorizzazioni IAM adeguate può visualizzare e modificare le **impostazioni di SQL generativo** per gli altri utenti nello stesso Account AWS. Questo amministratore deve disporre dell'autorizzazione `sqlworkbench:UpdateAccountQSqlSettings` nella propria politica IAM, oltre alle altre autorizzazioni specificate nella policy AWS gestita per l'editor di query v2. Per ulteriori informazioni sulle policy gestite, consulta [Autorizzazioni necessarie per utilizzare l'editor della query v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).

**Per consentire a un amministratore di attivare la chat SQL generativo per tutti gli utenti dell'account**

1. Scegli l'icona **Impostazioni** ![\[Settings\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-cog.png) per visualizzare un menu per accedere alle diverse schermate delle impostazioni.

1. Quindi scegli l’icona delle impostazioni SQL generativo ![\[Generative SQL settings\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-amazon-q.png) per visualizzare la pagina **Impostazioni SQL generativo Q**.

1. Seleziona **Impostazioni SQL generativo Q** per attivare la funzionalità SQL generativo per gli utenti dell’account.

   Dopo avere attivato SQL generativo Amazon Q, puoi visualizzare il numero di prompt rimasti nell’allocazione. L’amministratore di Query Editor V2 può consentire agli utenti dell’account di utilizzare il piano di Amazon Q Developer Pro. Per utilizzare il piano di Pro, configura gli utenti con Centro identità IAM e iscrivi ogni utente al livello Amazon Q Developer Pro. Per informazioni sulla configurazione di Centro identità IAM con Amazon Redshift, consulta [Connect Redshift con AWS IAM Identity Center per un'esperienza Single Sign-On](redshift-iam-access-control-idp-connect.md). Per informazioni sui prezzi di Amazon Q Developer, consulta [Prezzi di Amazon Q Developer](https://aws.amazon.com/q/developer/pricing/).

   Quando si utilizza il piano Amazon Q Developer Free, il numero totale di richieste di tutti gli utenti di un Account AWS è limitato a 1.000 al mese. Quando utilizzi il piano di Amazon Q Developer Pro, il numero totale di prompt che ogni singolo utente può inviare è limitato a 1.000 al mese. Puoi visualizzare il numero di prompt disponibili nella pagina **Impostazioni**. Per informazioni sui prezzi di Amazon Q Developer, consulta [Prezzi di Amazon Q Developer](https://aws.amazon.com/q/developer/pricing/).

## Contesto personalizzato
<a name="query-editor-v2-generative-custom-context"></a>

L’amministratore di Query Editor V2 può specificare un *contesto personalizzato* per adattare l’SQL generato all’ambiente. Un contesto personalizzato fornisce conoscenze e preferenze del dominio per fornire un controllo granulare sulla generazione di SQL. Un contesto personalizzato è definito in un file JSON che può essere caricato dall’amministratore di Query Editor V2 in SQL generativo Amazon Q.

Le chiavi JSON utilizzate per personalizzare l’SQL generato per un data warehouse sono le seguenti.

Tutti i riferimenti alle tabelle devono seguire la notazione in tre parti `database.schema.table`.

**Resources**  
Una risorsa specifica l’ambito o la parte di una risorsa di dati a cui viene applicato il contesto personalizzato.

**ResourceId**  
Specifica un identificatore univoco della risorsa. Per un cluster Amazon Redshift, specifica `cluster id`. Per un gruppo di lavoro Redshift serverless, specifica `workgroup name`.

**ResourceType**  
Valore valido: `REDSHIFT_WAREHOUSE`.

**TablesToInclude**  
Specifica un insieme di tabelle che sono considerate per la generazione di SQL. Questo campo è fondamentale se desideri limitare l’ambito delle query SQL a un sottoinsieme definito di tabelle disponibili. Consente di ottimizzare il processo di generazione riducendo i riferimenti a tabelle non necessari. Puoi associare questo campo con `TablesToExclude` per un controllo più preciso sulla generazione delle query.

**TablesToExclude**  
Specifica l’insieme di tabelle che sono escluse dalla generazione di SQL. Usalo quando determinate tabelle sono irrilevanti o non devono essere considerate nel processo di generazione delle query. 

**TableAnnotations**  
Fornisce metadati o informazioni supplementari sulle tabelle in uso. Queste annotazioni possono includere descrizioni di tabelle, note per l’utilizzo o qualsiasi attributo aggiuntivo che aiuti SQL generativo Amazon Q a comprendere meglio il contesto o la struttura della tabella. Ciò è utile per migliorare l’accuratezza della generazione di SQL grazie a una maggiore chiarezza delle definizioni delle tabelle.

**ColumnsToInclude**  
Definisce quali colonne delle tabelle specificate sono incluse nella generazione di query SQL. Questo campo aiuta SQL generativo Amazon Q a concentrarsi sulle colonne pertinenti e migliora le prestazioni restringendo l’ambito del recupero dei dati. Garantisce che SQL generativo Amazon Q estragga solo i dati necessari per il contesto di query specificato.

**ColumnsToExclude**  
Specifica le colonne che vengono omesse dalla considerazione nella generazione di SQL. Ciò può essere usato quando alcune colonne contengono dati irrilevanti o ridondanti che non devono essere considerati da SQL generativo Amazon Q. Gestendo l’inclusione e l’esclusione delle colonne, puoi perfezionare i risultati e mantenere il controllo sui dati recuperati.

**ColumnAnnotations**  
Analogamente a `TableAnnotations`, questo campo fornisce metadati o annotazioni specifici per le singole colonne. Queste annotazioni possono offrire informazioni sulle definizioni delle colonne o sulle istruzioni speciali per la gestione. Queste informazioni sono utili per gestire il processo di generazione di SQL e garantire che le colonne vengano utilizzate in modo appropriato nelle query.

**CuratedQueries**  
Una serie di esempi di domande e risposte predefiniti, in cui la domanda è scritta in linguaggio naturale (NLQ) e la risposta è la query SQL corrispondente. Questi esempi aiutano SQL generativo Amazon Q a comprendere i tipi di query che dovrebbe generare. Servono come punti di riferimento per migliorare l’accuratezza e la pertinenza degli output di SQL generativo Amazon Q.

**CustomDocuments**  
Informazioni o suggerimenti aggiuntivi forniti a SQL generativo Amazon Q, quali definizioni, conoscenze specifiche del dominio o spiegazioni. Ad esempio, se l’unità aziendale utilizza un metodo unico per calcolare un valore, del tipo “nella divisione di produzione le vendite totali sono uguali a prezzo \$1 ricavo”, puoi documentarlo qui. Questi documenti migliorano la capacità di SQL generativo Amazon Q di interpretare gli input in linguaggio naturale fornendo un contesto aggiuntivo.

**AdditionalTables**  
Specifica eventuali tabelle aggiuntive che devono essere prese in considerazione per la generazione di SQL ma che non fanno parte dei dati archiviati nel data warehouse. Ciò consente a SQL generativo Amazon Q di integrare origini dati esterne nella sua logica di generazione di SQL, ampliando la sua capacità di gestire ambienti di dati complessi.

**AppendToPrompt**  
Istruzioni o linee guida aggiuntive fornite a SQL generativo Amazon Q per gestire il processo di generazione SQL. Ciò può includere direttive specifiche su come strutturare la query, le preferenze per determinati costrutti SQL o qualsiasi altra istruzione di alto livello che migliori la qualità dell’output SQL generativo Amazon Q.

Il seguente esempio di contesto personalizzato mostra il formato del file JSON e definisce quanto segue:
+ Definisce un contesto personalizzato per il data warehouse Amazon Redshift per il cluster `mycluster`.
+ Definisce tabelle e colonne specifiche da includere ed escludere per ottimizzare il processo di generazione di SQL.
+ Definisce le annotazioni per le tabelle e le colonne evidenziate da includere.
+ Definisce esempi di query curate utilizzabili da SQL generativo Amazon Q.
+ Definisce documenti e guardrail personalizzati da utilizzare durante la generazione di SQL.
+ Definisce il DDL per le tabelle aggiuntive da utilizzare durante la generazione di SQL.

```
{
    "resources": [
        {
            "ResourceId": "mycluster",
            "ResourceType": "REDSHIFT_WAREHOUSE",
            "TablesToInclude": [
                "database.schema.table1",
                "database.schema.table2"
            ],
            "TablesToExclude": [
                "database.schema.table3",
                "database.schema.table4"
            ],
            "ColumnsToInclude": {
                "database.schema.table1": [
                    "col1",
                    "col2"
                ],
                "database.schema.table2": [
                    "col1",
                    "col2"
                ]
            },
            "ColumnsToExclude": {
                "database.schema.table5": [
                    "col1",
                    "col2"
                ],
                "database.schema.table6": [
                    "col1",
                    "col2"
                ]
            },
            "TableAnnotations": {
                "database.schema.table1": "table1 refers to Q3 sales",
                "database.schema.table2": "table2 refers to Q4 sales"
            },
            "ColumnAnnotations": {
                "database.schema.table1": {
                    "col1": "col1 refers to Q3 sale total",
                    "col2": "col2 refers to sale location"
                },
                "database.schema.table2": {
                    "col1": "col2 refers to Q4 sale total",
                    "col2": "col2 refers to sale location"
                }
            },
            "CuratedQueries": [
                {
                    "Question": "what is the sales data for Q3",
                    "Answer": "SELECT * FROM table1"
                },
                {
                    "Question": "what is the sales data for Q4",
                    "Answer": "SELECT * FROM table2"
                }
            ],
            "CustomDocuments": [
                "in manufacturing division total sales is price * revenue",
                "in research division total sales is price * revenue"
            ],
            "AdditionalTables": {
                "database.schema.table8": "create table database.schema.table8(col1 int)",
                "database.schema.table9": "create table database.schema.table9(col1 int)"
            },
            "AppendToPrompt": "Apply these guardrails: Queries should never return the secretId field of a user."
        }
    ]
}
```

# Tutorial: utilizzo della funzionalità di SQL generativo Amazon Q con i dati TICKIT
<a name="query-editor-v2-generative-ai-example"></a>

Per creare prompt efficienti che generano istruzioni SQL, devi conoscere lo schema del database e i tuoi dati. I dati TICKIT sono composti da sette tabelle: due tabelle di fatti e cinque di dimensioni. I dati di esempio contengono i record sulle vendite ai partecipanti di eventi di intrattenimento che si sono svolti nel 2008. Per ulteriori informazioni sullo schema di dati TICKIT, consulta [Database di esempio](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. Puoi caricare i dati TICKIT in un database tramite vari metodi sia nella console Amazon Redshift che nell'editor di query v2. L'editor di query v2 fornisce un metodo per caricare i dati TICKIT nel database `sample_data_dev`. Per informazioni, consulta [Caricamento dei dati in un database](query-editor-v2-loading.md). L'editor di query v2 fornisce anche prompt di esempio per i dati TICKIT. Lo scenario seguente descrive una conversazione con SQL generativo per generare istruzioni SQL sui dati di esempio TICKIT. In questo scenario, i dati di esempio TICKIT sono già creati in un database `dev` di un cluster Amazon Redshift. 

**Nota**  
L'esempio illustra una conversazione. Le risposte di SQL generativo potrebbero non corrispondere ai tuoi risultati utilizzando gli stessi prompt.

**Esempio di conversazione con SQL generativo Amazon Q**

1. Nell'**editor** connettiti a un cluster o gruppo di lavoro che contiene i dati di esempio TICKIT.

1. Crea un notebook vuoto e scegli l'icona SQL generativo ![\[Generative SQL\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-amazon-q.png) per aprire il pannello di chat.

1. Inserisci il seguente prompt per generare un'istruzione SQL per verificare il numero di record nella tabella `VENUE`:

   ```
   How many venues are there?
   ```

   ```
   SELECT
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   ```

   Scegli **Aggiungi al notebook** per aggiungere due celle al notebook aperto. Una cella markdown "How many venues are there?" e una contenente l'istruzione SQL generata.

   Nella cella SQL, scegli **Esegui** per ottenere il risultato:

   ```
   count
   ------
   202
   ```

1. Per richiedere un'altra versione di SQL, scegli **Rigenera SQL** e ottieni la seguente risposta:

   ```
   SELECT
     venuestate,
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   GROUP BY
     venuestate
   ```

   Scegli **Aggiungi al notebook** per aggiungere altre due celle al notebook aperto. Una cella markdown "How many venues are there?" e una contenente l'istruzione SQL generata.

   Nella cella SQL, scegli **Esegui** per ottenere il risultato che elenca lo stato dei locali per numero:

   ```
   venuestate num_venues
   ----------------------
   MA         4	
   OH         8	
   MI         5	
   ...
   ```

1. L'assistente SQL generativo può formulare ipotesi su ciò che stai chiedendo. Sebbene non ci siano widget nel database, puoi comunque chiederli. In questo caso, ti restituisce un messaggio indicante che non è stato in grado di generare un'istruzione SQL.

   ```
   How many widgets are there?
   ```

   ```
   I was not able to generate any SQL
   ```

1. Man mano che acquisisci ulteriori informazioni sul tuo database, puoi porre domande più specifiche per generare le istruzioni SQL. Ad esempio, sai che il database contiene i dati sulle vendite relativi a diversi mesi del 2008. Inserisci il seguente prompt per generare un'istruzione SQL per trovare il numero di vendite nel novembre 2008:

   ```
   How many sales were there in November 2008?
   ```

   ```
   SELECT
     COUNT(*) AS num_sales
   FROM
     tickit.sales s
     JOIN tickit.date d ON s.dateid = d.dateid
   WHERE
     d.month = 'November'
     AND d.year = 2008
   ```

   Scegli **Aggiungi al notebook** per aggiungere due celle al notebook aperto. Una cella markdown "How many sales were there in November 2008?" e una contenente l'istruzione SQL generata.

   Nella cella SQL, scegli **Esegui** per ottenere il risultato:

   ```
   num_sales
   -----
   0
   ```

   Tuttavia questo non è il risultato che ti aspettavi.

1. Noti che il predicato `date.month='November'` prevede che il mese nella tabella DATE sia rappresentato da un'abbreviazione del nome del mese. Modifichi il predicato in `d.month='NOV'` ed esegui nuovamente l'istruzione SQL.

   ```
   SELECT
     COUNT(*)
   FROM
     sales
     JOIN date ON sales.dateid = date.dateid
   WHERE
     date.month = 'NOV'
     AND date.year = 2008
   ```

   Nella cella SQL, scegli **Esegui** per ottenere nuovi risultati.

   ```
   count
   -----
   14261
   ```

1. Se fai una domanda che tenta di modificare il database connesso, viene visualizzato un messaggio di avviso insieme alle istruzioni SQL suggerite. Immetti il seguente prompt per generare un'istruzione SQL per inserire i dati in una tabella:

   ```
   Insert 1 into the venue table.
   ```

   ```
   INSERT
   ,
   UPDATE
     OR delete data
   FROM
     the database AS that could potentially change the data.Please provide a query that ONLY selects data
   ```

   ```
   I was not able to generate the correct SQL code. I generated SQL, but you'll have to edit it to work with your database.
   ```

   Se scegli **Aggiungi al notebook** per aggiungere due celle al notebook aperto ed esegui l'istruzione SQL, viene restituito l'esito negativo dell'istruzione SQL.

   ```
   ERROR: syntax error at or near "," Position: 132 [ErrorId: 1-6546764a-011df2691778846219ce6ec2]
   ```

In questo scenario vengono illustrati solo alcuni modi essenziali di interagire con SQL generativo di Amazon Q. Puoi continuare a sperimentare questa tecnologia di IA generativa per iniziare a creare istruzioni SQL per eseguire le query sul tuo database.

# Caricamento dei dati in un database
<a name="query-editor-v2-loading"></a>

Puoi utilizzare l'editor di query v2 per caricare i dati in un database in un cluster o un gruppo di lavoro di Amazon Redshift. In questa sezione viene illustrato come caricare i dati di esempio, i dati da S3 e i dati da una configurazione di file e da un flusso di lavoro locali.

## Dati campione
<a name="query-editor-v2-loading-sample-data"></a>

L'editor di query v2 viene fornito con dati e notebook di esempio che possono essere caricati in un database di esempio e nello schema corrispondente. 

Per caricare i dati di esempio, scegliere l'icona ![\[External\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/external.png) associata ai dati di esempio che si desidera caricare. Query Editor V2 carica quindi i dati in uno schema nel database `sample_data_dev` e crea una cartella di notebook salvati. 

Sono disponibili i seguenti set di dati di esempio.

**tickit**  
Nella maggior parte degli esempi della documentazione di Amazon Redshift viene utilizzato un set di dati di esempio denominato `tickit`. Questi dati sono composti da sette tabelle: due tabelle di fatti e cinque di dimensioni. Quando si caricano questi dati, lo schema `tickit` viene aggiornato con i dati di esempio. Per informazioni sui dati `tickit`, consultare [Database di esempio](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

**tpch**  
Questi dati vengono utilizzati per un benchmark di supporto decisionale. Quando si caricano questi dati, lo schema `tpch` viene aggiornato con i dati di esempio. Per ulteriori informazioni sui dati `tpch`, consulta [TPC-H](http://www.tpc.org/tpch/). 

**tpcds**  
Questi dati vengono utilizzati per un benchmark di supporto decisionale. Quando si caricano questi dati, lo schema `tpcds` viene aggiornato con i dati di esempio. Per ulteriori informazioni sui dati `tpcds`, consulta [TPC-DS](http://www.tpc.org/tpcds/). 

# Caricamento di dati da Amazon S3
<a name="query-editor-v2-loading-data"></a>

È possibile caricare dati Amazon S3 in una tabella esistente o in una nuova tabella.

**Per caricare i dati in una tabella esistente**

Il comando COPIA viene utilizzato dall'editor di query v2 per caricare i dati da Amazon S3. Il comando COPY generato e utilizzato nell'editor di query v2 della procedura guidata Carica dati supporta molti dei parametri disponibili per la sintassi del comando COPY per caricare i dati da Amazon S3. Per informazioni sul comando COPIA e sulle opzioni utilizzate per copiare il caricamento da Amazon S3, consultare [COPIA da Amazon Simple Storage Service](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) nella *Guida per sviluppatori di database Amazon Redshift*. 

1. Confermare che la tabella sia già stata creata nel database in cui si desidera caricare i dati. 

1. Prima di continuare, verifica la connessione al database di destinazione nel pannello della visualizzazione ad albero dell'editor di query v2. È possibile creare una connessione utilizzando il menu contestuale (clic con il pulsante destro del mouse) al cluster o al gruppo di lavoro in cui verranno caricati i dati.

   Scegliere ![\[Load\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-upload.png)**Carica dati**.

1. Per **Origine dati**, scegli **Carica dal bucket S3**.

1. In **S3 URIs**, scegli **Browse S3** per cercare il bucket Amazon S3 che contiene i dati da caricare. 

1. Se il bucket Amazon S3 specificato non si trova nella Regione AWS stessa tabella di destinazione, scegli la **posizione del file S3** Regione AWS in cui si trovano i dati.

1. Scegli **Questo file è un file manifesto se il file** Amazon S3 è in realtà un manifesto contenente più bucket Amazon S3. URIs

1. Scegliere il **Formato del file** per il file da caricare. I formati dati supportati sono CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET e ORC. A seconda del formato di file specificato, è possibile scegliere le rispettive **Opzioni file**. È possibile anche selezionare **I dati sono crittografati** se i dati sono crittografati e inserire l'Amazon Resource Name (ARN) della chiave KMS utilizzata per crittografare i dati.

   Se si sceglie CSV o DELIMITER, è anche possibile scegliere il **Carattere delimitatore** ed eventualmente l'opzione **Ignora righe di intestazione** se il numero di righe specificato rappresenta effettivamente nomi di colonna e non dati da caricare.

1. Scegliere un metodo di compressione per comprimere il file. L'impostazione predefinita è nessuna compressione.

1. (Facoltativo) Le **Impostazioni avanzate** supportano vari **Parametri di conversione dei dati** e **Operazioni di caricamento**. Inserisci queste informazioni secondo necessità per il tuo file.

   Per ulteriori informazioni sulla conversione dei dati e sui parametri di caricamento dei dati, consultare [Parametri di conversione dei dati](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) e [Operazioni di caricamento dati](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*

1. Scegli **Next (Successivo)**.

1. Scegli **Carica tabella esistente**.

1. Conferma o scegli la posizione della **Tabella di destinazione** inclusi **Cluster o gruppo di lavoro**, **Database**, **Schema** e il nome **Tabella** in cui sono caricati i dati.

1. Scegliere un **ruolo IAM** che dispone delle autorizzazioni necessarie per caricare i dati da Amazon S3.

1. (Facoltativo) Scegli i nomi delle colonne per inserirli in **Column mapping** (Mappatura colonne) per mappare le colonne nell'ordine del file dei dati di input.

1. Scegliere **Caricare dati** per avviare il caricamento dei dati.

   Al termine del caricamento, l'editor di query viene visualizzato con il comando COPIA generato e utilizzato per caricare i dati. Viene mostrato il **Risultato** di COPIA. In caso di esito positivo, è ora possibile utilizzare SQL per selezionare i dati dalla tabella caricata. Quando si verifica un errore, eseguire una query sulla visualizzazione di sistema STL\$1LOAD\$1ERRORS per ottenere ulteriori dettagli. Per informazioni sugli errori del comando COPIA, consultare [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

Quando si caricano i dati in una nuova tabella, l'editor di query v2 crea prima la tabella nel database, quindi carica i dati come operazioni separate nello stesso flusso di lavoro.

**Caricamento di dati in una nuova tabella**

Il comando COPIA viene utilizzato dall'editor di query v2 per caricare i dati da Amazon S3. Il comando COPY generato e utilizzato nell'editor di query v2 della procedura guidata Carica dati supporta molti dei parametri disponibili per la sintassi del comando COPY per caricare i dati da Amazon S3. Per informazioni sul comando COPIA e sulle opzioni utilizzate per copiare il caricamento da Amazon S3, consultare [COPIA da Amazon Simple Storage Service](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) nella *Guida per sviluppatori di database Amazon Redshift*. 

1. Prima di continuare, verifica la connessione al database di destinazione nel pannello della visualizzazione ad albero dell'editor di query v2. È possibile creare una connessione utilizzando il menu contestuale (clic con il pulsante destro del mouse) al cluster o al gruppo di lavoro in cui verranno caricati i dati.

   Scegliere ![\[Load\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-upload.png)**Carica dati**.

1. Per **Origine dati**, scegli **Carica dal bucket S3**.

1. In **S3 URIs**, scegli **Browse S3** per cercare il bucket Amazon S3 che contiene i dati da caricare. 

1. Se il bucket Amazon S3 specificato non si trova nella Regione AWS stessa tabella di destinazione, scegli la **posizione del file S3** Regione AWS in cui si trovano i dati.

1. Scegli **Questo file è un file manifesto se il file** Amazon S3 è in realtà un manifesto contenente più bucket Amazon S3. URIs

1. Scegliere il **Formato del file** per il file da caricare. I formati dati supportati sono CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET e ORC. A seconda del formato di file specificato, è possibile scegliere le rispettive **Opzioni file**. È possibile anche selezionare **I dati sono crittografati** se i dati sono crittografati e inserire l'Amazon Resource Name (ARN) della chiave KMS utilizzata per crittografare i dati.

   Se si sceglie CSV o DELIMITER, è anche possibile scegliere il **Carattere delimitatore** ed eventualmente l'opzione **Ignora righe di intestazione** se il numero di righe specificato rappresenta effettivamente nomi di colonna e non dati da caricare.

1. Scegliere un metodo di compressione per comprimere il file. L'impostazione predefinita è nessuna compressione.

1. (Facoltativo) Le **Impostazioni avanzate** supportano vari **Parametri di conversione dei dati** e **Operazioni di caricamento**. Inserisci queste informazioni secondo necessità per il tuo file.

   Per ulteriori informazioni sulla conversione dei dati e sui parametri di caricamento dei dati, consultare [Parametri di conversione dei dati](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) e [Operazioni di caricamento dati](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*

1. Scegli **Next (Successivo)**.

1. Scegli **Carica nuova tabella**.

   Le colonne della tabella sono dedotte dai dati di input. È possibile modificare la definizione dello schema della tabella aggiungendo colonne e dettagli della tabella. Per tornare allo schema della tabella dedotta dall'editor di query v2, scegli **Ripristina i valori predefiniti**.

1. Conferma o scegli la posizione della **Tabella di destinazione** inclusi **Cluster o gruppo di lavoro**, **Database** e **Schema** in cui sono caricati i dati. Inserisci un nome per la **tabella** da creare.

1. Scegliere un **ruolo IAM** che dispone delle autorizzazioni necessarie per caricare i dati da Amazon S3.

1. Scegli **Crea tabella** per creare la tabella utilizzando la definizione mostrata.

   Viene visualizzato un riepilogo della definizione della tabella. La tabella viene creata nel database. Per eliminare la tabella in un secondo momento, esegui un comando SQL DROP TABLE. Per ulteriori informazioni, consulta [DROP TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

1. Scegliere **Caricare dati** per avviare il caricamento dei dati.

   Al termine del caricamento, l'editor di query viene visualizzato con il comando COPIA generato e utilizzato per caricare i dati. Viene mostrato il **Risultato** di COPIA. In caso di esito positivo, è ora possibile utilizzare SQL per selezionare i dati dalla tabella caricata. Quando si verifica un errore, eseguire una query sulla visualizzazione di sistema STL\$1LOAD\$1ERRORS per ottenere ulteriori dettagli. Per informazioni sugli errori del comando COPIA, consultare [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

# Caricamento di dati da una configurazione di file e da un flusso di lavoro locali
<a name="query-editor-v2-loading-data-local"></a>

È possibile caricare dati da un file locale in una tabella nuova o esistente.

## Configurazione dell'amministratore per caricare dati da un file locale
<a name="query-editor-v2-loading-data-local-setup"></a>

L'amministratore dell'editor di query v2 deve specificare il bucket Amazon S3 comune nella finestra **Account settings** (Impostazioni account). Gli utenti dell'account devono essere configurati con le autorizzazioni appropriate.
+ Autorizzazioni IAM richieste: gli utenti che caricano dal file locale devono disporre delle autorizzazioni `s3:ListBucket`, `s3:GetBucketLocation`, `s3:putObject`, `s3:getObject` e `s3:deleteObject`. *optional-prefix*È possibile specificare per limitare l'uso di questo bucket relativo all'editor di query v2 agli oggetti con questo prefisso. Puoi utilizzare questa opzione quando utilizzi lo stesso bucket Amazon S3 per usi diversi dall'editor di query v2. Per ulteriori informazioni su bucket e prefissi, consulta [Gestione dell'accesso utente a cartelle specifiche](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-folders) nella *Guida per l'utente di Amazon Simple Storage Service*. Per garantire che l'accesso ai dati tra utenti non sia consentito, consigliamo all'amministratore dell'editor di query v2 di utilizzare una policy dei bucket Amazon S3 per limitare l'accesso agli oggetti in base all'`aws:userid`. L'esempio seguente consente le autorizzazioni di Amazon S3 a *<staging-bucket-name>* con accesso in lettura/scrittura solo agli oggetti Amazon S3 con il prefisso as. `aws:userid`

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetBucketLocation"
              ],
              "Resource": [
                  "arn:aws:s3:::<staging-bucket-name>"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*"
              ]
          }
      ]
  }
  ```

------
+ Separazione dei dati: consigliamo agli utenti di non avere accesso ai dati degli altri utenti (anche solo per breve tempo). Il caricamento da un file locale utilizza il bucket temporaneo di Amazon S3 configurato dall'amministratore dell'editor di query v2. Configura la policy dei bucket per il bucket temporaneo per fornire la separazione dei dati tra gli utenti. L'esempio seguente mostra una policy bucket che separa i dati tra gli utenti di. *<staging-bucket-name>*

------
#### [ JSON ]

****  

  ```
  {
   "Version":"2012-10-17",		 	 	 
      "Statement": [
          {"Sid": "userIdPolicy",
              "Effect": "Deny",
              "Principal": "*",
              "Action": ["s3:PutObject",
                         "s3:GetObject",
                         "s3:DeleteObject"],
              "NotResource": [
                  "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*"
              ]
           }
      ]
  }
  ```

------

## Caricamento di dati da un file locale
<a name="query-editor-v2-loading-data-local-procedure"></a>

**Caricamento di dati di un file locale in una tabella esistente**

L'amministratore dell'editor di query v2 deve specificare il bucket Amazon S3 comune nella finestra **Impostazioni account**. L'editor di query v2 carica automaticamente il file locale in un bucket Amazon S3 comune utilizzato dall'account dell'utente, quindi utilizza il comando COPY per caricare i dati. Il comando COPY generato ed eseguito dalla finestra di caricamento del file locale dell'editor di query v2 supporta molti dei parametri disponibili per la sintassi del comando COPY da copiare da Amazon S3. Per informazioni sul comando COPY e sulle opzioni utilizzate per caricare i dati da Amazon S3, consulta [COPY da Amazon S3](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) nella *Guida per sviluppatori di database Amazon Redshift*. 

1. Confermare che la tabella sia già stata creata nel database in cui si desidera caricare i dati. 

1. Verifica che si attiva la connessione al database di destinazione nel pannello della visualizzazione ad albero dell'editor di query v2. È possibile creare una connessione utilizzando il menu contestuale (clic con il pulsante destro del mouse) al cluster o al gruppo di lavoro in cui verranno caricati i dati. 

1. Scegliere ![\[Load\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-upload.png)**Carica dati**.

1. Per **Data source** (Origine dati), scegli **Load from local file** (Carica da file locale).

1. Scegli **Sfoglia** per trovare il file che contiene i dati per **Carica file**. Per impostazione predefinita vengono visualizzati i file con estensione `.csv`, `.avro` `.parquet` e `.orc`, ma è possibile scegliere altri tipi di file. Il file può avere una dimensione massima di 100 MB.

1. Scegliere il **Formato del file** per il file da caricare. I formati dati supportati sono CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET e ORC. A seconda del formato di file specificato, è possibile scegliere le rispettive **Opzioni file**. È possibile anche selezionare **I dati sono crittografati** se i dati sono crittografati e inserire l'Amazon Resource Name (ARN) della chiave KMS utilizzata per crittografare i dati.

   Se si sceglie CSV o DELIMITER, è anche possibile scegliere il **Carattere delimitatore** ed eventualmente l'opzione **Ignora righe di intestazione** se il numero di righe specificato rappresenta effettivamente nomi di colonna e non dati da caricare.

1. (Facoltativo) Le **Impostazioni avanzate** supportano vari **Parametri di conversione dei dati** e **Operazioni di caricamento**. Inserisci queste informazioni secondo necessità per il tuo file.

   Per ulteriori informazioni sulla conversione dei dati e sui parametri di caricamento dei dati, consultare [Parametri di conversione dei dati](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) e [Operazioni di caricamento dati](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*

1. Scegli **Next (Successivo)**.

1. Scegli **Carica tabella esistente**.

1. Conferma o scegli la posizione della **Tabella di destinazione** inclusi **Cluster o gruppo di lavoro**, **Database**, **Schema** e il nome **Tabella** in cui sono caricati i dati.

1. (Facoltativo) Puoi scegliere i nomi delle colonne per inserirli in **Column mapping** (Mappatura colonne) per mappare le colonne nell'ordine del file dei dati di input.

1. Scegliere **Caricare dati** per avviare il caricamento dei dati.

   Al termine del caricamento, viene visualizzato un messaggio che indica se il caricamento è andato a buon fine o meno. In caso di esito positivo, è ora possibile utilizzare SQL per selezionare i dati dalla tabella caricata. Quando si verifica un errore, eseguire una query sulla visualizzazione di sistema STL\$1LOAD\$1ERRORS per ottenere ulteriori dettagli. Per informazioni sugli errori del comando COPIA, consultare [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

   Il modello del comando COPY utilizzato per caricare i dati viene visualizzato in **Query history** (Cronologia query). Questo modello di comando COPY mostra alcuni dei parametri utilizzati, ma non può essere eseguito direttamente in una scheda dell'editor. Per ulteriori informazioni sulla cronologia delle query, consulta [Visualizzazione della cronologia delle query e delle schede](query-editor-v2-history.md).

Quando si caricano i dati in una nuova tabella, l'editor di query v2 crea prima la tabella nel database, quindi carica i dati come operazioni separate nello stesso flusso di lavoro.

**Caricamento di dati di un file locale in una nuova tabella**

L'amministratore dell'editor di query v2 deve specificare il bucket Amazon S3 comune nella finestra **Account settings** (Impostazioni account). Il file locale viene caricato automaticamente in un bucket Amazon S3 comune utilizzato dal tuo account, quindi l'editor di query v2 utilizza il comando COPY per caricare i dati. Il comando COPY generato ed eseguito dalla finestra di caricamento del file locale dell'editor di query v2 supporta molti dei parametri disponibili per la sintassi del comando COPY da copiare da Amazon S3. Per informazioni sul comando COPY e sulle opzioni utilizzate per caricare i dati da Amazon S3, consulta [COPY da Amazon S3](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) nella *Guida per sviluppatori di database Amazon Redshift*. 

1. Verifica che si attiva la connessione al database di destinazione nel pannello della visualizzazione ad albero dell'editor di query v2. È possibile creare una connessione utilizzando il menu contestuale (clic con il pulsante destro del mouse) al cluster o al gruppo di lavoro in cui verranno caricati i dati. 

1. Scegliere ![\[Load\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-upload.png)**Carica dati**.

1. Per **Data source** (Origine dati), scegli **Load from local file** (Carica da file locale).

1. Scegli **Sfoglia** per trovare il file che contiene i dati per **Carica file**. Per impostazione predefinita vengono visualizzati i file con estensione `.csv`, `.avro` `.parquet` e `.orc`, ma è possibile scegliere altri tipi di file. Il file può avere una dimensione massima di 100 MB.

1. Scegliere il **Formato del file** per il file da caricare. I formati dati supportati sono CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET e ORC. A seconda del formato di file specificato, è possibile scegliere le rispettive **Opzioni file**. È possibile anche selezionare **I dati sono crittografati** se i dati sono crittografati e inserire l'Amazon Resource Name (ARN) della chiave KMS utilizzata per crittografare i dati.

   Se si sceglie CSV o DELIMITER, è anche possibile scegliere il **Carattere delimitatore** ed eventualmente l'opzione **Ignora righe di intestazione** se il numero di righe specificato rappresenta effettivamente nomi di colonna e non dati da caricare.

1. (Facoltativo) Le **Impostazioni avanzate** supportano vari **Parametri di conversione dei dati** e **Operazioni di caricamento**. Inserisci queste informazioni secondo necessità per il tuo file.

   Per ulteriori informazioni sulla conversione dei dati e sui parametri di caricamento dei dati, consultare [Parametri di conversione dei dati](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) e [Operazioni di caricamento dati](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*

1. Scegli **Next (Successivo)**.

1. Scegli **Carica nuova tabella**.

1. Conferma o scegli la posizione della **Tabella di destinazione** inclusi **Cluster o gruppo di lavoro**, **Database** e **Schema** in cui sono caricati i dati. Inserisci un nome per la **tabella** da creare.

1. Scegli **Crea tabella** per creare la tabella utilizzando la definizione mostrata.

   Viene visualizzato un riepilogo della definizione della tabella. La tabella viene creata nel database. Per eliminare la tabella in un secondo momento, esegui un comando SQL DROP TABLE. Per ulteriori informazioni, consulta [DROP TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

1. Scegliere **Caricare dati** per avviare il caricamento dei dati.

   Al termine del caricamento, viene visualizzato un messaggio che indica se il caricamento è andato a buon fine o meno. In caso di esito positivo, è ora possibile utilizzare SQL per selezionare i dati dalla tabella caricata. Quando si verifica un errore, eseguire una query sulla visualizzazione di sistema STL\$1LOAD\$1ERRORS per ottenere ulteriori dettagli. Per informazioni sugli errori del comando COPIA, consultare [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

   Il modello del comando COPY utilizzato per caricare i dati viene visualizzato in **Query history** (Cronologia query). Questo modello di comando COPY mostra alcuni dei parametri utilizzati, ma non può essere eseguito direttamente in una scheda dell'editor. Per ulteriori informazioni sulla cronologia delle query, consulta [Visualizzazione della cronologia delle query e delle schede](query-editor-v2-history.md).

# Creazione di query con Amazon Redshift
<a name="query-editor-v2-query-run"></a>

È possibile inserire una query nell'editor o selezionare una query salvata dall'elenco **Query** e scegliere **Esegui**.

Per impostazione predefinita, **Limite 100** è impostato per limitare i risultati a 100 righe. È possibile disattivare questa opzione per restituire un set di risultati più ampio. Se si disattiva questa opzione, è possibile includere l'opzione LIMITE nell'istruzione SQL se si desidera evitare set di risultati molto grande. Per ulteriori informazioni, consultare [Clausola ORDINA PER](https://docs.aws.amazon.com/redshift/latest/dg/r_ORDER_BY_clause.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

Per visualizzare un piano di query nell'area dei risultati, attivare **Spiega**. Attiva **Explain graph** (Grafico Explain) affinché nei risultati venga visualizzata anche una rappresentazione grafica del piano Explain.

Per salvare una query nella cartella **Query**, scegliere **Salva**.

Per una query riuscita, viene visualizzato un messaggio di successo. Se la query restituisce informazioni, i risultati vengono visualizzati nella sezione **Risultati**. Se il numero di risultati supera l'area di visualizzazione, i numeri vengono visualizzati nella parte superiore dell'area dei risultati. È possibile scegliere i numeri per visualizzare le pagine successive dei risultati.

È possibile filtrare e ordinare **Risultato** per ogni colonna. Per inserire i criteri di filtro nell'intestazione della colonna dei risultati, passa il mouse sopra la colonna per visualizzare un menu (![\[Filter menu\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/menu.png)) dove è possibile inserire i criteri per filtrare la colonna.

Se la query contiene un errore, l'editor di query v2 visualizza un messaggio di errore nell'area dei risultati. Il messaggio fornisce informazioni su come correggere la query.

È possibile esportare o copiare i risultati della query utilizzando il menu contestuale (pulsante destro del mouse) nell'area dei risultati come indicato di seguito:
+ Scegli **Copia in** e **JSON** o **CSV** per scaricare le righe selezionate in un file.
+ Scegli **Copia righe** per copiare le righe selezionate negli appunti.
+ Scegli **Copia righe con intestazioni** per copiare le righe selezionate con intestazioni di colonna negli appunti.

Puoi scegliere **Esporta** nell’area dei risultati, quindi scegli **JSON** o **CSV** per scaricare l’intero insieme di risultati di riga in un file. Il numero di righe nel set di risultati potrebbe essere limitato dall'opzione **Limite** o dalla clausola SQL `limit` nella query. La dimensione massima del set di risultati scaricato è 5 MB.

È inoltre possibile utilizzare i tasti di scelta rapida Ctrl\$1C su Windows o Cmd\$1C su macOS per copiare i dati dalla pagina dei risultati corrente negli appunti. Se ci sono righe selezionate, la cella con lo stato attivo viene copiata negli appunti. Se ci sono righe selezionate, queste ultime vengono copiate negli appunti.

Per aggiungere una nuova scheda della query, selezionare l'icona ![\[New query tab\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png), quindi **Editor**, che appare nella riga con le schede della query. È possibile che la scheda della query utilizzi `Isolated session`. Con una sessione isolata, i risultati di un comando SQL in una scheda dell'editor, ad esempio la creazione di una tabella temporanea, non sono visibili in un'altra scheda dell'editor. Quando si apre una scheda nell'editor di query v2, per impostazione predefinita viene usata una sessione isolata. 

**Per eseguire una query**

1. Nell'area della query effettuare una delle seguenti operazioni:
   + Inserisci una query.
   + Incolla una query copiata.
   + Selezionare la cartella **Query**, aprire dal menu contestuale (tasto destro del mouse) una query salvata e scegliere **Aprire una query**.

1. Conferma di aver scelto il valore corretto di **Cluster** o **Workgroup** (Gruppo di lavoro) e **Database** per l'SQL che intendi eseguire. 

   Inizialmente, puoi scegliere **Cluster** o **Workgroup** (Gruppo di lavoro) nella struttura ad albero. Nella stessa struttura, scegli anche **Database**.

   Puoi modificare i valori nei campi **Cluster** o **Gruppo di lavoro** e **Database** all’interno di ogni scheda dell’editor mediante il controllo a discesa accanto all’intestazione **Sessione isolata**.

   Per ogni scheda dell'editor, è possibile scegliere se eseguire il codice SQL in una **sessione isolata**. Una sessione isolata dispone di una propria connessione a un database. È possibile utilizzarla per eseguire comandi SQL isolati rispetto alle altre sessioni dell'editor di query. Per ulteriori informazioni sulle connessioni, consulta [Apertura editor di query v2](query-editor-v2-open.md).

1. Scegli **Esegui**.

   L'area **Risultati** si apre e visualizza i risultati della query.

**Per visualizzare il piano di spiegazione per una query**

1. Seleziona la query.

1. Attivare **Spiega**.

   Per impostazione predefinita, anche **Spiega il grafico** è attivato.

1. Scegli **Esegui**.

   La query viene eseguita e il piano di spiegazione viene visualizzato nell'area **Risultato** della query.

L'editor di query v2 supporta le seguenti funzionalità:
+ È possibile autorizzare query con più istruzioni SQL in un'unica scheda di query. Le query vengono eseguite in serie e vengono aperte più schede dei risultati per ogni query. 
+ È possibile autorizzare query con variabili di sessione e tabelle temporanee.
+ È possibile autorizzare query con parametri sostituibili designati da `${parameter}`. È possibile autorizzare la query SQL con più parametri sostituibili e utilizzare lo stesso parametro in più posizioni nell'istruzione SQL. 

  Quando la query viene eseguita, viene visualizzata una finestra per inserire il valore del parametro. Ogni volta che si esegue la query, viene visualizzata la finestra per immettere i valori dei parametri. 

  Per vedere un esempio, consulta [Esempio: vendite superiori a un parametro specifico](#query-editor-v2-example-sales-qtysold-greater-than-parameter). 
+ Viene eseguito automaticamente un controllo delle versioni delle query. È possibile scegliere una versione precedente di una query da eseguire.
+ Non è necessario attendere il completamento di una query prima di continuare con il flusso di lavoro. Le query continuano ad essere eseguite anche se si chiude l'editor di query.
+ Quando si creano query, è supportato il completamento automatico dei nomi di schema, tabella e colonna.

L'editor SQL supporta le seguenti caratteristiche:
+ Le parentesi iniziali e finali utilizzate in SQL hanno colori corrispondenti. Le linee verticali sono mostrate nell'editor per aiutare ad abbinare le parentesi.
+ Puoi comprimere ed espandere sezioni dell'SQL. 
+ Puoi ricercare e sostituire il testo nell'SQL.
+ È possibile utilizzare i tasti di scelta rapida per diverse attività comuni di modifica.
+ Gli errori SQL sono evidenziati nell'editor per facilitare l'individuazione delle aree problematiche.

Per una demo delle caratteristiche dell'editor, guarda il video seguente. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/9JAq0yDs0YE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/9JAq0yDs0YE)


## Esempi di query
<a name="query-editor-v2-examples"></a>

Di seguito vengono fornite le descrizioni dei vari tipi di query che è possibile eseguire. 

I dati utilizzati in molte di queste query provengono dallo schema di esempio `tickit`. Per ulteriori informazioni sul caricamento dei dati di esempio in `tickit`, consulta [Caricamento dei dati in un database](query-editor-v2-loading.md). Per informazioni sui dati di esempio `tickit`, consulta [Database di esempio](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

Quando si eseguono queste query di esempio, confermare di aver scelto il database corretto nell'editor, ad esempio `sample_data_dev`.

**Topics**
+ [Esempio: impostazione delle variabili di sessione](#query-editor-v2-example-set-session-variable)
+ [Esempio: migliore evento per vendite totali](#query-editor-v2-example-top-event-sales)
+ [Esempio: vendite superiori a un parametro specifico](#query-editor-v2-example-sales-qtysold-greater-than-parameter)
+ [Esempio: Creazione di una tabella temporanea](#query-editor-v2-example-create-temporary-table)
+ [Esempio: selezione da una tabella temporanea](#query-editor-v2-example-select-from-temporary-table)

### Esempio: impostazione delle variabili di sessione
<a name="query-editor-v2-example-set-session-variable"></a>

Il comando seguente imposta il parametro di configurazione del server `search_path` *pubblico* per la sessione. Per ulteriori informazioni, consultare [IMPOSTA](https://docs.aws.amazon.com/redshift/latest/dg/r_SET.html) e [search\$1path](https://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

```
set search_path to public;
```

### Esempio: migliore evento per vendite totali
<a name="query-editor-v2-example-top-event-sales"></a>

La seguente query trova l'evento con il maggior numero di vendite. 

```
select eventname, count(salesid) totalorders, sum(pricepaid) totalsales
from sales, event
where sales.eventid=event.eventid
group by eventname
order by 3;
```

Di seguito è riportato un elenco parziale dei risultati.

```
eventname           totalorders       totalsales
White Christmas         20              9352
Joshua Radin            38             23469
Beach Boys              58             30383
Linda Ronstadt          56             35043
Rascal Flatts           76             38214
Billy Idol              67             40101
Stephenie Meyer         72             41509
Indigo Girls            57             45399
...
```

### Esempio: vendite superiori a un parametro specifico
<a name="query-editor-v2-example-sales-qtysold-greater-than-parameter"></a>

La seguente query rileva le vendite in cui la quantità venduta è superiore al parametro specificato da `${numberoforders}`. Quando il valore del parametro è `7`, il risultato è di 60 righe. Quando si esegue la query, l'editor di query v2 visualizza la finestra **Modulo di esecuzione della query** per raccogliere il valore dei parametri nell'istruzione SQL. 

```
select salesid, qtysold
from sales 
where qtysold > ${numberoforders}
order by 2;
```

Di seguito è riportato un elenco parziale dei risultati.

```
salesid	qtysold
20005	8
21279	8
130232	8
42737	8
74681	8
67103	8
105533	8
91620	8
121552	8
...
```

### Esempio: Creazione di una tabella temporanea
<a name="query-editor-v2-example-create-temporary-table"></a>

La seguente istruzione crea la tabella temporanea *eventsalestemp* selezionando le informazioni dalle tabelle *vendite* e *evento*. 

```
create temporary table eventsalestemp as
select eventname, count(salesid) totalorders, sum(pricepaid) totalsales
from sales, event
where sales.eventid=event.eventid
group by eventname;
```

### Esempio: selezione da una tabella temporanea
<a name="query-editor-v2-example-select-from-temporary-table"></a>

La seguente istruzione seleziona eventi, ordini totali e vendite totali dalla tabella temporanea *eventsalstemp*, ordinato per ordini totali. 

```
select eventname,  totalorders,  totalsales
from eventsalestemp
order by 2;
```

Di seguito è riportato un elenco parziale dei risultati.

```
eventname          totalorders   totalsales
White Christmas        20          9352
Joshua Radin           38         23469
Martina McBride        50         52932
Linda Ronstadt         56         35043
Indigo Girls           57         45399
Beach Boys             58         30383
...
```

# Notebook in Amazon Redshift
<a name="query-editor-v2-notebooks"></a>

È possibile utilizzare i notebook per organizzare, annotare e condividere più query SQL in un singolo documento. È possibile aggiungere più query SQL e celle Markdown a un notebook. I notebook offrono un modo per raggruppare query e spiegazioni associate a un'analisi dei dati in un singolo documento utilizzando più query e celle Markdown. È possibile aggiungere testo e formattare l'aspetto utilizzando la sintassi Markdown per fornire contesto e informazioni aggiuntive per le attività di analisi dei dati. È possibile condividere i notebook con i membri del team.

Per utilizzare i notebook, è necessario aggiungere l'autorizzazione per i notebook al principale IAM (un utente IAM o un ruolo IAM). Come best practice, consigliamo di collegare le policy di autorizzazioni a un ruolo IAM, che quindi viene assegnato a utenti e gruppi secondo le necessità. Per ulteriori informazioni, consulta [Identity and access management in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). È possibile aggiungere l'autorizzazione a una delle policy gestite dell'editor di query v2. Per ulteriori informazioni, consulta [Accesso all'editor di query v2](query-editor-v2-getting-started.md#query-editor-v2-configure).

Puoi far funzionare tutte le celle di un notebook in sequenza. La cella di query SQL di un notebook include la maggior parte delle funzionalità di una scheda dell'editor di query. Per ulteriori informazioni, consulta [Creazione di query con Amazon Redshift](query-editor-v2-query-run.md). Di seguito sono elencate le differenze tra una scheda dell'editor di query e una cella SQL in un notebook.
+ In un notebook non esiste un controllo per eseguire `Explain` su un'istruzione SQL.
+ È possibile creare un solo grafico per cella SQL in un notebook.

È possibile esportare e importare notebook in file creati con l'editor di query v2. L'estensione dei file è `.ipynb` e la dimensione massima dei file è 5 MB. Le celle SQL e Markdown vengono archiviate nei file. Un cluster o un gruppo di lavoro e un database non vengono archiviati nel notebook esportato. Quando si apre un notebook importato, occorre scegliere il cluster o il gruppo di lavoro e il database in cui eseguirlo. Dopo aver eseguito le celle SQL, è possibile scegliere nella scheda dei risultati se visualizzare la pagina corrente dei risultati come grafico. Il set di risultati di una query non è archiviato nel notebook.

# Creare un taccuino
<a name="query-editor-v2-notebooks-create"></a>

È possibile creare un taccuino per organizzare, annotare e condividere più query SQL in un unico documento. 

**Creazione di un notebook**

1. Dal menu del navigatore, scegliete l'icona Editor (). ![\[Horizontal lines representing redacted or censored text.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-align-left.png)

1. Scegliete l'icona con il segno più (![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png)), quindi scegliete **Notebook**.

   Per impostazione predefinita, nel notebook viene visualizzata una cella di query SQL.

1. Nella cella della query SQL effettuare una delle seguenti operazioni:
   + Inserisci una query.
   + Incolla una query copiata.

1. (Facoltativamente) Scegli l'icona più (![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png)), quindi scegli **Markdown per aggiungere una cella Markdown** in cui puoi fornire testo descrittivo o esplicativo utilizzando la sintassi Markdown standard. 

1. **(Facoltativamente) Scegliete l'icona più (![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png)), quindi scegliete SQL per inserire una cella SQL.** 

È possibile rinominare i taccuini utilizzando l'icona a forma di matita (). ![\[Pencil icon representing an editing or writing function.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-edit.png)

Dall'icona del menu (![\[Three dots arranged horizontally, representing an ellipsis or "more" menu icon.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-more.png)), è inoltre possibile eseguire le seguenti operazioni su un notebook:
+ ![\[Share\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-share.png) **Share with my team** (Condividi con il mio team): consente di condividere il notebook con il team come definito dai tag. Per condividere una query con il team, assicurati di disporre del tag principale `sqlworkbench-team` impostato sullo stesso valore del resto dei membri del team nel tuo account. Ad esempio, un amministratore potrebbe impostare il valore su `accounting-team` per tutti nel reparto contabilità. Per vedere un esempio, consulta [Autorizzazioni necessarie per utilizzare l'editor della query v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).
+ ![\[Export\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-export.png) **Export** (Esporta): consente di esportare il notebook in un file locale con estensione `.ipynb`.
+ ![\[Import query\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-import.png)**Interrogazione** di importazione: per importare un'interrogazione da un file locale in una cella del taccuino. È possibile importare file con `.sql` `.txt` estensioni.
+  ![\[Save\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-floppy-disk.png) **Save version** (Salva versione): consente di creare una versione del notebook. Per visualizzare le versioni di un notebook, accedi ai notebook salvati e apri **Version history** (Cronologia delle versioni).
+  ![\[Duplicate\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-duplicate.png) **Duplicate** (Duplica): consente di creare una copia del notebook e aprirlo in una nuova scheda del notebook. 
+  ![\[Shortcuts\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-key-command.png) **Shortcuts** (Scorciatoie): consente di visualizzare le scorciatoie disponibili durante la creazione di un notebook. 

# Importazione nei taccuini
<a name="query-editor-v2-notebooks-import"></a>

È possibile importare un intero notebook o singole celle SQL in un notebook Query Editor v2.

**Per importare un intero taccuino da un file locale in **I miei taccuini, scegli ![\[Import\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-import.png) **Importa, quindi scegli Importa** taccuino**.** Vai al `.ipynb` file che contiene il tuo taccuino. Il notebook viene importato nella cartella del notebook attualmente aperta. È possibile aprire il notebook nell'editor del notebook.

Per importare una query da un file locale in una cella SQL di un taccuino, scegli ![\[Import\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-import.png) **Importa**, quindi scegli **Importa interrogazione**. Nella finestra **Importa interrogazione**, segui le istruzioni sullo schermo per scegliere file e cartelle che possono essere importati come interrogazione in un nuovo taccuino o in un taccuino esistente. I file devono avere un'estensione di `.sql` o`.txt`. Ogni query può contenere fino a 10.000 caratteri. Quando lo aggiungi a un taccuino esistente, scegli quale taccuino tra tutti i taccuini nell'elenco dei taccuini **salvati**. Le interrogazioni importate vengono aggiunte come celle SQL alla fine del taccuino. Quando si sceglie un nuovo taccuino, si sceglie il nome del taccuino e questo viene creato nella cartella taccuini salvati attualmente aperta. 

**Nota**  
Quando `.sql` crei file su macOS utilizzando l' TextEditapplicazione, potresti riscontrare un problema a causa dell'aggiunta di un'ulteriore estensione nascosta al file. Ad esempio, un file denominato `Test.sql` created in TextEdit potrebbe finire per essere salvato come`Test.sql.rtf`. L'editor di query v2 non supporta i file con l'`.rtf`estensione. Tuttavia, se create un `.sql` file utilizzando TextEdit un file di testo semplice e lo salvate come file di testo semplice, il file ha un'`.txt`estensione nascosta aggiuntiva. Ad esempio, un file denominato `Text.sql` potrebbe essere salvato come`Text.sql.txt`. A differenza dell'`.rtf`estensione, l'editor di query v2 supporta i file con l'`.txt`estensione, quindi `Text.sql.txt` è supportato durante l'importazione di query su notebook.

Per una demo dei notebook, guardare il video seguente. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/GNahyu7j98M/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/GNahyu7j98M)


# Interrogare il AWS Glue Data Catalog
<a name="query-editor-v2-glue"></a>

È possibile utilizzare l'editor di query v2 per interrogare i dati catalogati nel sistema AWS Glue Data Catalog utilizzando comandi SQL specifici e concedendo le autorizzazioni descritte in questa sezione. Per impostazione predefinita,  AWS Glue Data Catalog  è elencato come database v2 dell'editor di query denominato `awsdatacatalog`. Interrogare AWS Glue Data Catalog  non è disponibile in tutti Amazon Redshift  Regioni AWS. Utilizza il comando SHOW per determinare se questa funzionalità è disponibile. [Per ulteriori informazioni su AWS Glue, consulta What is? AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) nella *Guida per gli AWS Glue sviluppatori*.

**Nota**  
L'interrogazione AWS Glue Data Catalog è supportata solo nei cluster di tipo nodo Amazon RA3 Redshift e Amazon Redshift Serverless.

Puoi configurare il tuo data warehouse e visualizzare gli oggetti del AWS Glue database catalogati utilizzando i seguenti comandi SQL:
+ SHOW: per visualizzare se `awsdatacatalog` è montato per il data warehouse attualmente connesso. Ad esempio, per mostrare il valore del parametro `data_catalog_auto_mount`, esegui:

  ```
  SHOW data_catalog_auto_mount;
  ```

  Per ulteriori informazioni, consulta [SHOW](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ ALTER SYSTEM: per modificare la configurazione a livello di sistema di `data_catalog_auto_mount`. Ad esempio, per modificare il valore del parametro `data_catalog_auto_mount` a `on`, esegui:

  ```
  ALTER SYSTEM SET data_catalog_auto_mount = on;
  ```

  La modifica ha effetto quando un cluster fornito viene riavviato o un gruppo di lavoro serverless viene automaticamente messo in pausa e ripreso. Per ulteriori informazioni, consulta [ALTER SYSTEM](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_SYSTEM.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ SHOW SCHEMAS: mostra un elenco di schemi. Gli schemi del database denominato `awsdatacatalog` rappresentano i AWS Glue database catalogati in. AWS Glue Data Catalog Ad esempio, per mostrare questi schemi, esegui:

  ```
  SHOW SCHEMAS FROM DATABASE awsdatacatalog;
  ```

  Per ulteriori informazioni, consulta [SHOW SCHEMAS](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_SCHEMAS.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ SHOW TABLES: mostra un elenco di tabelle in uno schema. Ad esempio, per mostrare le tabelle del AWS Glue Data Catalog database denominate `awsdatacatalog` presenti nello schema`myglue`, esegui:

  ```
  SHOW TABLES FROM SCHEMA awsdatacatalog.myschema;
  ```

  Per ulteriori informazioni, consulta [SHOW TABLES](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_TABLES.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ SHOW COLUMNS: mostra un elenco di colonne in una tabella. Ad esempio, per mostrare le colonne del AWS Glue Data Catalog database denominate `awsdatacatalog` che si trovano nello schema `myglue` e nella tabella `mytable` esegui:

  ```
  SHOW COLUMNS FROM TABLE awsdatacatalog.myglue.mytable;
  ```

  Per ulteriori informazioni, consulta [SHOW COLUMNS](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_COLUMNS.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

**Per concedere al tuo utente o ruolo IAM l'autorizzazione a interrogare il AWS Glue Data Catalog,**

1. Nel riquadro della visualizzazione ad albero, connettiti al database iniziale nel cluster o nel gruppo di lavoro serverless utilizzando il metodo di autenticazione **Nome utente e password del database**. Ad esempio, connettiti al database `dev` utilizzando l'utente e la password dell'amministratore che hai usato quando hai creato il cluster o il gruppo di lavoro.

1. In una scheda dell'editor, esegui l'istruzione SQL seguente per concedere a un utente IAM l'accesso a AWS Glue Data Catalog.

   ```
   GRANT USAGE ON DATABASE awsdatacatalog to "IAM:myIAMUser"
   ```

   *IAM:myIAMUser*Dov'è un utente IAM a cui desideri concedere i privilegi di utilizzo a. AWS Glue Data Catalog In alternativa, puoi concedere il privilegio di utilizzo a *IAMR:myIAMRole* per un ruolo IAM.

1. Nel riquadro della visualizzazione ad albero, modifica o elimina la connessione al cluster o al gruppo di lavoro che hai creato in precedenza. Collegati al cluster o al gruppo di lavoro in uno dei seguenti modi:
   + Per connetterti al database `awsdatacatalog` da un cluster, devi utilizzare il metodo di autenticazione **Credenziali temporanee mediante l'identità IAM**. Per ulteriori informazioni su questo metodo di autenticazione, consulta [Connessione a un database Amazon Redshift](query-editor-v2-connecting.md). L'amministratore dell'editor di query v2 potrebbe dover configurare **Impostazioni account**  per l'account per visualizzare questi metodi di autenticazione nella finestra di connessione.
   + Per connetterti al database `awsdatacatalog` da un gruppo di lavoro, devi utilizzare il metodo di autenticazione **Utente federato**. Per ulteriori informazioni su questo metodo di autenticazione, consulta [Connessione a un database Amazon Redshift](query-editor-v2-connecting.md).

1. Con il privilegio concesso, puoi usare l'identità IAM per eseguire SQL su AWS Glue Data Catalog.

Dopo il collegamento, puoi utilizzare l'editor di query v2 per eseguire query sui dati catalogati in AWS Glue Data Catalog. Nel riquadro della visualizzazione ad albero dell'editor di query v2, scegli il cluster o il gruppo di lavoro e il database `awsdatacatalog`. Nel riquadro dell'editor o del notebook, verifica di aver selezionato il cluster o il gruppo di lavoro corretto. Il database scelto deve essere il database iniziale di Amazon Redshift, ad esempio `dev`. Per informazioni sulla creazione di query, consulta [Creazione di query con Amazon Redshift](query-editor-v2-query-run.md) e [Notebook in Amazon RedshiftNotebook](query-editor-v2-notebooks.md). Il database denominato `awsdatacatalog` è riservato per fare riferimento al database del catalogo dati esterno del tuo account. Le query sul database `awsdatacatalog` possono solo essere di sola lettura. Utilizza la notazione in tre parti per fare riferimento alla tabella nell'istruzione SELECT. Dove la prima parte è il nome del database, la seconda è il nome del AWS Glue database e la terza è il nome della AWS Glue tabella.

```
SELECT * FROM awsdatacatalog.<aws-glue-db-name>.<aws-glue-table-name>;
```

Puoi eseguire vari scenari che leggono i AWS Glue Data Catalog dati e popolano le tabelle Amazon Redshift.

L'esempio seguente SQL unisce due tabelle definite in. AWS Glue

```
SELECT pn.emp_id, alias, role, project_name 
FROM "awsdatacatalog"."empl_db"."project_name_table" pn, 
"awsdatacatalog"."empl_db"."project_alias_table" pa
WHERE pn.emp_id = pa.emp_id;
```

L'esempio seguente SQL crea una tabella Amazon Redshift e la popola con i dati provenienti da un'unione di due tabelle. AWS Glue 

```
CREATE TABLE dev.public.glue AS
SELECT pn.emp_id, alias, role, project_name 
FROM "awsdatacatalog"."empl_db"."project_name_table" pn, 
"awsdatacatalog"."empl_db"."project_alias_table" pa
WHERE pn.emp_id = pa.emp_id;
```

## Interrogazione delle tabelle Amazon S3 (anteprima)
<a name="query-editor-v2-glue-s3-tables"></a>

Puoi utilizzare l'editor di query v2 per interrogare i dati contenuti nei cataloghi Amazon S3table montati su. AWS Glue Data Catalog I cataloghi di tabelle di Amazon S3 vengono montati al momento della AWS Glue Data Catalog creazione e vengono visualizzati automaticamente come database esterni su tutti i cluster e i gruppi di lavoro serverless distribuiti nello stesso account. Regione AWS Per ulteriori informazioni sull'accesso alle tabelle Amazon S3 con Amazon Redshift, consulta Accesso alle tabelle Amazon [S3 con Amazon Redshift nella Guida](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-redshift.html) per l'utente di Amazon Simple Storage Service.

# Esecuzione di query in un data lake
<a name="query-editor-v2-querying-data-lake"></a>

Puoi eseguire query sui dati in un data lake Amazon S3 seguendo l’insieme di attività in questo tutorial. Per prima cosa, deve essere creato uno schema esterno che faccia riferimento al database esterno nel [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro). Quindi, sarà possibile eseguire la query sui dati in un data lake Amazon S3.

## Demo: query in un data lake
<a name="query-editor-v2-example-data-lake-demo"></a>

Per informazioni su come eseguire query in un data lake, guarda il video seguente.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/-pyy0qNmEKo/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/-pyy0qNmEKo)


## Prerequisiti
<a name="query-editor-v2-querying-data-lake-prerequisites"></a>

Prima di lavorare con il data lake nell'editor di query v2, verifica che nell'ambiente Amazon Redshift sia configurato quanto segue:
+ Scansiona i dati di Amazon S3 AWS Glue utilizzando e abilita Data Catalog per. AWS Lake Formation
+ Crea un ruolo IAM per Amazon Redshift utilizzando il Data Catalog AWS Glue abilitato per. AWS Lake Formation Per i dettagli su questa procedura, consulta [Creare un ruolo IAM per Amazon Redshift usando un AWS Glue Data Catalog enabled](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-create-role.html#spectrum-get-stared-create-role-lake-formation) for. AWS Lake Formation Per ulteriori informazioni sull'utilizzo di Redshift Spectrum e Lake Formation, consulta Using [Redshift](https://docs.aws.amazon.com/redshift/latest/dg/spectrum-lake-formation.html) Spectrum with. AWS Lake Formation
+ Concedi le autorizzazioni SELECT sulla tabella per eseguire le query nel database Lake Formation. Per ulteriori informazioni su questa procedura, consulta [Come concedere le autorizzazioni SELECT nella tabella per eseguire le query del database Lake Formation](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-create-role.html#spectrum-get-started-grant-lake-formation-table).

  Puoi verificare nella console di Lake Formation (https://console.aws.amazon.com/lakeformation/), sezione **Autorizzazioni, pagina delle autorizzazioni** del **Data lake, che il ruolo, il AWS Glue database e le tabelle IAM dispongano delle autorizzazioni** appropriate.
+ Verifica che l'utente connesso sia autorizzato a creare schemi nel database Amazon Redshift e ad accedere ai dati nel data lake. Quando ti connetti a un database nell'editor di query v2, scegli un metodo di autenticazione che includa le credenziali, che possono essere un utente del database o un utente IAM. L'utente connesso deve disporre delle autorizzazioni e dei privilegi del database appropriati, ad esempio come `superuser`. L'utente `admin` di Amazon Redshift che ha creato il cluster o il gruppo di lavoro dispone di privilegi `superuser` e può creare schemi e gestire il database Redshift. Per ulteriori informazioni sulla connessione a un database con l'editor di query v2, consulta [Connessione a un database Amazon Redshift](query-editor-v2-connecting.md).

## Creazione di uno schema esterno
<a name="query-editor-v2-create-external-schema"></a>

Per eseguire query sui dati in un data lake Amazon S3, viene creato uno schema esterno. Lo schema esterno fa riferimento a un database esterno in [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro).

1. Nella vista **Editor** dell'editor di query v2, scegli ![\[Create\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-add.png)**Crea**, quindi scegli **Schema**.

1. Inserire un nome di **schema**.

1. Per **Tipo di schema**, scegli **Esterno**.

1. All'interno **dei dettagli di Data Catalog**, per impostazione predefinita, la **regione** corrisponde al Regione AWS luogo in cui si trova il database Redshift.

1. Scegliete il **AWS Glue database** a cui verrà mappato lo schema esterno e che contiene i riferimenti alle tabelle. AWS Glue 

1. Sceglie un **Ruolo IAM** per Amazon Redshift che disponga delle autorizzazioni necessarie per eseguire query sui dati in Amazon S3.

1. Facoltativamente, scegli un **ruolo IAM** con autorizzazione per il catalogo dati.

1. Scegliere **Crea schema**.

   Lo schema viene visualizzato sotto il database nel pannello con visualizzazione ad albero.

Durante la creazione dello schema, se ricevi un errore di autorizzazione negata per il database, controlla se l'utente connesso dispone del privilegio di database per creare uno schema.

## Esecuzione di query sui dati nel data lake Amazon S3
<a name="query-editor-v2-query-data-lake"></a>

Utilizzare lo schema creato nella procedura precedente. 

1. Nel pannello con visualizzazione ad albero scegli lo schema.

1. Per visualizzare una definizione di tabella, scegliere una tabella. Vengono visualizzati le colonne e i tipi di dati della tabella.

1. Per eseguire query in una tabella, seleziona la tabella e nel menu contestuale (pulsante destro del mouse) scegli **Seleziona tabella** per generare una query.

1. Eseguire la query nell'**Editor**.

   L'esempio seguente SQL è stato generato da Query Editor v2 per interrogare tutte le righe della AWS Glue tabella denominata`flightscsv`. Le colonne e le righe mostrate nell'output vengono troncate per semplicità.

   ```
   SELECT * FROM "dev"."mydatalake_schema"."flightscsv";
                           
   year    quarter   month   dom  day_of_week   fl_date    unique_carrier  airline_id   carrier   tail_num   fl_num		
   2016    4         10      19   3             10/19/16   OO              20304        OO         N753SK    3086	 
   2016    4         10      19   3             10/19/16   OO              20304        OO         N753SK    3086	
   2016    4         10      19   3             10/19/16   OO              20304        OO         N778SK    3087		
   2016	4         10      19   3             10/19/16   OO              20304        OO         N778SK    3087	
   ...
   ```

# Unità di condivisione dati
<a name="query-editor-v2-datashare-using"></a>

È possibile creare un'unità di condivisione dati in modo che gli utenti di un altro cluster possano eseguire query sui dati. Il cluster che contiene i dati da condividere è chiamato cluster *produttore*. Puoi creare un'unità di condivisione dati sul cluster produttore per gli oggetti di database che desideri condividere. Puoi condividere schemi, tabelle, viste e funzioni SQL definite dall'utente (). UDFs Il cluster con il quale intendi condividere i dati viene chiamato cluster *consumatore*. Nel cluster consumatore viene creato un database dall'unità di condivisione dati. Quindi, gli utenti del cluster consumatore possono eseguire query sui dati. Per ulteriori informazioni, consulta [Nozioni di base sulla condivisione dei dati](https://docs.aws.amazon.com/redshift/latest/dg/getting-started-datasharing.html) nella *Guida per sviluppatori di database di Amazon Redshift*.

# Creazione di unità di condivisione dati
<a name="query-editor-v2-create-datashare"></a>

Puoi creare un'unità di condivisione dati sul cluster da utilizzare come cluster produttore. Per ulteriori informazioni sulle considerazioni sull'unità di condivisione dati, consulta [Considerazioni sulla condivisione dei dati in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/datashare-considerations.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

1. Scegli il database nel cluster produttore che desideri utilizzare.

1. Crea l'unità di condivisione dati. Ad esempio:

   ```
   create datashare mysource;
   ```

1. Imposta le autorizzazioni per l'unità di condivisione dati. Ad esempio:

   ```
   grant alter, share on datashare mysource to admin;
   ```

1. Imposta le autorizzazioni per gli oggetti del database che desideri condividere. Ad esempio:

   ```
   alter datashare mysource add schema public;
   ```

   ```
   alter datashare mysource add table public.event;
   ```

1. Imposta le autorizzazioni sullo spazio dei nomi del cluster consumatore per accedere all'unità di condivisione dati. Ad esempio:

   ```
   grant usage on datashare mysource to namespace '2b12345-1234-5678-9012-bb1234567890';
   ```

# Visualizzazione dell'unità di condivisione dati
<a name="query-editor-v2-show-datashare"></a>

Puoi visualizzare le unità di condivisione dati create nel cluster produttore. 

1. Scegli il cluster produttore.

1. Visualizza le unità di condivisione dati. Ad esempio:

   ```
   show datashares;
   ```

   ```
   share_name	share_owner	source_database		consumer_database	share_type	createdate	is_publicaccessible	share_acl	producer_account	producer_namespace
   test_datashare	100		db_producer		NULL			OUTBOUND	2/15/2022		FALSE		admin		123456789012		p1234567-8765-4321-p10987654321
   ```

# Creazione del database consumatore
<a name="query-editor-v2-datashare-consumer"></a>

Nel cluster consumatore viene creato un database dall'unità di condivisione dati. Questa procedura descrive come condividere dati tra due cluster nello stesso account. Per informazioni sulla condivisione dei dati tra AWS account, consulta [Condivisione dei dati tra AWS account](https://docs.aws.amazon.com/redshift/latest/dg/across-account.html) nella *Amazon Redshift Database Developer Guide*.

Puoi utilizzare i comandi SQL o il pannello con visualizzazione ad albero dell'editor di query v2 per creare il database.

**Per utilizzare SQL**

1. Crea un database dall'unità di condivisione dati per l'account e lo spazio dei nomi del cluster produttore. Ad esempio:

   ```
   create database share_db from datashare mysource of account '123456789012' namespace 'p1234567-8765-4321-p10987654321'; 
   ```

1. Imposta le autorizzazioni in modo che gli utenti possano accedere al database e allo schema. Ad esempio:

   ```
   grant usage on database share_db to usernames;
   ```

   ```
   grant usage on schema public to usernames;
   ```

**Per utilizzare il pannello con visualizzazione ad albero dell'editor di query v2**

1. Scegliere ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-add.png)**Crea**, quindi scegliere **Database**.

1. Inserire un **Nome database**.

1. (Facoltativo) Seleziona **Utenti e gruppi** e scegli un **Utente del database**.

1. Scegli **Create using a datashare** (Crea utilizzando un'unità di condivisione dati).

1. Scegli l'unità di condivisione dati.

1. Scegliere **Crea database**.

   Il nuovo database ![\[datashare\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-datashare.png)**unità di condivisione di dati** viene visualizzato nel pannello con visualizzazione ad albero dell'editor di query v2.

1. Imposta le autorizzazioni in modo che gli utenti possano accedere al database e allo schema. Ad esempio:

   ```
   grant usage on database share_db to usernames;
   ```

   ```
   grant usage on schema public to usernames;
   ```

# Esecuzione di query sugli oggetti dell'unità di condivisione dati
<a name="query-editor-v2-query-datashare"></a>

Nel cluster consumatore puoi eseguire query sugli oggetti dell'unità di condivisione dati utilizzando nomi oggetto completi espressi con la notazione in tre parti: nome del database, schema e nome dell'oggetto. 

1. Nel pannello con visualizzazione ad albero dell'editor di query v2, scegli lo schema.

1. Per visualizzare una definizione di tabella, scegliere una tabella.

   Vengono visualizzati le colonne e i tipi di dati della tabella.

1. Per eseguire query in una tabella, selezionare la tabella e utilizzare il menu contestuale (pulsante destro del mouse) per selezionare **Select table** (Seleziona tabella).

1. Esegui query sulle tabelle utilizzando i comandi SELECT. Ad esempio:

   ```
   select top 10 * from test_db.public.event;
   ```

# Query pianificate con Query Editor V2
<a name="query-editor-v2-schedule-query"></a>

Con Amazon Redshift Query Editor V2 puoi automatizzare le query SQL per eseguirle in base a una pianificazione. Le query pianificate sono istruzioni SQL che vengono eseguite automaticamente a orari o intervalli specifici, consentendoti di gestire in modo efficiente le operazioni ricorrenti per i dati e le attività di analisi. Consigliamo di pianificare le query se stai cercando di semplificare l’elaborazione in batch, generare report regolari o gestire pipeline di dati all’interno dell’ambiente Amazon Redshift. 

Le interrogazioni pianificate facilitano l'automazione dei flussi di lavoro di estrazione, trasformazione e caricamento (ETL), l'aggiornamento dei dashboard con up-to-date approfondimenti e l'operatività di varie routine di gestione dei dati. Nelle pagine seguenti viene descritto nei dettagli il processo di creazione, configurazione e gestione delle query pianificate per ottimizzare i carichi di lavoro di Amazon Redshift.

# Creazione di una pianificazione di query con Query Editor V2
<a name="query-editor-v2-schedule-query-create"></a>

Puoi creare una pianificazione per eseguire un'istruzione SQL con l'editor di query Amazon Redshift v2. Puoi creare una pianificazione per eseguire l'istruzione SQL in base agli intervalli di tempo che corrispondono alle esigenze aziendali. Al momento dell'esecuzione della query pianificata, la query viene avviata da Amazon EventBridge e utilizza l'API Amazon Redshift Data.

**Come creare una pianificazione per eseguire un'istruzione SQL**

1. Nella vista ![\[Editor\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-align-left.png) dell'**Editor** scegli **Pianificazione** ![\[Schedule\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-calendar.png) per creare una pianificazione per eseguire un'istruzione SQL.

1. Quando definisci la pianificazione, è necessario fornire le informazioni riportate di seguito.
   + Il ruolo IAM che assume le autorizzazioni necessarie per eseguire la query. Questo ruolo IAM è anche associato al tuo cluster o gruppo di lavoro.
   + I valori di autenticazione per una delle due credenziali Gestione dei segreti AWS o temporanee per autorizzare l'accesso al cluster o al gruppo di lavoro. Questi metodi di autenticazione sono supportati dall'API Data. Per ulteriori informazioni, consulta [Autenticazione di una query pianificata](query-editor-v2-schedule-query-authentication.md).
   + Il cluster o il gruppo di lavoro in cui risiede il database.
   + Il nome della tabella del database che contiene i dati su cui eseguire la query.
   + Il nome della query pianificata e la relativa descrizione. L'editor di query v2 prefissa il nome della query pianificata fornita con "-». QS2 L'editor di query v1 aggiunge un prefisso "QS" al nome delle query pianificate.
   + L'istruzione SQL da eseguire sulla pianificazione.
   + La frequenza di pianificazione e le opzioni di ripetizione o un valore formattato cron che definisce la pianificazione. Per ulteriori informazioni, consulta [Cron Expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) nella *Amazon CloudWatch Events User Guide*.
   + Facoltativamente, è possibile abilitare le notifiche standard di Amazon SNS per monitorare la query pianificata. Potrebbe essere necessario confermare l'indirizzo e-mail fornito alla notifica Amazon SNS. Controlla la tua e-mail per trovare un collegamento per confermare l'indirizzo e-mail per la notifica Amazon SNS. Per ulteriori informazioni, consulta [Notifiche e-mail](https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html) nella *Guida per gli sviluppatori di Amazon Simple Notification Service*. Se la tua query è in esecuzione ma non vedi i messaggi pubblicati nel tuo argomento SNS, consulta [La mia regola viene eseguita, ma non vedo alcun messaggio pubblicato nel mio argomento Amazon SNS nella Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-troubleshooting.html#eb-no-messages-published-sns) User *Guide EventBridge *.

1. Scegli **Pianifica query** per salvare e attivare la pianificazione e aggiungere la pianificazione all'elenco delle query nella vista **Query pianificate**.

La vista ![\[Scheduled queries\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/qev2-calendar.png) di **Query pianificate** elenca tutte le query pianificate per i cluster e i gruppi di lavoro. Con questa vista, è possibile visualizzare i dettagli delle query pianificate, attivare o disattivare la pianificazione, modificarla ed eliminare la query pianificata. Quando si visualizzano i dettagli della query, è anche possibile visualizzare la cronologia dell'esecuzione della query con la pianificazione.

**Nota**  
L'esecuzione di una query di pianificazione è disponibile solo nell'elenco **Cronologia della pianificazione** per 24 ore. Le query eseguite in base a una pianificazione non vengono visualizzate nella vista **Cronologia delle query** dell'editor di query v2

## Demo della pianificazione di una query
<a name="query-editor-v2-schedule-query-demo"></a>

Per una demo della pianificazione di una query, guarda il video seguente. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/gTw0XUpO8sw/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/gTw0XUpO8sw)


# Impostazione delle autorizzazioni per pianificare una query
<a name="query-editor-v2-schedule-query-permissions"></a>

Per pianificare le query, l'utente AWS Identity and Access Management (IAM) che definisce la pianificazione e il ruolo IAM associato alla pianificazione deve essere configurato con le autorizzazioni IAM per utilizzare Amazon EventBridge e Amazon Redshift Data API. Per ricevere e-mail da query pianificate, è necessario configurare anche la notifica Amazon SNS che viene specificata facoltativamente.

Di seguito vengono descritte le attività necessarie per utilizzare le policy AWS gestite per fornire le autorizzazioni, ma a seconda dell'ambiente in uso, potresti voler definire le autorizzazioni consentite.

Se l'utente IAM ha effettuato l'accesso a Query Editor v2, modifica l'utente IAM utilizzando la console IAM (). [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)
+ Oltre alle autorizzazioni per eseguire le operazioni di Amazon Redshift e Query Editor v2, collega le policy `AmazonRedshiftDataFullAccess` AWS e `AmazonEventBridgeFullAccess` le policy gestite a un utente IAM. 
+ In alternativa, assegna le autorizzazioni a un ruolo e assegna il ruolo all'utente.

  Collega una policy che conceda l'autorizzazione `sts:AssumeRole` all'ARN della risorsa del ruolo IAM specificato al momento della definizione della query pianificata. Per ulteriori informazioni sull'assunzione dei ruoli, consulta [Concessione di autorizzazioni utente per cambiare ruoli](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) nella *Guida per l'utente IAM*.

  L'esempio seguente mostra una policy di autorizzazione che assume il ruolo IAM `myRedshiftRole` nell'account `123456789012`. Questo è anche il ruolo IAM `myRedshiftRole`collegato al cluster o al gruppo di lavoro quando viene eseguita la query pianificata. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AssumeIAMRole",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": [
                  "arn:aws:iam::123456789012:role/myRedshiftRole"
              ]
          }
      ]
  }
  ```

------

  Aggiorna la politica di affidabilità del ruolo IAM utilizzata per pianificare la query per consentire all'utente IAM di assumerla.

  ```
  {
              "Sid": "AssumeRole",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::123456789012:user/myIAMusername"
              },
              "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

Per il ruolo IAM che specifichi per consentire l'esecuzione della query pianificata, modifica il ruolo IAM utilizzando la console IAM (). [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)
+ Collega le policy `AmazonRedshiftDataFullAccess` e le policy `AmazonEventBridgeFullAccess` AWS gestite al ruolo IAM. La politica gestita `AmazonRedshiftDataFullAccess` consente solo l'autorizzazione `redshift-serverless:GetCredentials` per i gruppi di lavoro Redshift Serverless contrassegnati con la chiave `RedshiftDataFullAccess`.

# Autenticazione di una query pianificata
<a name="query-editor-v2-schedule-query-authentication"></a>

Quando si pianifica una query, è possibile utilizzare uno dei seguenti metodi di autenticazione durante l'esecuzione di SQL. Ogni metodo richiede una diversa combinazione di input nell'editor di query v2. Questi metodi di autenticazione sono supportati dall'API dei dati utilizzata per eseguire le istruzioni SQL.

L'utente o il ruolo del database utilizzato per eseguire la query deve disporre dei privilegi di database necessari. Ad esempio, per concedere a `IAMR:MyRedshiftQEv2Scheduler` i privilegi alla tabella `mytable`, esegui il seguente comando SQL.

```
GRANT all ON TABLE mytable TO "IAMR:MyRedshiftQEv2Scheduler";
```

Per visualizzare l'elenco degli utenti del database nel cluster o nel gruppo di lavoro, interroga la vista del sistema `PG_USER_INFO`.

**Nota**  
 Qualsiasi gruppo di lavoro Redshift serverless per il quale pianifichi le query deve essere contrassegnato con la chiave `RedshiftDataFullAccess`. Per ulteriori informazioni, consulta [Autorizzazione di accesso all'API dati di Amazon Redshift](data-api-access.md).  
In alternativa all'etichettatura del gruppo di lavoro, puoi aggiungere una policy in linea al ruolo IAM (specificata nella pianificazione) che consenta `redshift-serverless:GetCredentials`. Esempio:  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllServerlessWorkgroups",
            "Effect": "Allow",
            "Action": "redshift-serverless:GetCredentials",
            "Resource": [
                "arn:aws:redshift-serverless:*:*:workgroup/*"
            ]
        }
    ]
}
```

**Gestione dei segreti AWS**  
Con questo metodo, fornire il valore del segreto per **secret-arn** archiviato in Gestione dei segreti AWS. Questo segreto contiene le credenziali per la connessione al database. Potresti avere creato un segreto con le credenziali corrette quando hai creato il cluster o il gruppo di lavoro. Il segreto deve essere taggato con la chiave `RedshiftDataFullAccess`. Se la chiave del tag non è già presente, usa la Gestione dei segreti AWS console per aggiungerla. Per ulteriori informazioni sulla creazione di un segreto, consulta [Creazione di un segreto per le credenziali di connessione al database](redshift-secrets-manager-integration-create.md).  
Per ulteriori informazioni sulle autorizzazioni minime, consultare [Creazione e gestione di segreti con Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)nella *Guida per l'utente di Gestione dei segreti AWS *. 

**Credenziali temporanee**  
Quando ti connetti a un database in un cluster con questo metodo, fornisci i valori per **Nome del database** e **Utente del database**. Quando ti connetti a un database in un gruppo di lavoro, fornisci solo il **Nome del database**.  
Quando ci si connette a un cluster, la policy `AmazonRedshiftDataFullAccess` consente all'utente del database denominat o`redshift_data_api_user`l'autorizzazione per `redshift:GetClusterCredentials`. Se desideri utilizzare un diverso utente di database per eseguire l'istruzione SQL, aggiungi una policy al ruolo IAM collegato al cluster per consentire `redshift:GetClusterCredentials`. La seguente policy di esempio consente gli utenti del database `awsuser` e `myuser`.     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllDbUsers",
            "Effect": "Allow",
            "Action": "redshift:GetClusterCredentials",
            "Resource": [
                "arn:aws:redshift:*:*:dbuser:*/awsuser",
                "arn:aws:redshift:*:*:dbuser:*/myuser"
            ]
        }
    ]
}
```

# Impostazione delle autorizzazioni per vedere la cronologia delle pianificazioni delle query
<a name="query-editor-v2-schedule-query-view-history"></a>

Per consentire agli utenti di visualizzare la cronologia delle pianificazioni, modifica il ruolo IAM (specificato con la pianificazione) **Relazioni di trust** per aggiungere le autorizzazioni.

Di seguito è riportato un esempio di policy di fiducia in un ruolo IAM che consente all'utente IAM di *myIAMusername* visualizzare la cronologia delle query di pianificazione. Invece di consentire a un utente IAM l'autorizzazione `sts:AssumeRole`, puoi scegliere per concedere questa autorizzazione a un ruolo IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "redshift.amazonaws.com",
                    "redshift-serverless.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Sid": "AssumeRole",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/myIAMusername"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

# Monitoraggio della query pianificata
<a name="query-editor-v2-schedule-query-sns"></a>

Per l'argomento Amazon SNS che specifichi per l'invio di notifiche e-mail, crea l'argomento Amazon SNS utilizzando l'editor di query v2 accedendo alla sezione **Notifiche SNS**,**Attiva** il monitoraggio e crea l'argomento con **Crea argomento SNS**. L'editor di query v2 crea l'argomento Amazon SNS e aggiunge un service principal alla policy di accesso per Amazon. EventBridge Di seguito è riportato un esempiodi  **Policy di accesso** creata nell'argomento Amazon SNS. Nell'esempio, *select-version-pdx-testunload* vengono utilizzati l'argomento Regione AWS *us-west-2* Account AWS *123456789012*, e Amazon SNS.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "__default_policy_ID",
  "Statement": [
    {
      "Sid": "Allow_Publish_Events",
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:us-west-2:123456789012:select-version-pdx-testunload"
    }
  ]
}
```

------

Quando viene eseguita la query pianificata, Amazon SNS invia e-mail di AWS notifica. L'esempio seguente mostra un'e-mail inviata a *myemail@example.com* per una query pianificata *QS2-may25a* che è stata eseguita Account AWS *123456789012* utilizzando l'argomento di notifica di Amazon SNS. Regione AWS *eu-north-1* *may25a-SNS*

```
{"version":"0","id":"8e4323ec-5258-7138-181b-91290e30ff9b","detail-type":"Scheduled Event","source":"aws.events","account":"123456789012","time":"2023-05-25T15:22:00Z",
                    "region":"eu-north-1","resources":["arn:aws:events:eu-north-1:123456789012:rule/QS2-may25a"],"detail":{}}

--
If you wish to stop receiving notifications from this topic, please click or visit the link below to unsubscribe:
https://sns.eu-north-1.amazonaws.com/unsubscribe.html?SubscriptionArn=arn:aws:sns:eu-north-1:123456789012:may25a-SNS:0c1a3d05-39c2-4507-bc3d-47250513d7b0&Endpoint=myemail@example.com

Please do not reply directly to this email. If you have any questions or comments regarding this email, please contact us at https://aws.amazon.com/support
```

# Risoluzione dei problemi relativi alla configurazione della pianificazione di una query
<a name="query-editor-v2-schedule-query-troubleshooting"></a>

Considera quanto segue se hai problemi con la pianificazione di una query.

**Query non in esecuzione**  
Verifica se il ruolo IAM utilizzato nella pianificazione è autorizzato a ottenere le credenziali temporanee del cluster. L'autorizzazione per i cluster forniti è `redshift:GetClusterCredentialsWithIAM`. L'autorizzazione per i gruppi di lavoro Redshift Serverless è `redshift-serverless:GetCredentials`.

**La cronologia pianificata non viene visualizzata**  
L'utente IAM o il ruolo IAM utilizzato per accedere alla AWS console non è stato aggiunto alla policy di fiducia del ruolo IAM utilizzato per pianificare la query.  
Quando si utilizza Gestione dei segreti AWS per la connessione della query pianificata, conferma che il segreto sia contrassegnato con la chiave`RedshiftDataFullAccess`.  
Se la query pianificata utilizza una Gestione dei segreti AWS connessione, al ruolo IAM utilizzato per pianificare la query deve essere `SecretsManagerReadWrite` associata l'equivalente di una policy gestita al ruolo.

**Lo stato della cronologia delle query è `Failed`**  
Visualizza la vista del sistema SYS\$1QUERY\$1HISTORY per i dettagli sul motivo per cui la query non è riuscita. Un problema comune è che l'utente o il ruolo del database utilizzato per eseguire la query potrebbe non disporre dei privilegi necessari per eseguire l'SQL. Per ulteriori informazioni, consulta [Autenticazione di una query pianificata](query-editor-v2-schedule-query-authentication.md).  
Il seguente codice SQL interroga la vista SYS\$1QUERY\$1HISTORY per restituire query non riuscite.  

```
SELECT user_id, query_id, transaction_id, session_id, database_name, query_type, status, error_message, query_text 
FROM sys_query_history
WHERE status = 'failed';
```
Per scoprire i dettagli di una specifica interrogazione pianificata con esito negativo, vedere [Visualizzazione dei risultati di una query pianificata con AWS CloudShell](query-editor-v2-schedule-query-troubleshooting-cloudshell.md).

# Visualizzazione dei risultati di una query pianificata con AWS CloudShell
<a name="query-editor-v2-schedule-query-troubleshooting-cloudshell"></a>

Puoi utilizzarlo AWS CloudShell per scoprire i dettagli di una richiesta pianificata. È necessario disporre delle autorizzazioni appropriate per eseguire i AWS CLI comandi illustrati nella procedura seguente.

**Per visualizzare i risultati di una query pianificata**

1. Sulla AWS console, aprire il prompt dei AWS CloudShell comandi. Per ulteriori informazioni AWS CloudShell, consulta [Cosa c'è AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) nella *Guida per l'AWS CloudShell utente*.

1. Assumi il ruolo IAM della query pianificata. Per assumere il ruolo, trova il ruolo IAM associato alla query pianificata nell'editor di query v2 e utilizzalo nel comando  AWS CLI  in  AWS CloudShell. Ad esempio, per il ruolo `scheduler` inserisci un comando  AWS STS  per assumere il ruolo utilizzato dalla query pianificata.

   ```
   aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/scheduler" --role-session-name "scheduler-test" 
   ```

   Le credenziali restituite sono simili alle seguenti.

   ```
   "Credentials": {
   "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
   "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
   "SessionToken": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...",        
   "Expiration": "2023-08-18T18:19:44+00:00"
   },
   "AssumedRoleUser": {
   "AssumedRoleId": "AROA35B2NH6WBTP7ONL4E:scheduler-test",
   "Arn": "arn:aws:sts::123456789012:assumed-role/scheduler/scheduler-test"
   }
   }
   ```

1. Crea variabili ambientali AWS CLI utilizzando le credenziali visualizzate assumendo il ruolo IAM. È necessario utilizzare questi token prima della loro scadenza. Ad esempio, inserisci quanto segue in. AWS CloudShell

   ```
   export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
   export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   export AWS_SESSION_TOKEN=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...
   ```

1. Per visualizzare l'errore di una query non riuscita, eseguite il AWS CLI comando per descrivere un'istruzione. L'id dell'istruzione SQL proviene dall'**ID** mostrato nella sezione **Cronologia della pianificazione** di una query pianificata nell'editor di query v2.

   ```
   aws redshift-data describe-statement --id 130d2620-05d2-439c-b7cf-815d9767f513
   ```

   In questo esempio, l'SQL pianificato `select * from users limit 100` genera un errore SQL che la tabella `users` non esiste.

   ```
   {
   "CreatedAt": "2023-08-18T17:39:15.563000+00:00",
   "Duration": -1,
   "Error": "ERROR: relation \"users\" does not exist",
   "HasResultSet": false,
   "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
   "QueryString": "select * from users limit 100\n—RequestID=a1b2c3d4-5678-90ab-cdef-EXAMPLE22222; TraceID=1-633c5642-4039308d03f3a0ba53dbdf6f",
   "RedshiftPid": 1073766651,
   "RedshiftQueryId": 0,
   "ResultRows": -1,
   "ResultSize": -1,
   "Status": "FAILED",
   "UpdatedAt": "2023-08-18T17:39:16.116000+00:00",
   "WorkgroupName": "default"
   }
   ```

# Visualizzazione dei risultati delle query
<a name="query-editor-v2-charts"></a>

Dopo aver eseguito una query e aver visualizzato i risultati, è possibile abilitare l'opzione **Chart** (Grafico) per ottenere una visualizzazione grafica della pagina dei risultati attuale. Per definire il contenuto, la struttura e l'aspetto del grafico è possibile utilizzare i seguenti controlli:

![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png) Traccia  
Rappresenta un insieme di indicatori grafici correlati in un grafico. In un grafico è possibile definire più tracce.

Tipo  
È possibile definire il tipo di traccia per rappresentare i dati come uno dei seguenti:  
+ Grafico a dispersione per un grafico a dispersione o un grafico a bolle.
+ Grafico a barre per rappresentare categorie di dati con barre verticali o orizzontali.
+ Grafico ad aree per definire le aree riempite.
+ Istogramma che utilizza le barre per rappresentare la distribuzione della frequenza.
+ Grafico a torta per una rappresentazione circolare di dati in cui ogni sezione rappresenta una percentuale dell'intero.
+ Grafico a imbuto o ad area di imbuto per rappresentare i dati attraverso varie fasi di un processo.
+ Il grafico OHLC (open-high-low-close) viene spesso utilizzato per i dati finanziari per rappresentare valori di apertura, massimo, minimo e chiusura lungo l'asse x, che di solito rappresenta intervalli di tempo.
+ Grafico a candela per rappresentare un intervallo di valori per una categoria su una linea temporale.
+ Grafico a cascata per rappresentare il modo in cui un valore iniziale aumenta o diminuisce attraverso una serie di valori intermedi. I valori possono rappresentare intervalli di tempo o categorie.
+ Grafico a linee per rappresentare le variazioni di valore nel tempo.

Asse X  
Specificare una colonna di tabella che contiene valori da tracciare lungo l'asse X. Le colonne che contengono valori descrittivi rappresentano solitamente dati dimensionali. Le colonne che contengono valori quantitativi di solito rappresentano dati di fatto.

Asse Y  
Specificare una colonna di tabella che contiene valori da tracciare lungo l'asse Y. Le colonne che contengono valori descrittivi rappresentano solitamente dati dimensionali. Le colonne che contengono valori quantitativi di solito rappresentano dati di fatto.

Grafici secondari  
È possibile definire presentazioni aggiuntive dei dati del grafico.

Trasformazioni  
È possibile definire le trasformazioni per filtrare i dati di traccia. Utilizzare una trasformazione di suddivisione per visualizzare più tracce da una singola traccia sorgente. Utilizzare una trasformazione aggregata per presentare una traccia come media o minima. Utilizzare una trasformazione di ordinamento per ordinare una traccia.

Aspetto generale  
È possibile impostare i valori di default per il colore di sfondo, il colore dei margini, le scale di colore per progettare tavolozze, stile e dimensioni del testo, stile e dimensione del titolo e barra delle modalità. È possibile definire interazioni per trascinamento, clic e passaggio del mouse. È possibile definire il metatesto. È possibile definire gli aspetti di default per tracce, assi, legende e annotazioni.

**Per creare un grafico**

1. Esegui una query e ottieni risultati.

1. Attivare **Grafici**.

1. Scegliere **Traccia** e iniziare a visualizzare i dati.

1. Scegliere uno stile di grafico tra i seguenti:
   + Dispersione
   + Barra
   + Area
   + Istogramma
   + Torta
   + Imbuto
   + Area imbuto
   + OHLC () open-high-low-close
   + Candelabro
   + Cascata
   + Line (Linea)

1. Scegliere **Stile** per personalizzare l'aspetto, inclusi i colori, gli assi, la legenda e le annotazioni. È possibile aggiungere testo, forme e immagini.

1. Scegliere **Annotazioni** per aggiungere testo, forme e immagini.

1. Per aggiornare la visualizzazione del grafico, scegliere **Aggiorna**. Scegliere **schermo intero** per espandere la visualizzazione del grafico.

## Esempio: crea un grafico a torta per visualizzare i risultati delle query
<a name="query-editor-v2-example-pie-chart"></a>

L'esempio seguente utilizza la tabella *Vendite* dal database di esempio. Per ulteriori informazioni, consultare [Database di esempio](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

Di seguito è riportata la query eseguita per fornire i dati per il grafico a torta.

```
select top 5 eventname, count(salesid) totalorders, sum(pricepaid) totalsales 
from sales, event
where sales.eventid=event.eventid group by eventname
order by 3;
```

**Per creare un grafico a torta per l'evento principale in base alle vendite totali**

1. Eseguire la query.

1. Nell'area dei risultati della query, attivare **Grafico**.

1. Scegli **Traccia**.

1. Per **Tipo**, scegli **Torta**.

1. Per **Valori**, scegli *venditetotali*.

1. Per **Etichette**, scegli *nomeevento*.

1. Scegliere **Stile** e poi **Generale**.

1. In **Scalecolori**, scegliere **Categorici** e poi **Pastello2**.

![\[Grafico a torta\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/pie-chart.png)


## Esempio: creazione di un grafico combinato per il confronto di entrate e vendite
<a name="query-editor-v2-example-revenue-sales-chart"></a>

Esegui la procedura descritta in questo esempio per creare un grafico che combina un grafico a barre per i dati delle entrate e un grafico a linee per i dati di vendita. Nell'esempio seguente viene utilizzata la tabella *Sales* (Vendite) del database di esempio tickit. Per ulteriori informazioni, consultare [Database di esempio](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

Di seguito è riportata la query eseguita per fornire i dati per il grafico.

```
select eventname, total_price, total_qty_sold
from  (select eventid, total_price, total_qty_sold, ntile(1000) over(order by total_price desc) as percentile
       from (select eventid, sum(pricepaid) total_price, sum(qtysold) total_qty_sold
             from   tickit.sales
             group by eventid)) Q, tickit.event E
       where Q.eventid = E.eventid
       and percentile = 1
order by total_price desc;
```

**Creazione di un grafico combinato per il confronto di entrate e vendite**

1. Eseguire la query.

1. Nell'area dei risultati della query, attivare **Grafico**.

1. In *trace o*, per **Type** (Tipo), scegli **Bar** (A barre).

1. Per **X**, scegli *eventname*.

1. Per **Y**, scegli *total\$1price*.

   Il grafico a barre viene visualizzato con i nomi degli eventi lungo l'asse X.

1. In **Style** (Stile), scegli **Traces** (Tracce). 

1. Per **Name** (Nome), inserisci *Revenue* (Fatturato).

1. In **Style** (Stile), scegliere **Axes** (Assi). 

1. Per **Titles** (Titoli), scegli **Y** e inserisci *Revenue* (Fatturato).

   L'etichetta *Revenue* (Fatturato) viene visualizzata sull'asse Y sinistro.

1. In **Structure** (Struttura), scegli **Traces** (Tracce).

1. Scegliere ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png) **Traccia**.

   Vengono visualizzate le opzioni di traccia 1.

1. Per **Type** (Tipo), scegliere **Line** (A linee).

1. Per **X**, scegli *eventname*.

1. Per **Y**, scegli *total\$1qty\$1sold*.

1. In **Axes To Use** (Asse da utilizzare), per **Y Axis** (Asse Y) scegli ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/add-plus.png). 

   **Y Axis** (Asse Y) visualizza *Y2*.

1. In **Style** (Stile), scegliere **Axes** (Assi).

1. In **Titles** (Titoli), scegli **Y2**.

1. Per **Name** (Nome), immettere *Sales* (Vendite).

1. In **Lines** (Linee), scegli *Y:Sales*.

1. In **Axis Line** (Linea asse), scegli **Show** (Mostra) e per **Position** (Posizione), scegli **Right** (Destra).

![\[Grafico di fatturato e vendite\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/chart-revenue-sales.png)


## Demo: creazione di visualizzazioni con l'editor di query Amazon Redshift v2
<a name="query-editor-v2-demo-visualizations"></a>

Per una dimostrazione di come creare le visualizzazioni, guardare il video seguente. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/-FYqTIER-6U/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/-FYqTIER-6U)


# Collaborazione e condivisione come team
<a name="query-editor-v2-team"></a>

Puoi condividere query con il team. 

Per un insieme di utenti che collaborano e condividono risorse dell'editor di query v2 viene definito un team. Un amministratore può creare un team aggiungendo un tag a un ruolo IAM. Per ulteriori informazioni, consulta [Autorizzazioni necessarie per utilizzare l'editor della query v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2). 

# Salvataggio e ricerca delle query
<a name="query-editor-v2-save-queries"></a>

Prima di poter condividere la query con il tuo team, salvala. È possibile visualizzare ed eliminare le query salvate. 

**Per salvare una query**

1. Preparare la query e scegliere **Salva**.

1. Inserisci un titolo per la query.

1. Scegli **Save** (Salva). 

**Per cercare le query salvate**

1. Scegliere **Query** dal pannello di navigazione.

1. È possibile visualizzare le query che sono **Le mie query**, **Condivise da me** oppure **Condivise con il mio team**. Queste query possono essere visualizzate come singole query o all'interno di cartelle create.

# Condivisione di una query
<a name="query-editor-v2-query-share"></a>

Puoi condividere query con il team. È inoltre possibile visualizzare la cronologia delle query salvate e gestire le versioni delle query. 

Per condividere una query con il team, assicurati di disporre del tag principale `sqlworkbench-team` imposta lo stesso valore del resto dei membri del tuo team nel tuo account. Ad esempio, un amministratore potrebbe impostare il valore su `accounting-team` per tutti nel reparto contabilità. Per vedere un esempio, consulta [Autorizzazioni necessarie per utilizzare l'editor della query v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).

**Per condividere una query con un team**

1. Scegliere **Query** dal pannello di navigazione.

1. Aprire il menu contestuale (clic con il pulsante destro del mouse) della query che si desidera condividere e scegliere **Condividi con il mio team**.

1. Scegliere il team o i team con cui si desidera condividere la query, quindi scegliere **Opzioni di condivisione del salvataggio**. 

# Gestione delle versioni delle query
<a name="query-editor-v2-query-versions"></a>

Ogni volta che si salva una query SQL, l'editor di query v2 la salva come nuova versione. È possibile cercare le versioni precedenti di query, salvare una copia di una query o ripristinare una query. 

**Per gestire le versioni delle query**

1. Scegliere **Query** dal pannello di navigazione.

1. Aprire il menu contestuale (tasto destro del mouse) per la query con cui si desidera lavorare.

1. Scegliere **Cronologia delle versioni** per aprire un elenco di versioni della query.

1. Nella pagina **Cronologia delle versioni**, puoi eseguire queste operazioni:
   + **Ripristina versione selezionata** — Torna alla versione selezionata e continua il tuo lavoro con questa versione.
   + **Salva selezionato come** — Crea una nuova query nell'editor.

# Interrogazione di un database utilizzando l'editor di query Amazon Redshift v1
<a name="query-editor"></a>

L'uso dell'editor di query è la soluzione più semplice per eseguire query sui database ospitati dal cluster Amazon Redshift. Dopo aver creato il cluster, è possibile eseguire immediatamente le query con l'editor della query nella console Amazon Redshift.

**Nota**  
Non puoi eseguire query sui dati in Amazon Redshift Serverless utilizzando questo editor di query originale. Utilizza invece l'editor di query v2 di Amazon Redshift.

Nel febbraio 2021 è stato implementato un editor di query aggiornato e i permessi di autorizzazione per utilizzare l'editor di query sono stati modificati. Il nuovo editor di query utilizza l'API dati di Amazon Redshift Data per eseguire le query. La `AmazonRedshiftQueryEditor` policy, che è una policy AWS gestita AWS Identity and Access Management (IAM), è stata aggiornata per includere le autorizzazioni necessarie. Se si dispone di una policy IAM personalizzata, assicurarsi di aggiornarla. Utilizzare `AmazonRedshiftQueryEditor` come guida. Queste modifiche a `AmazonRedshiftQueryEditor` includono: 
+ L'autorizzazione per gestire i risultati delle istruzioni dell'editor di query richiede l'utente proprietario dell'istruzione. 
+ È stata aggiunta l'autorizzazione per utilizzare Secrets Manager per la connessione a un database.

Per ulteriori informazioni, consulta [Autorizzazioni richieste per utilizzare l'editor di query della console Amazon Redshift](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor).

Quando ti connetti al cluster dal nuovo editor di query, puoi utilizzare uno di due metodi di autenticazione. 

Con l'editor della query puoi:
+ Eseguire query singole su istruzioni SQL.
+ Scaricare set di risultati fino a 100 MB in un file CSV.
+ Salvare le query per riutilizzarle. Non è possibile salvare le query nelle regioni Europa (Parigi), Asia Pacifico (Osaka), Asia Pacifico (Hong Kong) o Medio Oriente (Bahrein).
+ Visualizzare i dettagli di rutime delle query per le tabelle definite dall'utente.
+ Pianificare le query da eseguire in un secondo momento. 
+ Visualizzare una cronologia delle query create nell'editor di query. 
+ Eseguire le query sui cluster utilizzando il routing VPC avanzato. 

## Considerazioni sull'editor della query
<a name="query-editor-considerations"></a>

Se si utilizza l'editor di query, tenere in considerazione quanto riportato di seguito:
+ La durata massima di una query è 24 ore. 
+ La dimensione massima dei risultati della query è 100 MB. Se la chiamata restituisce più di 100 MB di dati di risposta, verrà terminata. 
+ Il tempo massimo di conservazione dei risultati delle query è 24 ore. 
+ La dimensione massima dell'istruzione della query è 100 KB. 
+ Il cluster deve trovarsi in un Virtual Private Cloud (VPC) basato sul servizio Amazon VPC. 
+ Nell'editor della query non puoi utilizzare le transazioni. Per ulteriori informazioni sulle transazioni, consultare [BEGIN](https://docs.aws.amazon.com/redshift/latest/dg/r_BEGIN.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ È possibile salvare una query contenente fino a 3.000 caratteri. 

# Eseguendo la connessione a un data warehouse Amazon Redshift tramite gli strumenti del client SQL
<a name="connecting-to-cluster"></a>

Puoi connetterti ai data warehouse Amazon Redshift dagli strumenti del client SQL tramite le connessioni Java Database Connectivity (JDBC), Python e Open Database Connectivity (ODBC). Amazon Redshift non fornisce né installa alcuna libreria o strumento client SQL. Per utilizzare questi strumenti o queste librerie per utilizzare i dati nei data warehouse, installarli sul computer client o nell’istanza di Amazon EC2. Puoi usare la maggior parte degli strumenti del client SQL che supportano i driver JDBC, Python o ODBC. 

Utilizza l’elenco delle sezioni al termine di questo argomento per esaminare il processo di configurazione del computer client o dell’istanza di Amazon EC2 per l’utilizzo di una connessione JDBC, Python oppure ODBC. Negli argomenti vengono inoltre illustrate le relative opzioni di sicurezza per la connessione del client al server. Inoltre trova le informazioni sulla configurazione e sulla connessione dagli strumenti del client SQL, come [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html). Puoi provare questi strumenti se non hai ancora uno strumento di business intelligence da utilizzare. In questa sezione viene inoltre illustrato come puoi connetterti ai dati. Infine, in caso di anomalie durante il tentativo di connessione al data warehouse, puoi esaminare le informazioni sulla risoluzione dei problemi per individuare le soluzioni.

## Suggerimenti per la connessione con gli strumenti del client
<a name="connecting-to-cluster-recommendations"></a>

Se ti connetti al cluster Redshift utilizzando un indirizzo IP, possono verificarsi ulteriori tempi di inattività in caso di interruzione o perdita della connessione e il cluster viene portato online in una nuova zona di disponibilità (AZ). Tuttavia, se desideri comunque che la tua applicazione si connetta a Redshift utilizzando un indirizzo IP, usa l'indirizzo IP privato collegato all'endpoint del cluster ( virtual-private-cloudVPC). Puoi trovarlo nei dettagli del cluster in **Rete e sicurezza** nella scheda **Proprietà**. 

**Nota**  
Se l’applicazione utilizza l’indirizzo IP del nodo principale per accedere al cluster Redshift, la best practice consigliata è cambiarlo per utilizzare l’URL dell’endpoint del cluster. Per ulteriori informazioni, consulta [Configurazione delle connessioni in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html).

**Topics**
+ [Suggerimenti per la connessione con gli strumenti del client](#connecting-to-cluster-recommendations)
+ [Configurazione delle connessioni in Amazon Redshift](configuring-connections.md)
+ [Configurazione delle opzioni di sicurezza per le connessioni](connecting-ssl-support.md)
+ [Connessione da codice e strumenti client](connecting-via-client-tools.md)
+ [Connettersi ad Amazon Redshift con un profilo di autenticazione.](connecting-with-authentication-profiles.md)
+ [Risoluzione dei problemi di connessione in Amazon Redshift](troubleshooting-connections.md)

# Configurazione delle connessioni in Amazon Redshift
<a name="configuring-connections"></a>

Nella sezione seguente scopri come configurare le connessioni JDBC, Python e ODBC per connetterti al cluster dagli strumenti client SQL. In questa sezione viene descritto come impostare le connessioni JDBC, Python e ODBC. Viene inoltre descritto come utilizzare i certificati SSL (Secure Sockets Layer) e server per crittografare le comunicazioni tra client e server. 

## Driver JDBC, Python e ODBC per Amazon Redshift
<a name="connecting-drivers"></a>

Per utilizzare i dati nel cluster, sono richiesti i driver JDBC, Python o ODBC per stabilire la connettività dal computer client o dall'istanza. Codifica le tue applicazioni affinché usino operazioni API di accesso ai dati JDBC, Python o ODBC e utilizza gli strumenti del client SQL che supportano JDBC, Python o ODBC.

Amazon Redshift permette di scaricare i driver JDBC, Python e ODBC. Questi driver sono supportati da. Supporto I driver PostgreSQL non sono testati e non sono supportati dal team Amazon Redshift. Utilizza i driver specifici di Amazon Redshift quando ti connetti a un cluster Amazon Redshift. I driver Amazon Redshift presentano i seguenti vantaggi:
+ Support per IAM, SSO e autenticazione federata.
+ Support per i nuovi tipi di dati Amazon Redshift.
+ Support per i profili di autenticazione.
+ Prestazioni migliorate in combinazione con i miglioramenti di Amazon Redshift.

 Per ulteriori informazioni su come scaricare i driver JDBC e ODBC e configurare le connessioni al cluster, consultare [Configurazione di una connessione per il driver JDBC versione 2.x per Amazon Redshift](jdbc20-install.md), [Connettore Python Amazon Redshift](python-redshift-driver.md) e [Configurazione di una connessione per il driver ODBC versione 2.x per Amazon Redshift](odbc20-install.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).

# Ricerca della stringa di connessione al cluster
<a name="connecting-connection-string"></a>

Per connetterti al cluster con il tuo strumento client SQL è richiesta la stringa di connessione al cluster. Tale stringa di connessione al cluster è presente nella console di Amazon Redshift, nella pagina dei dettagli del cluster.

**Per trovare la stringa di connessione di un cluster**

1. Accedi a Console di gestione AWS e apri la console Amazon Redshift all'indirizzo. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Dal menu di navigazione scegliere **Clusters** (Cluster), quindi scegliere dall'elenco il nome del cluster per visualizzarne i dettagli.

1. Sono disponibili le stringhe di connessione **URL JDBC** e **URL ODBC**, insieme a dettagli aggiuntivi, nella sezione **Informazioni generali**. Ogni stringa si basa sulla AWS regione in cui viene eseguito il cluster. Fai clic sull'icona accanto alla stringa di connessione corretta per copiarla.

Per connetterti a un endpoint del cluster, puoi utilizzare l'URL dell'endpoint del cluster da una richiesta [DescribeClusters API](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html). Di seguito è riportato un esempio di URL dell'endpoint del cluster.

```
mycluster.cmeaswqeuae.us-east-2.redshift.amazonaws.com
```

Se hai impostato un nome di dominio personalizzato per il tuo cluster, puoi utilizzarlo anche per connetterti al tuo cluster. Per ulteriori informazioni sulla creazione di un nome di dominio personalizzato, consulta [Configurazione di un nome di dominio personalizzato](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME-connect.html).

**Nota**  
Quando ti connetti, non utilizzare l'indirizzo IP di un nodo del cluster o l'indirizzo IP dell'endpoint VPC. Usa sempre l'endpoint Redshift per evitare interruzioni non necessarie. L'unica eccezione all'utilizzo dell'URL dell'endpoint è quando utilizzi un nome di dominio personalizzato. Per ulteriori informazioni, consulta [Utilizzo di un nome di dominio personalizzato per le connessioni client](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME.html).

# Configurazione di una connessione per il driver JDBC versione 2.x per Amazon Redshift
<a name="jdbc20-install"></a>

Puoi utilizzare una connessione del driver JDBC versione 2.x per connetterti al cluster Amazon Redshift da numerosi strumenti client SQL di terze parti. Il connettore Amazon Redshift JDBC fornisce una soluzione open source. Puoi sfogliare il codice sorgente, richiedere miglioramenti, segnalare problemi e fornire contributi. 

Per le informazioni più recenti sulle modifiche al driver JDBC, consulta il [log delle modifiche](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md).

Per impostazione predefinita, il driver JDBC di Amazon Redshift è configurato per utilizzare keepalive TCP per impedire il timeout delle connessioni. È possibile specificare quando il driver inizia a inviare pacchetti keepalive o disattivare la funzionalità impostando le proprietà pertinenti nell'URL di connessione. Per ulteriori informazioni sulla sintassi dell'URL di connessione, consultare [Creazione dell'URL di connessione](jdbc20-build-connection-url.md).


| Proprietà | Description | 
| --- | --- | 
|  `TCPKeepAlive`  |  Per disattivare i keepalive TCP, impostare questa proprietà su `FALSE`.  | 

**Topics**
+ [Scarica il driver JDBC Amazon Redshift, versione 2.1](jdbc20-download-driver.md)
+ [Installazione del driver JDBC Amazon Redshift, versione 2.2](jdbc20-install-driver.md)
+ [Ottenimento dell'URL JDBC](jdbc20-obtain-url.md)
+ [Creazione dell'URL di connessione](jdbc20-build-connection-url.md)
+ [Configurazione di una connessione JDBC con Apache Maven](configure-jdbc20-connection-with-maven.md)
+ [Configurazione dell'autenticazione e di SSL](jdbc20-configure-authentication-ssl.md)
+ [Configurazione della registrazione](jdbc20-configuring-logging.md)
+ [Conversioni dei tipi di dati](jdbc20-data-type-mapping.md)
+ [Utilizzo del supporto per le istruzioni preparate](jdbc20-prepared-statement-support.md)
+ [Differenze tra le versioni 2.2 e 1.x del driver JDBC](jdbc20-jdbc10-driver-differences.md)
+ [Creazione di file di inizializzazione (.ini) per il driver JDBC versione 2.x](jdbc20-ini-file.md)
+ [Opzioni per la configurazione del driver JDBC versione 2.x](jdbc20-configuration-options.md)
+ [Versioni precedenti del driver JDBC versione 2.x](jdbc20-previous-driver-version-20.md)

# Scarica il driver JDBC Amazon Redshift, versione 2.1
<a name="jdbc20-download-driver"></a>

**Nota**  
Il driver JDBC 2.x di Amazon Redshift non è progettato per essere sicuro a livello di thread. Due o più thread che tentano contemporaneamente di utilizzare la stessa connessione possono portare a deadlock, errori, risultati errati o altri comportamenti imprevisti.  
Se disponi di un’applicazione multithread, consigliamo di sincronizzare l’accesso al driver per evitare accessi simultanei.

Amazon Redshift offre driver per strumenti compatibili con l'API JDBC 4.2. Il nome della classe per questo driver è `com.amazon.redshift.Driver`.

Per informazioni dettagliate su come installare il driver JDBC, fare riferimento alle librerie del driver JDBC e registrare la classe driver, consultare i seguenti argomenti. 

Per ogni computer su cui utilizzi il driver JDBC versione 2.x di Amazon Redshift, assicurati che sia installato l’ambiente di runtime Java (JRE) versione 8.0. 

Se si utilizza il driver JDBC di Amazon Redshift per l'autenticazione del database, assicurarsi di disporre di AWS SDK per Java 1.11.118 o versione successiva nella classpath Java. Se non lo avete AWS SDK per Java installato, scaricate il file ZIP con driver compatibili con JDBC 4.2 e librerie dipendenti dai driver per l'SDK: AWS 
+ [Versione 2.x del driver compatibile con JDBC 4.2 e librerie dipendenti dai driver AWS SDK : versione 2.x del driver compatibile con JDBC 4.2 e librerie dipendenti dai](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.zip) [driver SDK AWS](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.zip)

  Questo file ZIP contiene la versione 2.x del driver compatibile con JDBC 4.2 e i file della libreria dipendenti dal driver di AWS SDK per Java 1.x. Decomprimere i file jar dipendenti nella stessa posizione del driver JDBC. Solo il driver JDBC deve trovarsi nella variabile CLASSPATH.

  Questo file ZIP non include l' AWS SDK completo per Java 1.x. Tuttavia, include le librerie AWS SDK for Java 1.x dipendenti dai driver necessarie AWS Identity and Access Management per l'autenticazione del database (IAM).

  Utilizza questo driver JDBC Amazon Redshift con l' AWS SDK necessario per l'autenticazione del database IAM.

  *Per installare l' AWS SDK completo per Java 1.x, [AWS consulta SDK for Java](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/welcome.html) 1.x nella Developer Guide.AWS SDK per Java * 
+ [Driver compatibile con JDBC 4.2 versione 2.x (senza SDK AWS ) Nella regione Cina (Pechino)](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.jar) 4.2 versione 2.x (senza SDK) AWS 

Esamina la licenza software del driver JDBC versione 2.x e il file di log delle modifiche: 
+ [Licenza del driver JDBC versione 2.x](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/LICENSE) 
+ [Log delle modifiche del driver JDBC versione 2.x](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md)

I driver JDBC versione 1.2.27.1051 e successive supportano le procedure archiviate di Amazon Redshift. Per ulteriori informazioni, consulta [Creazione di procedure archiviate in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-overview.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

# Installazione del driver JDBC Amazon Redshift, versione 2.2
<a name="jdbc20-install-driver"></a>

Per installare la versione 2.x del driver compatibile con Amazon Redshift JDBC 4.2 e le librerie dipendenti dai driver per AWS SDK, estrai i file dall'archivio ZIP nella directory di tua scelta. 

Per installare il driver versione 2.x compatibile con JDBC 4.2 di Amazon Redshift (senza SDK AWS ), copia il file JAR nella directory selezionata.

Per accedere a un archivio dati Amazon Redshift utilizzando il driver JDBC di Amazon Redshift, occorre eseguire la configurazione come descritto di seguito.

**Topics**
+ [Riferimento alle librerie del driver JDBC](jdbc20-driver-libraries.md)
+ [Registrazione della classe del driver](jdbc20-register-driver-class.md)

# Riferimento alle librerie del driver JDBC
<a name="jdbc20-driver-libraries"></a>

L'applicazione JDBC o il codice Java utilizzati per connettersi ai dati devono accedere ai file JAR del driver. Nell'applicazione o nel codice, specificare tutti i file JAR che sono stati estratti dall'archivio ZIP. 

## Utilizzo del driver in un'applicazione JDBC
<a name="jdbc20-use-driver-jdbc-app"></a>

Le applicazioni JDBC in genere forniscono una serie di opzioni di configurazione per l'aggiunta di un elenco di file di libreria del driver. Utilizzare le opzioni fornite per includere tutti i file JAR dall'archivio ZIP nell'ambito della configurazione del driver nell'applicazione. Per ulteriori informazioni, consultare la documentazione relativa all'applicazione JDBC. 

## Utilizzo del driver nel codice Java
<a name="jdbc20-use-driver-java-code"></a>

È necessario includere tutti i file della libreria del driver nella variabile classpath. Questo è il percorso in cui Java Runtime Environment cerca le classi e gli altri file delle risorse. Per ulteriori informazioni, consultare la documentazione di Java SE appropriata per impostare la variabile classpath per il sistema operativo in uso. 
+ [Windows: 7/.html https://docs.oracle.com/javase/ docs/technotes/tools/windows/classpath](https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html)
+ [Linux e Solaris: 7/.html https://docs.oracle.com/javase/ docs/technotes/tools/solaris/classpath](https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html)
+ macOS: il percorso di classe macOS predefinito è la directory in cui è installato il driver JDBC.

# Registrazione della classe del driver
<a name="jdbc20-register-driver-class"></a>

Assicurarsi di registrare la classe corretta per l'applicazione. Utilizzare le seguenti classi per connettere il driver JDBC Amazon Redshift agli archivi dati Amazon Redshift:
+ Le classi `Driver` estendono `java.sql.Driver`.
+ Le classi `DataSource` estendono `javax.sql.DataSource` e `javax.sql.ConnectionPoolDataSource`.

Il driver supporta i seguenti nomi di classe completi indipendenti dalla versione JDBC:
+ `com.amazon.redshift.jdbc.Driver`
+ `com.amazon.redshift.jdbc.DataSource`

L'esempio seguente mostra come utilizzare la DriverManager classe per stabilire una connessione per JDBC 4.2.

```
            private static Connection connectViaDM() throws Exception
{
Connection connection = null;
connection = DriverManager.getConnection(CONNECTION_URL);
return connection;
}
```

Nell'esempio seguente viene illustrato come utilizzare la classe `DataSource` per stabilire una connessione.

```
 private static Connection connectViaDS() throws Exception
{
Connection connection = null;
11
Amazon Redshift JDBC Driver Installation and Configuration Guide
DataSource ds = new com.amazon.redshift.jdbc.DataSource
();
ds.setURL(CONNECTION_URL);
connection = ds.getConnection();
return connection;
}
```

# Ottenimento dell'URL JDBC
<a name="jdbc20-obtain-url"></a>

Prima di potersi connettere al cluster Amazon Redshift da uno strumento del client SQL, è necessario conoscere l'URL JDBC del cluster. L'URL JDBC ha il formato seguente: `jdbc:redshift://endpoint:port/database`.

I campi del formato mostrato in precedenza hanno i seguenti valori.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/jdbc20-obtain-url.html)

Di seguito è riportato un esempio di URL JDBC: `jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev` 

Se i valori dell’URL contengono uno dei seguenti caratteri riservati dell’URI, i valori devono essere codificati come URL:
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  uno spazio vuoto 

Ad esempio, se il valore `PWD` è `password:password`, un URL di connessione che utilizza tale valore avrebbe un aspetto simile al seguente:

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

Per informazioni su come ottenere la tua connessione JDBC, consulta [Ricerca della stringa di connessione al cluster](connecting-connection-string.md). 

Se il computer client non riesce a connettersi al database, puoi provare a risolvere i possibili problemi. Per ulteriori informazioni, consulta [Risoluzione dei problemi di connessione in Amazon Redshift](troubleshooting-connections.md). 

# Creazione dell'URL di connessione
<a name="jdbc20-build-connection-url"></a>

Utilizza l'URL di connessione per fornire informazioni di connessione all'archivio dati a cui si sta accedendo. Di seguito è riportato il formato dell’URL di connessione per il driver JDBC versione 2.x di Amazon Redshift. Qui, [Host] è l'endpoint del server Amazon Redshift e [Port] è il numero della porta TCP utilizzata dal server per ascoltare le richieste dei client.

```
jdbc:redshift://[Host]:[Port]
```

Di seguito è riportato il formato di un URL di connessione che specifica alcune impostazioni facoltative.

```
jdbc:redshift://[Host]:[Port]/[database];[Property1]=[Value];
[Property2]=[Value];
```

Se i valori dell’URL contengono uno dei seguenti caratteri riservati dell’URI, i valori devono essere codificati come URL:
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  uno spazio vuoto 

Ad esempio, se il valore `PWD` è `password:password`, un URL di connessione che utilizza tale valore avrebbe un aspetto simile al seguente:

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

Ad esempio, supponiamo di volersi connettere alla porta 9000 su un cluster Amazon Redshift nella regione Stati Uniti occidentali (California settentrionale) in AWS. Inoltre consigliamo di accedere al database denominato `dev` e autenticare la connessione utilizzando un nome utente e una password per il database. In tal caso, viene utilizzato l'URL di connessione seguente.

```
jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=amazon
```

Per separare le opzioni di configurazione dal resto della stringa URL puoi utilizzare i seguenti caratteri:
+ ;
+ ?

Ad esempio, le seguenti stringhe URL sono equivalenti:

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev?ssl=true;defaultRowFetchSize=100
```

Per separare le opzioni di configurazione una dall'altra nella stringa URL puoi utilizzare i seguenti caratteri:
+ ;
+ &

Ad esempio, le seguenti stringhe URL sono equivalenti:

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev;ssl=true&defaultRowFetchSize=100
```

Nell'esempio di URL seguente viene specificato un livello di log pari a 6 e il percorso dei log.

```
jdbc:redshift://redshift.amazonaws.com:5439/dev;DSILogLevel=6;LogPath=/home/user/logs;
```

Non duplicare le proprietà nell'URL di connessione.

Per un elenco completo delle opzioni di configurazione che è possibile specificare, consultare [Opzioni per la configurazione del driver JDBC versione 2.x](jdbc20-configuration-options.md). 

**Nota**  
Quando ti connetti, non utilizzare l'indirizzo IP di un nodo del cluster o l'indirizzo IP dell'endpoint VPC. Usa sempre l'endpoint Redshift per evitare interruzioni non necessarie. L'unica eccezione all'utilizzo dell'URL dell'endpoint è quando utilizzi un nome di dominio personalizzato. Per ulteriori informazioni, consulta [Utilizzo di un nome di dominio personalizzato per le connessioni client](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME.html).

# Configurazione di una connessione JDBC con Apache Maven
<a name="configure-jdbc20-connection-with-maven"></a>

Apache Maven è uno strumento di comprensione e gestione di progetti software. AWS SDK per Java supporta i progetti Apache Maven. Per ulteriori informazioni, consultare [Utilizzo di SDK con Apache Maven](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-project-maven.html) nella *Guida per gli sviluppatori di AWS SDK per Java *. 

Se si utilizza Apache Maven, è possibile configurare e compilare i progetti in modo da usare un driver JDBC di Amazon Redshift per connettersi al cluster Amazon Redshift. A tale scopo, aggiungi il driver JDBC come una dipendenza nel file `pom.xml` del progetto. Segui la procedura descritta in questa sezione se utilizzi Maven per compilare il progetto e intendi usare una connessione JDBC. 

**Per configurare il driver JDBC come una dipendenza Maven**

1. Aggiungere il repository Amazon o il repository Maven Central alla sezione dei repository del file `pom.xml`.
**Nota**  
L'URL nel codice seguente restituisce un errore se utilizzato in un browser. Utilizzare questo URL solo nel contesto di un progetto Maven.

   Per connettersi tramite Secure Sockets Layer (SSL), aggiungere il seguente repository al file `pom.xml`.

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://s3.amazonaws.com/redshift-maven-repository/release</url>
       </repository>
   </repositories>
   ```

   Per un repository Maven Central, aggiungere quanto segue al file `pom.xml`.

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://repo1.maven.org/maven2</url>
       </repository>
   </repositories>
   ```

1. Dichiarare la versione del driver che si intende utilizzare nella sezione delle dipendenze del file `pom.xml`.

   Amazon Redshift offre driver per strumenti compatibili con l'API JDBC 4.2. Per informazioni sulla funzionalità supportata da questi driver, consulta [Scarica il driver JDBC Amazon Redshift, versione 2.1](jdbc20-download-driver.md). 

   Sostituire `driver-version` nell'esempio seguente con la versione del driver, ad esempio `2.1.0.1`. Per un driver compatibile con JDBC 4.2, utilizzare quanto segue. 

   ```
   <dependency>
      <groupId>com.amazon.redshift</groupId>
      <artifactId>redshift-jdbc42</artifactId>
      <version>driver-version</version>
   </dependency>
   ```

   Il nome della classe per questo driver è `com.amazon.redshift.Driver`.

I driver Amazon Redshift Maven richiedono le seguenti dipendenze facoltative quando si utilizza l'autenticazione del database IAM. 

```
<dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-core</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-redshift</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
<dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-sts</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
```

Per aggiornare o passare alla versione più recente del driver JDBC di Amazon Redshift, modificare la sezione relativa alla versione della dipendenza indicando l'ultima versione del driver. Quindi ripristina il progetto con il plugin di pulizia Maven, come mostrato di seguito. 

```
mvn clean
```

# Configurazione dell'autenticazione e di SSL
<a name="jdbc20-configure-authentication-ssl"></a>

Per proteggere i dati da accessi non autorizzati, gli archivi dati di Amazon Redshift richiedono l'autenticazione di tutte le connessioni tramite le credenziali utente. Alcuni archivi dati richiedono inoltre connessioni tramite il protocollo Secure Sockets Layer (SSL), con o senza autenticazione unidirezionale.

Il driver JDBC versione 2.x di Amazon Redshift fornisce il supporto completo per questi protocolli di autenticazione. 

La versione SSL supportata dal driver dipende dalla versione JVM che si sta utilizzando. Per ulteriori informazioni sulle versioni SSL supportate da ogni versione di Java, consultare [Diagnosi di TLS, SSL e HTTPS](https://blogs.oracle.com/java-platform-group/diagnosing-tls,-ssl,-and-https) sul blog di gestione prodotti del gruppo di piattaforme Java. 

La versione SSL utilizzata per la connessione è la versione più alta supportata sia dal driver che dal server e viene determinata al momento della connessione.

Configura il driver JDBC versione 2.x di Amazon Redshift per autenticare la connessione in base ai requisiti di sicurezza del server Redshift a cui stai effettuando la connessione. 

Per autenticare la connessione, devi sempre specificare il nome utente e la password di Redshift. A seconda che SSL sia abilitato e necessario sul server, potresti dover configurare il driver per la connessione tramite SSL. Oppure potrebbe essere necessario utilizzare l'autenticazione SSL unidirezionale in modo che il client (il driver stesso) verifichi l'identità del server. 

Le informazioni di configurazione vengono fornite al driver nell'URL di connessione. Per ulteriori informazioni sulla sintassi dell'URL di connessione, consultare [Creazione dell'URL di connessione](jdbc20-build-connection-url.md). 

*SSL indica*. TLS/SSL, both Transport Layer Security and Secure Sockets Layer. The driver supports industry-standard versions of TLS/SSL 

## Configurazione dell'autenticazione IAM
<a name="jdbc20-configure-iam-authentication"></a>

Se ci si connette a un server Amazon Redshift tramite l'autenticazione IAM, impostare le seguenti proprietà come parte della stringa di connessione all'origine dati. 

 Per ulteriori informazioni sull'autenticazione IAM, consultare [Identity and Access Management in Amazon Redshift](redshift-iam-authentication-access-control.md).

Per utilizzare l'autenticazione IAM, utilizzare uno dei seguenti formati di stringa di connessione:


| Stringa di connessione | Description | 
| --- | --- | 
|  `jdbc:redshift:iam:// [host]:[port]/[db]`  |  Una stringa di connessione normale. Il driver deduce il ClusterID e la regione dall'host.  | 
|  `jdbc:redshift:iam:// [cluster-id]: [region]/[db]`  |  Il driver recupera le informazioni sull'host, dato il ClusterID e la regione.  | 
|  `jdbc:redshift:iam:// [host]/[db]`  |  Il driver utilizza di default la porta 5439 e recupera ClusterID e regione dall'host. A seconda della porta selezionata durante la creazione, la modifica o la migrazione del cluster, consenti l'accesso alla porta selezionata.   | 

## Specifica di profili
<a name="jdbc20-aws-credentials-profiles"></a>

Se si utilizza l'autenticazione IAM, è possibile specificare eventuali altre proprietà di connessione obbligatorie o facoltative sotto il nome di un profilo. In questo modo, è possibile evitare di inserire determinate informazioni direttamente nella stringa di connessione. Il nome del profilo viene specificato nella stringa di connessione utilizzando la proprietà Profile. 

I profili possono essere aggiunti al file delle AWS credenziali. Il percorso predefinito per questo file è `~/.aws/credentials`. 

È possibile modificare il valore predefinito impostando il percorso nella seguente variabile di ambiente: `AWS_CREDENTIAL_PROFILES_FILE` 

 Per ulteriori informazioni sui profili, consultare [Utilizzo delle credenziali AWS](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) nella *AWS SDK per Java*. 

## Utilizzo delle credenziali del profilo dell'istanza
<a name="jdbc20-instance-profile-credentials"></a>

Se si sta eseguendo un'applicazione su un'istanza Amazon EC2 associata a un ruolo IAM, è possibile connettersi utilizzando le credenziali del profilo dell'istanza. 

A tale scopo utilizza uno dei formati di stringa di connessione IAM della tabella precedente e imposta la proprietà di connessione dbuser sul nome utente Amazon Redshift con cui ti connetti. 

Per ulteriori informazioni sui profili dell'istanza, consultare [Gestione degli accessi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) nella *Guida per l'utente di IAM*. 

## Utilizzo di provider di credenziali
<a name="jdbc20-aws-credentials-provider"></a>

Il driver supporta inoltre i plug-in del provider di credenziali dei seguenti servizi: 
+ AWS IAM Identity Center
+ Active Directory Federation Service (ADFS)
+ Servizio JSON Web Tokens (JWT)
+ Servizio Microsoft Azure Active Directory (AD) e servizio Browser Microsoft Azure Active Directory (AD)
+ Servizio Okta
+ PingFederate Servizio 
+ Browser SAML per servizi SAML quali Okta, Ping o ADFS

Se si utilizza uno di questi servizi, l'URL di connessione deve specificare le proprietà seguenti: 
+ **Plugin\$1Name**: la variabile classpath completa per la classe di plug-in del provider di credenziali.
+ **IdP\$1Host:**: l'host del servizio che si sta utilizzando per autenticarsi in Amazon Redshift.
+ **IdP\$1Port**: la porta su cui l'host del servizio di autenticazione è in ascolto. Non richiesta per Okta.
+ **User**: il nome utente per il server idp\$1host.
+ **Password**: la password associata al nome utente idp\$1host.
+ **DbUser**— Il nome utente di Amazon Redshift con cui ti stai connettendo.
+ **SSL\$1Insecure**: indica se il certificato del server IDP deve essere verificato.
+ **Client\$1ID**: l’ID client associato al nome utente nel portale di Azure AD. Utilizzata solo per Azure AD.
+ **Client\$1Secret**: il segreto client associato all'ID client nel portale di Azure AD. Utilizzata solo per Azure AD.
+ **IdP\$1Tenant**: l'ID tenant di Azure AD per l'applicazione Amazon Redshift. Utilizzata solo per Azure AD.
+ **App\$1ID**: l'ID dell'app Okta per l'applicazione Amazon Redshift. Utilizzata solo per Okta.
+ **App\$1Name**: il nome dell'app Okta per l'applicazione Amazon Redshift. Utilizzata solo per Okta.
+ **Partner\$1SPID**: il valore facoltativo dello SPID (Service Provider ID) del partner. Utilizzato solo per PingFederate.
+ **Idc\$1Region**: Regione AWS dove si trova l'istanza di AWS IAM Identity Center. Utilizzato solo per AWS IAM Identity Center.
+ **Issuer\$1Url: l'**endpoint dell' AWS istanza del server IAM Identity Center. Utilizzato solo per IAM Identity Center AWS .

Se si utilizza un plug-in per il browser per uno di questi servizi, l'URL di connessione può includere anche: 
+ **Login\$1URL**: l'URL della risorsa sul sito Web del provider di identità quando si usa il linguaggio SAML (Security Assertion Markup Language) o i servizi di Azure AD tramite un plug-in del browser. Questo parametro è obbligatorio se si utilizza un plug-in del browser.
+ **Listen\$1Port**: la porta utilizzata dal driver per ottenere la risposta SAML dal provider di identità quando utilizza i servizi SAML, Azure AD o AWS IAM Identity Center tramite un plug-in del browser.
+ **IDP\$1Response\$1Timeout**: la quantità di tempo, in secondi, che il driver attende la risposta SAML dal provider di identità quando utilizza i servizi SAML, Azure AD o IAM Identity Center tramite un plug-in del browser. AWS 

Per informazioni sulle proprietà aggiuntive della stringa di connessione, consultare [Opzioni per la configurazione del driver JDBC versione 2.x](jdbc20-configuration-options.md). 

# Utilizzo solo del nome utente e della password
<a name="jdbc20-authentication-username-password"></a>

Se il server a cui ti connetti non utilizza SSL, per autenticare la connessione, devi solo fornire il nome utente e la password di Redshift. 

**Come configurare l’autenticazione utilizzando solo il nome utente e la password di Redshift**

1. Imposta la proprietà `UID` sul nome utente di Redshift per accedere al server Amazon Redshift.

1. Imposta la proprietà PWD sulla password corrispondente al nome utente di Redshift.

# Utilizzo di SSL senza verifica dell'identità
<a name="jdbc20-use-ssl-without-identity-verification"></a>

Se il server a cui ci si connette utilizza SSL ma non richiede la verifica dell'identità, è possibile configurare il driver per utilizzare un factory SSL non convalidante. 

**Come configurare una connessione SSL senza verifica dell'identità**

1. Imposta la proprietà `UID` sul nome utente di Redshift per accedere al server Amazon Redshift.

1. Imposta la proprietà `PWD` sulla password corrispondente al nome utente di Redshift.

1. Impostare la proprietà `SSLFactory` su `com.amazon.redshift.ssl.NonValidatingFactory`.

# Utilizzo dell'autenticazione SSL unidirezionale
<a name="jdbc20-use-one-way-SSL-authentication"></a>

Se il server a cui ci si connette utilizza SSL e dispone di un certificato, allora è possibile configurare il driver per verificare l'identità del server utilizzando l'autenticazione unidirezionale. 

L'autenticazione unidirezionale richiede un certificato SSL firmato e attendibile che verifichi l'identità del server. Puoi configurare il driver per utilizzare un certificato specifico o accedere a un certificato che contiene il certificato appropriato. TrustStore Se non si specifica un certificato o TrustStore, il driver utilizza il codice Java predefinito TrustStore (in genere uno `jssecacerts` o due`cacerts`). 

**Come configurare l'autenticazione SSL unidirezionale**

1. Imposta la proprietà UID sul nome utente di Redshift per accedere al server Amazon Redshift.

1. Imposta la proprietà PWD sulla password corrispondente al nome utente di Redshift.

1. Impostare la proprietà SSL su true.

1. Imposta la proprietà SSLRoot Cert sulla posizione del certificato CA principale.

1. Se non utilizzi uno dei file Java predefiniti TrustStores, esegui una delle seguenti operazioni:
   + Per specificare un certificato server, impostate la proprietà SSLRoot Cert sul percorso completo del certificato.
   + Per specificare a TrustStore, procedi come segue:

     1. Utilizzate il programma keytool per aggiungere il certificato del server a TrustStore quello che desiderate utilizzare.

     1. Specificate la password TrustStore e da utilizzare all'avvio dell'applicazione Java utilizzando il driver. Esempio:

        ```
        -Djavax.net.ssl.trustStore=[TrustStoreName]
        -Djavax.net.ssl.trustStorePassword=[TrustStorePassword]
        -Djavax.net.ssl.trustStoreType=[TrustStoreType]
        ```

1. modi:
   + Per convalidare il certificato, imposta la SSLMode proprietà su verify-ca.
   + Per convalidare il certificato e verificare il nome host nel certificato, imposta la proprietà su verify-full. SSLMode 

# Configurazione della registrazione
<a name="jdbc20-configuring-logging"></a>

È possibile attivare l'accesso al driver per facilitare la diagnosi dei problemi.

È possibile registrare le informazioni sui driver utilizzando i seguenti metodi.
+ Per salvare le informazioni registrate nei file di log, consultare [Utilizzo dei file di log](jdbc20-using-log-files.md).
+ Per inviare le informazioni registrate al LogStream o LogWriter specificato in, vedere. DriverManager [Usando o LogStream LogWriter](jdbc20-logstream-option.md) 

Le informazioni di configurazione vengono fornite al driver nell'URL di connessione. Per ulteriori informazioni sulla sintassi dell'URL di connessione, consultare [Creazione dell'URL di connessione](jdbc20-build-connection-url.md).

# Utilizzo dei file di log
<a name="jdbc20-using-log-files"></a>

Attivare la registrazione abbastanza a lungo da rilevare un problema. La registrazione riduce le prestazioni e può richiedere una grande quantità di spazio su disco. 

Imposta la LogLevel chiave nell'URL di connessione per attivare la registrazione e specifica la quantità di dettagli inclusi nei file di registro. Nella tabella seguente sono riportati i livelli di registrazione di log forniti dal driver JDBC versione 2.x di Amazon Redshift, in ordine dal meno dettagliato al più dettagliato. 


| LogLevel valore | Description | 
| --- | --- | 
|  1  |  Registrare eventi di errore gravi che comportano l'interruzione del driver.  | 
|  2  |  Registrare eventi di errore che potrebbero consentire al driver di restare in esecuzione.  | 
|  3  |  Registra gli eventi che potrebbero causare un errore se non viene eseguita un'azione. Questo livello di registrazione e i livelli di registrazione superiori a questo livello registrano anche le query dell'utente.  | 
|  4  |  Registrare informazioni generali che descrivono l'avanzamento del driver.  | 
|  5  |  Registrare informazioni dettagliate utili per il debug del driver.  | 
|  6  |  Registrare tutte le attività del driver.  | 

**Come configurare la registrazione che utilizza i file di log**

1. Imposta la LogLevel proprietà sul livello di informazioni desiderato da includere nei file di registro.

1. Imposta la LogPath proprietà sul percorso completo della cartella in cui desideri salvare i file di registro. 

   Ad esempio, il seguente URL di connessione abilita il livello di registrazione 3 e salva i file di log nella cartella C:\$1temp: `jdbc:redshift://redshift.company.us-west- 1.redshift.amazonaws.com:9000/Default;DSILogLevel=3;LogPath=C:\temp`

1. Per assicurarsi che le nuove impostazioni abbiano effetto, riavviare l'applicazione JDBC e riconnettersi al server.

   Il driver JDBC di Amazon Redshift produce i seguenti file di log nella posizione specificata nella proprietà: LogPath 
   +  File redshift\$1jdbc.log che registra l'attività del driver che non è specifica di una connessione.
   + File redshift\$1jdbc\$1connection\$1[numero].log per ogni connessione effettuata al database, dove [numero] è un numero che identifica ogni file di log. Questo file registra l'attività del driver specifica per la connessione.

Se il LogPath valore non è valido, il driver invia le informazioni registrate allo standard output stream () `System.out`

# Usando o LogStream LogWriter
<a name="jdbc20-logstream-option"></a>

Attivare la registrazione abbastanza a lungo da rilevare un problema. La registrazione riduce le prestazioni e può richiedere una grande quantità di spazio su disco. 

Imposta la LogLevel chiave nell'URL di connessione per attivare la registrazione e specifica la quantità di dettagli inviati a LogStream o LogWriter specificata in. DriverManager 

**Per attivare la registrazione che utilizza o: LogStream LogWriter**

1. Per configurare il driver in modo da registrare informazioni generali che descrivono lo stato di avanzamento del driver, impostate la LogLevel proprietà su 1 o INFO.

1. Per assicurarsi che le nuove impostazioni abbiano effetto, riavviare l'applicazione JDBC e riconnettersi al server.

# Conversioni dei tipi di dati
<a name="jdbc20-data-type-mapping"></a>

Il driver JDBC versione 2.x di Amazon Redshift supporta molti formati di dati comuni, convertendo tra tipi di dati Amazon Redshift, SQL e Java.

La tabella seguente riporta le mappature dei tipi di dati supportate.


| Tipo di Amazon Redshift | Tipo SQL | Tipo di Java | 
| --- | --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  |  Long  | 
|  BOOLEAN  |  SQL\$1BIT  |  Booleano  | 
|  CHAR  |  SQL\$1CHAR  |  Stringa  | 
|  DATE  |  SQL\$1TYPE\$1DATE  |  java.sql.Date  | 
|  DECIMAL  |  SQL\$1NUMERIC  |  BigDecimal  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  |  Double  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  |  byte[]  | 
|  INTEGER  |  SQL\$1INTEGER  |  Numero intero  | 
|  OID  |  SQL\$1BIGINT  |  Long  | 
|  SUPER  |  SQL\$1LONGVARCHAR  |  Stringa  | 
|  REAL  |  SQL\$1REAL  |  Float  | 
|  SMALLINT  |  SQL\$1SMALLINT  |  Breve  | 
|  TEXT  |  SQL\$1VARCHAR  |  Stringa  | 
|  TIME  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  VARCHAR  |  SQL\$1VARCHAR  |  Stringa  | 

# Utilizzo del supporto per le istruzioni preparate
<a name="jdbc20-prepared-statement-support"></a>

Il driver JDBC di Amazon Redshift supporta le istruzioni preparate. È possibile utilizzare le istruzioni preparate per migliorare le prestazioni delle query con parametri che devono essere eseguite più volte durante la stessa connessione.

Una *istruzione preparata* è un'istruzione SQL compilata sul lato server ma che non viene eseguita immediatamente. L'istruzione compilata viene archiviata sul server come PreparedStatement oggetto fino alla chiusura dell'oggetto o della connessione. Mentre tale oggetto esiste, è possibile eseguire l'istruzione preparata tutte le volte necessarie utilizzando valori di parametro diversi senza dover compilare nuovamente l'istruzione. Questo sovraccarico ridotto consente di eseguire più rapidamente l'insieme di query.

Per ulteriori informazioni sulle istruzioni preparate, consultare "Utilizzo delle istruzioni preparate" nel [tutorial Elementi essenziali di JDBC di Oracle](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).

È possibile preparare un'istruzione che contiene più query. Ad esempio, l'istruzione preparata seguente contiene due query INSERT:

```
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO
MyTable VALUES (1, 'abc'); INSERT INTO CompanyTable VALUES
(1, 'abc');");
```

Fare attenzione in quanto queste query non dipendono dai risultati di altre query specificate all'interno della stessa istruzione preparata. Poiché le query non vengono eseguite durante la fase di preparazione, i risultati non sono ancora stati restituiti e non sono disponibili per altre query nella stessa istruzione preparata.

Ad esempio, la seguente istruzione preparata, che crea una tabella e quindi inserisce valori nella tabella appena creata, non è consentita:

```
PreparedStatement pstmt = conn.prepareStatement("CREATE
TABLE MyTable(col1 int, col2 varchar); INSERT INTO myTable
VALUES (1, 'abc');");
```

Se si prova a preparare questa istruzione, il server restituisce un errore che indica che la tabella di destinazione (MyTable) non esiste ancora. La query CREATE deve essere eseguita prima che la query INSERT possa essere preparata.

# Differenze tra le versioni 2.2 e 1.x del driver JDBC
<a name="jdbc20-jdbc10-driver-differences"></a>

Questa sezione descrive le differenze nelle informazioni restituite dalle versioni 2.2 e 1.x del driver JDBC. Il driver JDBC versione 1.x è interrotto.

La tabella seguente elenca le DatabaseMetadata informazioni restituite dalle funzioni getDatabaseProduct Name () e getDatabaseProduct Version () per ogni versione del driver JDBC. Il driver JDBC versione 2.2 ottiene i valori durante la creazione della connessione. Il driver JDBC versione 1.x ottiene i valori come risultato di una query.


| Versione driver JDBC | getDatabaseProductRisultato Name () | getDatabaseProductRisultato della versione () | 
| --- | --- | --- | 
|  2.2  |  Redshift  |  8.0.2  | 
|  1.x  |  PostgreSQL  |  08,0002  | 

La tabella seguente elenca le DatabaseMetadata informazioni restituite dalla getTypeInfo funzione per ogni versione del driver JDBC. 


| Versione driver JDBC | getTypeInfo risultato | 
| --- | --- | 
|  2.2  |  Coerente con i tipi di dati Redshift  | 
|  1.x  |  Coerente con i tipi di dati PostgreSQL  | 

# Creazione di file di inizializzazione (.ini) per il driver JDBC versione 2.x
<a name="jdbc20-ini-file"></a>

Grazie ai file di inizializzazione (ini) per il driver JDBC versione 2.x di Amazon Redshift, puoi specificare i parametri di configurazione a livello di sistema. Ad esempio, i parametri di autenticazione IdP federati possono variare per ogni applicazione. Il file .ini fornisce una posizione comune dove i client SQL possono ottenere i parametri di configurazione richiesti. 

Puoi creare un file di inizializzazione (.ini) del driver JDBC versione 2.x contenente le opzioni di configurazione per i client SQL. Il nome di default del file è `rsjdbc.ini`. Il driver JDBC versione 2.x controlla il file .ini nelle seguenti posizioni, elencate in ordine di precedenza:
+ Parametro `IniFile` nell'URL di connessione o nella finestra di dialogo delle proprietà di connessione del client SQL. Assicurarsi che il parametro `IniFile` contenga il percorso completo del file .ini, incluso il nome del file. Per ulteriori informazioni sul parametro `IniFile`, consultare [IniFile](jdbc20-configuration-options.md#jdbc20-inifile-option). Se parametro `IniFile` specifica in modo una posizione errata del file ini, viene visualizzato un errore.
+ Variabili di ambiente quali AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE con il percorso completo, incluso il nome del file. È possibile utilizzare `rsjdbc.ini` oppure specificare un nome file. Se la variabile di ambiente AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE specifica in modo errato la posizione del file ini, viene visualizzato un errore.
+ Directory in cui si trova il file JAR del driver.
+ Directory home dell'utente.
+ Directory temporanea del sistema.

È possibile organizzare il file .ini in sezioni, ad esempio [DRIVER]. Ogni sezione contiene coppie chiave-valore che specificano i vari parametri di connessione. È possibile utilizzare il plug-in `IniSection` per specificare una sezione nel file .ini. Per ulteriori informazioni sul parametro `IniSection`, consultare [IniSection](jdbc20-configuration-options.md#jdbc20-inisection-option). 

Di seguito è riportato un esempio del formato di file .ini, con sezioni per [DRIVER], [DEV], [QA] e [PROD]. La sezione [DRIVER] può essere applicata a qualsiasi connessione.

```
[DRIVER]
key1=val1
key2=val2

[DEV]
key1=val1
key2=val2

[QA]
key1=val1
key2=val2

[PROD]
key1=val1
key2=val2
```

Il driver JDBC versione 2.x carica i parametri di configurazione dalle seguenti posizioni, elencate in ordine di precedenza:
+ Parametri di configurazione di default nel codice dell'applicazione.
+ Proprietà della sezione [DRIVER] dal file .ini, se incluso.
+ Parametri di configurazione della sezione personalizzata, se l'opzione `IniSection` viene fornita nell'URL di connessione o nella finestra di dialogo delle proprietà di connessione del client SQL.
+ Proprietà dall'oggetto proprietà di connessione specificato nella chiamata `getConnection`.
+ Parametri di configurazione specificati nell'URL di connessione.

# Opzioni per la configurazione del driver JDBC versione 2.x
<a name="jdbc20-configuration-options"></a>

Di seguito, puoi trovare le descrizioni delle opzioni che puoi specificare per la versione 2.2 del driver JDBC Amazon Redshift. Le opzioni di configurazione non fanno distinzione tra maiuscole e minuscole.

È possibile impostare le proprietà di configurazione utilizzando l'URL di connessione. Per ulteriori informazioni, consulta [Creazione dell'URL di connessione](jdbc20-build-connection-url.md).

**Topics**
+ [AccessKeyID](#jdbc20-accesskeyid-option)
+ [DBUserConsenti override](#jdbc20-allowdbuseroverride-option)
+ [App\$1ID](#jdbc20-app-id-option)
+ [App\$1Name](#jdbc20-app-name-option)
+ [ApplicationName](#jdbc20-applicationname-option)
+ [AuthProfile](#jdbc20-authprofile-option)
+ [AutoCreate](#jdbc20-autocreate-option)
+ [Client\$1ID](#jdbc20-client_id-option)
+ [Client\$1Secret](#jdbc20-client_secret-option)
+ [ClusterID](#jdbc20-clusterid-option)
+ [Compression](#jdbc20-compression-option)
+ [connectTimeout](#jdbc20-connecttimeout-option)
+ [connectionTimezone](#jdbc20-connecttimezone-option)
+ [databaseMetadataCurrentDbOnly](#jdbc20-databasemetadatacurrentdbonly-option)
+ [DbUser](#jdbc20-dbuser-option)
+ [DbGroups](#jdbc20-dbgroups-option)
+ [DBNAME](#jdbc20-dbname-option)
+ [defaultRowFetchDimensioni](#jdbc20-defaultrowfetchsize-option)
+ [DisableIsValidQuery](#jdbc20-disableisvalidquery-option)
+ [enableFetchRingBuffer](#jdbc20-enablefetchringbuffer-option)
+ [enableMultiSqlSupport](#jdbc20-enablemultisqlsupport-option)
+ [fetchRingBufferDimensioni](#jdbc20-fetchringbuffersize-option)
+ [ForceLowercase](#jdbc20-forcelowercase-option)
+ [groupFederation](#jdbc20-groupFederation-option)
+ [HOST](#jdbc20-host-option)
+ [IAMDisableCache](#jdbc20-iamdisablecache-option)
+ [IAMDuration](#jdbc20-iamduration-option)
+ [Idc\$1Client\$1Display\$1Name](#jdbc20-idc_client_display_name)
+ [Idc\$1Region](#jdbc20-idc_region)
+ [IdP\$1Host](#jdbc20-idp_host-option)
+ [IdP\$1Partition](#jdbc20-idp_partition-option)
+ [IdP\$1Port](#jdbc20-idp_port-option)
+ [idp\$1tenant](#jdbc20-idp_tenant-option)
+ [IdP\$1Response\$1Timeout](#jdbc20-idp_response_timeout-option)
+ [IniFile](#jdbc20-inifile-option)
+ [IniSection](#jdbc20-inisection-option)
+ [isServerless](#jdbc20-isserverless-option)
+ [Issuer\$1Url](#jdbc20-issuer-url)
+ [Listen\$1Port](#jdbc20-listen-port)
+ [URL login\$1](#jdbc20-login_url-option)
+ [loginTimeout](#jdbc20-logintimeout-option)
+ [loginToRp](#jdbc20-logintorp-option)
+ [LogLevel](#jdbc20-loglevel-option)
+ [LogPath](#jdbc20-logpath-option)
+ [OverrideSchemaPatternType](#jdbc20-override-schema-pattern-type)
+ [Partner\$1SPID](#jdbc20-partner_spid-option)
+ [Password](#jdbc20-password-option)
+ [Plugin\$1Name](#jdbc20-plugin_name-option)
+ [PORT](#jdbc20-port-option)
+ [preferred\$1role](#jdbc20-preferred_role-option)
+ [Profilo](#jdbc20-profile-option)
+ [PWD](#jdbc20-pwd-option)
+ [queryGroup](#jdbc20-querygroup-option)
+ [readOnly](#jdbc20-readonly-option)
+ [Region](#jdbc20-region-option)
+ [reWriteBatchedInserti](#jdbc20-rewritebatchedinserts-option)
+ [reWriteBatchedInsertsSize](#jdbc20-rewritebatchedinsertssize-option)
+ [roleArn](#jdbc20-rolearn-option)
+ [roleSessionName](#jdbc20-roleaessionname-option)
+ [scope](#jdbc20-scope-option)
+ [SecretAccessKey](#jdbc20-secretaccesskey-option)
+ [SessionToken](#jdbc20-sessiontoken-option)
+ [serverlessAcctId](#jdbc20-serverlessacctid-option)
+ [serverlessWorkGroup](#jdbc20-serverlessworkgroup-option)
+ [socketFactory](#jdbc20-socketfactory-option)
+ [socketTimeout](#jdbc20-sockettimeout-option)
+ [SSL](#jdbc20-ssl-option)
+ [ssl\$1insecure](#jdbc20-ssl_insecure-option)
+ [SSLCert](#jdbc20-sslcert-option)
+ [SSLFactory](#jdbc20-sslfactory-option)
+ [SSLKey](#jdbc20-sslkey-option)
+ [SSLMode](#jdbc20-sslmode-option)
+ [SSLPassword](#jdbc20-sslpassword-option)
+ [SSLRootCertificato](#jdbc20-sslrootcert-option)
+ [StsEndpointUrl](#jdbc20-stsendpointurl-option)
+ [tcpKeepAlive](#jdbc20-tcpkeepalive-option)
+ [token](#jdbc20-token-option)
+ [token\$1type](#jdbc20-token-type-option)
+ [UID](#jdbc20-uid-option)
+ [Utente](#jdbc20-user-option)
+ [webIdentityToken](#jdbc20-webidentitytoken-option)

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

È possibile specificare questo parametro per immettere la chiave di accesso IAM per l'utente o il ruolo. Di solito è possibile individuare la chiave guardando una stringa o un profilo utente esistente. Se si specifica questo parametro, è necessario specificare anche il parametro `SecretAccessKey`. Se passato nell'URL JDBC, l' AccessKeyID deve essere codificato come URL.

Questo parametro è facoltativo.

## DBUserConsenti override
<a name="jdbc20-allowdbuseroverride-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: stringa

Questa opzione specifica se il driver utilizza l'opzione`DbUser` dall'asserzione SAML o il valore specificato nella proprietà di connessione `DbUser` nell'URL di connessione. 

Questo parametro è facoltativo.

**1**  
Il driver utilizza il valore `DbUser` dall'asserzione SAML.  
Se l'asserzione SAML non specifica un valore per `DBUser`, il driver utilizzerà il valore specificato nella proprietà di connessione `DBUser`. Se neanche la proprietà di connessione specifica un valore, il driver utilizzerà il valore specificato nel profilo di connessione.

**0**  
Il driver utilizza il valore `DBUser` specificato nella proprietà di connessione `DBUser`.  
Se la proprietà di connessione `DBUser` non specifica un valore, il driver utilizzerà il valore specificato nel profilo di connessione. Se neanche il profilo di connessione specifica un valore, il driver utilizzerà il valore dall'asserzione SAML.

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

L'ID univoco fornito da Okta associato all'applicazione Amazon Redshift. 

Questo parametro è obbligatorio se si esegue l'autenticazione tramite il servizio Okta.

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

Il nome dell'applicazione Okta utilizzata per autenticare la connessione ad Amazon Redshift. 

Questo parametro è facoltativo.

## ApplicationName
<a name="jdbc20-applicationname-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: stringa

Il nome dell'applicazione da passare ad Amazon Redshift a scopo di verifica. 

Questo parametro è facoltativo.

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

Il nome del profilo di autenticazione da utilizzare per la connessione ad Amazon Redshift. 

Questo parametro è facoltativo.

## AutoCreate
<a name="jdbc20-autocreate-option"></a>
+ **Valore predefinito**: false
+ **Tipo di dati**: booleano

Questa opzione specifica se il driver determina la creazione di un nuovo utente quando l'utente specificato non esiste. 

Questo parametro è facoltativo.

**true**  
Se l'utente specificato da `DBUser` o ID univoco (UID) non esiste, sarà creato un nuovo utente con tale nome.

**false**  
Il driver non provoca la creazione di nuovi utenti. Se l'utente specificato non esiste, l'autenticazione avrà esito negativo.

## Client\$1ID
<a name="jdbc20-client_id-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

L'ID client da usare durante l'autenticazione della connessione tramite il servizio Azure AD. 

Questo parametro è obbligatorio se si esegue l'autenticazione tramite il servizio Azure AD.

## Client\$1Secret
<a name="jdbc20-client_secret-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il segreto client da usare durante l'autenticazione della connessione tramite il servizio Azure AD. 

Questo parametro è obbligatorio se si esegue l'autenticazione tramite il servizio Azure AD.

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

Il nome del cluster Amazon Redshift a cui connettersi. Il driver prova a rilevare questo parametro dall'host specificato. Se utilizzi un Network Load Balancer (NLB) e una connessione tramite IAM, il driver non riuscirà a rilevarla, quindi puoi impostarla mediante questa opzione di connessione. 

Questo parametro è facoltativo.

## Compression
<a name="jdbc20-compression-option"></a>
+ **Valore predefinito**: off
+ **Tipo di dati**: stringa

Il metodo di compressione utilizzato per la comunicazione del protocollo wire tra il server Amazon Redshift e il client o il driver.

Questo parametro è facoltativo.

Puoi specificare le seguenti valori:
+ **lz4**

  Imposta il metodo di compressione utilizzato per la comunicazione del protocollo wire con Amazon Redshift su lz4.
+ **off**

  Non utilizza la compressione per la comunicazione del protocollo wire con Amazon Redshift.

## connectTimeout
<a name="jdbc20-connecttimeout-option"></a>
+ **Valore di default**: 10
+ **Tipo di dati**: numero intero

Il valore di timeout da utilizzare per le operazioni di connessione socket. Se il tempo necessario per stabilire una connessione Amazon Redshift supera questo valore, la connessione è considerata non disponibile. Il timeout è specificato in secondi. Un valore pari a 0 significa che non viene specificato alcun timeout.

Questo parametro è facoltativo.

## connectionTimezone
<a name="jdbc20-connecttimezone-option"></a>
+ **Valore predefinito**: LOCAL
+ **Tipo di dati**: stringa

Il fuso orario a livello di sessione.

Questo parametro è facoltativo.

Puoi specificare le seguenti valori:

**LOCAL**  
Configura il fuso orario a livello di sessione nel fuso orario LOCAL JVM.

**SERVER**  
Configura il fuso orario a livello di sessione sul fuso orario impostato per l'utente nel server Amazon Redshift. Puoi configurare i fusi orari a livello di sessione per gli utenti con il seguente comando:  

```
ALTER USER
[...]
SET TIMEZONE TO [...];
```

## databaseMetadataCurrentDbOnly
<a name="jdbc20-databasemetadatacurrentdbonly-option"></a>
+ **Valore predefinito**: true
+ **Tipo di dati**: booleano

Questa opzione specifica se l'API dei metadati recupera i dati da tutti i database accessibili o solo dal database connesso. 

Questo parametro è facoltativo.

Puoi specificare le seguenti valori:

**true**  
L'applicazione recupera i metadati da un singolo database.

**false**  
L'applicazione recupera i metadati da tutti i database accessibili.

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

L'ID utente da utilizzare con il proprio account Amazon Redshift. Puoi utilizzare un ID che attualmente non esiste se hai abilitato la AutoCreate proprietà. 

Questo parametro è facoltativo.

## DbGroups
<a name="jdbc20-dbgroups-option"></a>
+ **Valore predefinito**: PUBLIC
+ **Tipo di dati**: stringa

Un elenco separato da virgole di nomi di gruppo di database esistenti che `DBUser` unisce per la sessione corrente. 

Questo parametro è facoltativo.

## DBNAME
<a name="jdbc20-dbname-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: stringa

Il nome del database a cui connettersi. Questa opzione può essere utilizzata per specificare il nome del database nell'URL di connessione JDBC. 

Questo parametro è obbligatorio. Il nome del database va specificato nell'URL di connessione o nelle proprietà di connessione dell'applicazione client.

## defaultRowFetchDimensioni
<a name="jdbc20-defaultrowfetchsize-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: numero intero

Questa opzione specifica un valore predefinito per getFetchSize. 

Questo parametro è facoltativo.

Puoi specificare le seguenti valori:

**0**  
Recupera tutte le righe in un'unica operazione.

**Numero intero positivo**  
Numero di righe da recuperare dal database per ogni iterazione di recupero di. ResultSet

## DisableIsValidQuery
<a name="jdbc20-disableisvalidquery-option"></a>
+ **Valore predefinito**: false
+ **Tipo di dati**: booleano

Questa opzione specifica se il driver invia una nuova query di database quando si utilizza il metodo Connection.isValid() per determinare se la connessione al database è attiva. 

Questo parametro è facoltativo.

**true**  
Il driver non invia una query quando si utilizza il metodo Connection.isValid() per determinare se la connessione al database è attiva. Ciò potrebbe far sì che il driver identifichi erroneamente la connessione al database come attiva se il server di database si è arrestato in modo imprevisto.

**false**  
Il driver invia una query quando si utilizza il metodo Connection.isValid() per determinare se la connessione al database è attiva.

## enableFetchRingBuffer
<a name="jdbc20-enablefetchringbuffer-option"></a>
+ **Valore predefinito**: true
+ **Tipo di dati**: booleano

Questa opzione specifica che il driver recupera le righe utilizzando un buffer ad anello su un thread separato. Il parametro fetchRingBuffer Size specifica la dimensione del buffer ad anello. 

Il ring buffer implementa la gestione automatica della memoria in JDBC per prevenire errori out-of-memory (OOM) durante le operazioni di recupero dei dati. Il ring buffer monitora la dimensione effettiva dei dati memorizzati nel buffer in tempo reale, garantendo che l'utilizzo totale della memoria da parte del driver rimanga entro i limiti definiti. Quando viene raggiunta la capacità del buffer, il driver sospende le operazioni di recupero dei dati, evitando l'overflow della memoria senza richiedere l'intervento manuale. Questa protezione integrata elimina automaticamente gli errori OOM, senza che sia necessaria alcuna configurazione da parte degli utenti.

Se una transazione rileva un'istruzione contenente più comandi SQL separati da punto e virgola, il fetch ring buffer per quella transazione viene impostato su false. enableFetchRingIl valore del buffer non cambia. 

Questo parametro è facoltativo.

**Nota**  
Quando il ring buffer è disabilitato e la dimensione di recupero non è configurata correttamente, possono verificarsi problemi out-of-memory (OOM). [Per ulteriori informazioni sulla configurazione della dimensione di recupero, vedere qui.](https://docs.aws.amazon.com/redshift/latest/dg/set-the-JDBC-fetch-size-parameter.html)

## enableMultiSqlSupport
<a name="jdbc20-enablemultisqlsupport-option"></a>
+ **Valore predefinito**: true
+ **Tipo di dati**: booleano

Questa opzione specifica se elaborare più comandi SQL separati da punti e virgola in un'istruzione. 

Questo parametro è facoltativo.

Puoi specificare le seguenti valori:

**true**  
Il driver elabora più comandi SQL, separati da punti e virgola, in un oggetto Statement.

**false**  
Il driver restituisce un errore per più comandi SQL in una singola istruzione.

## fetchRingBufferDimensioni
<a name="jdbc20-fetchringbuffersize-option"></a>
+ **Valore predefinito**: 1G
+ **Tipo di dati**: stringa

Questa opzione specifica la dimensione del buffer ad anello utilizzato durante il recupero del set di risultati. È possibile specificare una dimensione in byte, ad esempio 1K per 1 KB, 5000 per 5.000 byte, 1M per 1 MB, 1G per 1 GB e così via. È inoltre possibile specificare una percentuale di memoria heap. Il driver smette di recuperare le righe al raggiungimento del limite. Il recupero riprende quando l'applicazione legge le righe e libera spazio nel buffer ad anello. 

Questo parametro è facoltativo.

## ForceLowercase
<a name="jdbc20-forcelowercase-option"></a>
+ **Valore predefinito**: false
+ **Tipo di dati**: booleano

Questa opzione specifica se il driver mette in minuscolo tutti i gruppi di database (DbGroups) inviati dal provider di identità ad Amazon Redshift quando si utilizza l'autenticazione Single Sign-On. 

Questo parametro è facoltativo.

**true**  
Il driver converte in minuscolo i nomi di tutti i gruppi di database inviati dal provider di identità.

**false**  
Il driver non modifica i gruppi di database.

## groupFederation
<a name="jdbc20-groupFederation-option"></a>
+ **Valore predefinito**: false
+ **Tipo di dati**: booleano

Questa opzione specifica se utilizzare i gruppi IDP di Amazon Redshift. Questa funzionalità è supportata dall'API V2. GetClusterCredentials 

Questo parametro è facoltativo.

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

**false**  
Utilizza l'API STS e GetClusterCredentials per la federazione degli utenti e specifica esplicitamente DbGroups la connessione.

## HOST
<a name="jdbc20-host-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: stringa

Il nome host del server Amazon Redshift a cui connettersi. Questa opzione può essere utilizzata per specificare il nome host nell'URL di connessione JDBC. 

Questo parametro è obbligatorio. Il nome host va specificato nell'URL di connessione o nelle proprietà di connessione dell'applicazione client.

## IAMDisableCache
<a name="jdbc20-iamdisablecache-option"></a>
+ **Valore predefinito**: false
+ **Tipo di dati**: booleano

Questa opzione specifica se le credenziali IAM vengono memorizzate nella cache.

Questo parametro è facoltativo.

**true**  
Le credenziali IAM non sono memorizzate nella cache.

**false**  
Le credenziali IAM sono memorizzate nella cache. Ciò migliora le prestazioni quando le richieste ad API Gateway sono limitate, ad esempio.

## IAMDuration
<a name="jdbc20-iamduration-option"></a>
+ **Valore predefinito**: 900
+ **Tipo di dati**: numero intero

Il periodo di tempo, in secondi, fino alla scadenza delle credenziali temporanee IAM. 
+ **Valore minimo**: 900
+ **Valore massimo**: 3.600

Questo parametro è facoltativo.

## Idc\$1Client\$1Display\$1Name
<a name="jdbc20-idc_client_display_name"></a>
+ **Valore predefinito**: driver JDBC di 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="jdbc20-idc_region"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

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

Questo parametro è obbligatorio solo per l’autenticazione con `BrowserIdcAuthPlugin` nell’opzione di configurazione plugin\$1name.

## IdP\$1Host
<a name="jdbc20-idp_host-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

L'host IdP (provider di identità) utilizzato per l'autenticazione in Amazon Redshift. Questo può essere specificato nella stringa di connessione o in un profilo. 

Questo parametro è facoltativo.

## IdP\$1Partition
<a name="jdbc20-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.

## IdP\$1Port
<a name="jdbc20-idp_port-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

La porta utilizzata da un IdP (provider di identità). La porta può essere specificata nella stringa di connessione o in un profilo. La porta predefinita è 5439. A seconda della porta selezionata durante la creazione, la modifica o la migrazione del cluster, consenti l'accesso alla porta selezionata. 

Questo parametro è facoltativo.

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

L'ID tenant di Azure AD per l'applicazione Amazon Redshift. 

Questo parametro è obbligatorio se si esegue l'autenticazione tramite il servizio Azure AD.

## IdP\$1Response\$1Timeout
<a name="jdbc20-idp_response_timeout-option"></a>
+ **Valore predefinito**: 120
+ **Tipo di dati**: numero intero

La quantità di tempo, espressa in secondi, per cui il driver attende la risposta SAML dal provider di identità quando si usano i servizi SAML o Azure AD tramite un plug-in del browser. 

Questo parametro è facoltativo.

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

Il percorso completo del file .ini, compreso il nome file. Ad esempio:

```
IniFile="C:\tools\rsjdbc.ini"
```

Per ulteriori informazioni sul file .ini, consultare [Creazione di file di inizializzazione (.ini) per il driver JDBC versione 2.x](jdbc20-ini-file.md).

Questo parametro è facoltativo.

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

Il nome di una sezione nel file .ini contenente le opzioni di configurazione. Per ulteriori informazioni sul file .ini, consultare [Creazione di file di inizializzazione (.ini) per il driver JDBC versione 2.x](jdbc20-ini-file.md). 

Nell'esempio seguente viene specificata la sezione [Prod] del file .ini:

```
IniSection="Prod"
```

Questo parametro è facoltativo.

## isServerless
<a name="jdbc20-isserverless-option"></a>
+ **Valore predefinito**: false
+ **Tipo di dati**: booleano

Questa opzione specifica se l'host endpoint di Amazon Redshift è un'istanza serverless. Il driver prova a rilevare questo parametro dall'host specificato. Se utilizzi un Network Load Balancer (NLB), il driver non riuscirà a rilevarlo, quindi puoi impostarlo qui. 

Questo parametro è facoltativo.

**true**  
L'host endpoint di Amazon Redshift è un'istanza serverless.

**false**  
L'host endpoint di Amazon Redshift è un cluster con provisioning.

## Issuer\$1Url
<a name="jdbc20-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 con `BrowserIdcAuthPlugin` nell’opzione di configurazione plugin\$1name.

## Listen\$1Port
<a name="jdbc20-listen-port"></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 Identity Center tramite un plug-in del browser.

Questo parametro è facoltativo.

## URL login\$1
<a name="jdbc20-login_url-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

L'URL della risorsa sul sito Web del provider di identità quando si usa SAML o i servizi Azure AD tramite un plug-in del browser. 

Questo parametro è obbligatorio se si esegue l'autenticazione con SAML o i servizi Azure AD tramite un plug-in del browser.

## loginTimeout
<a name="jdbc20-logintimeout-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: numero intero

Il numero di secondi da attendere prima del timeout durante la connessione e l'autenticazione con il server. Se stabilire la connessione richiede più tempo della soglia prevista, l'operazione viene interrotta. 

Quando questa proprietà è impostata su 0, non si verifica il timeout delle connessioni.

Questo parametro è facoltativo.

## loginToRp
<a name="jdbc20-logintorp-option"></a>
+ **Valore predefinito**: `urn:amazon:webservices` 
+ **Tipo di dati**: stringa

La parte attendibile che si desidera utilizzare per il tipo di autenticazione AD FS. 

Questo parametro è facoltativo.

## LogLevel
<a name="jdbc20-loglevel-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: numero intero

Utilizzare questa proprietà per attivare o disattivare la registrazione nel driver e per specificare il livello di dettaglio incluso nei file di log. 

Abilitare la registrazione abbastanza a lungo da rilevare un problema. La registrazione riduce le prestazioni e può richiedere una grande quantità di spazio su disco.

Questo parametro è facoltativo.

Impostare il parametro su uno dei seguenti valori:

**0**  
Disabilitare la registrazione.

**1**  
Abilitare la registrazione sul livello FATAL, che registra eventi di errore molto gravi che comportano l'interruzione del driver.

**2**  
Abilitare la registrazione sul livello ERROR, che registra eventi di errore che potrebbero consentire al driver di restare in esecuzione.

**3**  
Abilitare la registrazione sul livello WARNING, che registra eventi che potrebbero causare un errore se non viene eseguita un'azione.

**4**  
Abilitare la registrazione sul livello INFO, che registra informazioni generali che descrivono l'avanzamento del driver.

**5**  
Abilitare la registrazione sul livello DEBUG, che registra informazioni dettagliate utili per il debug del driver.

**6**  
Abilitare la registrazione sul livello TRACE, che registra tutte le attività del driver.

Quando la registrazione è abilitata, il driver produce i seguenti file di log nella posizione specificata nella proprietà `LogPath`:
+ **`redshift_jdbc.log`**: file che registra l'attività del driver che non è specifica di una connessione.
+ **`redshift_jdbc_connection_[Number].log`**: file per ogni connessione effettuata al database, dove `[Number]` è un numero che distingue ogni file di log dagli altri. Questo file registra l'attività del driver specifica per la connessione. 

Se il LogPath valore non è valido, il driver invia le informazioni registrate al flusso di output standard,. `System.out`

## LogPath
<a name="jdbc20-logpath-option"></a>
+ **Valore predefinito**: la directory di lavoro corrente.
+ **Tipo di dati**: stringa

Il percorso completo della cartella in cui il driver salva i file di registro quando la proprietà DSILog Level è abilitata. 

Per assicurarsi che l'URL di connessione sia compatibile con tutte le applicazioni JDBC, si consiglia di eseguire l'escape sulle barre rovesciate (\$1) nel percorso del file digitando un'altra barra rovesciata.

Questo parametro è facoltativo.

## OverrideSchemaPatternType
<a name="jdbc20-override-schema-pattern-type"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: numero intero

Questa opzione specifica se sovrascrivere il tipo di query utilizzata nelle chiamate getTables.

**0**  
Nessuna query a schema universale

**1**  
Query a schema locale

**2**  
Query a schema esterno

Questo parametro è facoltativo.

## Partner\$1SPID
<a name="jdbc20-partner_spid-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il valore SPID (ID del fornitore di servizi) del partner da utilizzare per l'autenticazione della connessione tramite il servizio. PingFederate 

Questo parametro è facoltativo.

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

Quando si esegue la connessione con l'autenticazione IAM tramite un IDP, si tratta della password per il server IDP\$1Host. Quando si utilizza l'autenticazione standard, questo può essere utilizzato per la password del database Amazon Redshift anziché per PWD. 

Questo parametro è facoltativo.

## Plugin\$1Name
<a name="jdbc20-plugin_name-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il nome completo della classe che implementa un plug-in specifico del provider di credenziali. 

Questo parametro è facoltativo.

Sono supportate le seguenti opzioni di provider:
+ **`AdfsCredentialsProvider`**: Active Directory Federation Service.
+ **`AzureCredentialsProvider`**: servizio Microsoft Azure Active Directory (AD).
+ **`BasicJwtCredentialsProvider`**: servizio JSON Web Token (JWT).
+ **`BasicSamlCredentialsProvider`** — Credenziali SAML (Security Assertion Markup Language) che è possibile utilizzare con molti provider di servizi SAML.
+ **`BrowserAzureCredentialsProvider`**: browser servizio Microsoft Azure Active Directory (AD).
+ **`BrowserAzureOAuth2CredentialsProvider`**: browser servizio Microsoft Azure Active Directory (AD) per l’autenticazione nativa.
+ **`BrowserIdcAuthPlugin`**— Un plug-in di autorizzazione che utilizza AWS IAM Identity Center.
+ **`BrowserSamlCredentialsProvider`**: browser SAML per servizi SAML quali Okta, Ping o AD FS.
+ **`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 
+ **`OktaCredentialsProvider`**: servizio Okta.
+ **`PingCredentialsProvider`**— PingFederate Servizio.

## PORT
<a name="jdbc20-port-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: numero intero

La porta del server Amazon Redshift a cui connettersi. Questa opzione può essere utilizzata per specificare la porta nell'URL di connessione JDBC. 

Questo parametro è facoltativo.

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

Il ruolo IAM che si desidera assumere durante la connessione ad Amazon Redshift. 

Questo parametro è facoltativo.

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

Il nome del profilo da utilizzare per l'autenticazione IAM. Questo profilo contiene eventuali proprietà di connessione aggiuntive non specificate nella stringa di connessione. 

Questo parametro è facoltativo.

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

La password corrispondente al nome utente di Amazon Redshift fornito utilizzando l’UID della proprietà. 

Questo parametro è facoltativo.

## queryGroup
<a name="jdbc20-querygroup-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: stringa

Questa opzione assegna una query a una coda in fase di runtime assegnando la query al gruppo di query appropriato. Il gruppo di query viene impostato per la sessione. Tutte le query eseguite sulla connessione appartengono a questo gruppo di query. 

Questo parametro è facoltativo.

## readOnly
<a name="jdbc20-readonly-option"></a>
+ **Valore predefinito**: false
+ **Tipo di dati**: booleano

Questa proprietà specifica se il driver è in modalità di sola lettura. 

Questo parametro è facoltativo.

**true**  
La connessione è in modalità di sola lettura e non può scrivere nell'archivio dati.

**false**  
La connessione non è in modalità di sola lettura e può scrivere nell'archivio dati.

## Region
<a name="jdbc20-region-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: stringa

Questa opzione specifica la AWS regione in cui si trova il cluster. Se si specifica l' StsEndPoint opzione, l'opzione Regione viene ignorata. L'API `GetClusterCredentials` Redshift utilizza anche l'opzione Regione. 

Questo parametro è facoltativo.

## reWriteBatchedInserti
<a name="jdbc20-rewritebatchedinserts-option"></a>
+ **Valore predefinito**: false
+ **Tipo di dati**: booleano

Questa opzione abilita l'ottimizzazione per riscrivere e combinare istruzioni INSERT compatibili in batch. 

Questo parametro è facoltativo.

## reWriteBatchedInsertsSize
<a name="jdbc20-rewritebatchedinsertssize-option"></a>
+ **Valore predefinito**: 128
+ **Tipo di dati**: numero intero

Questa opzione abilita l'ottimizzazione per riscrivere e combinare istruzioni INSERT compatibili in batch. Questo valore deve aumentare esponenzialmente con potenza 2. 

Questo parametro è facoltativo.

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

L'Amazon Resource Name (ARN) del ruolo. Assicuratevi di specificare questo parametro quando BasicJwtCredentialsProvider specificate l'opzione Plugin\$1Name. Specificare l'ARN nel seguente formato: 

`arn:partition:service:region:account-id:resource-id`

Questo parametro è obbligatorio se specificate l'opzione BasicJwtCredentialsProvider Plugin\$1Name.

## roleSessionName
<a name="jdbc20-roleaessionname-option"></a>
+ **Valore predefinito**: jwt\$1redshift\$1session
+ **Tipo di dati**: stringa

Un identificatore della sessione del ruolo assunto. In genere, si passa il nome o l'identificatore associato all'utente dell'applicazione. Le credenziali di sicurezza temporanee utilizzate dall'applicazione sono associate a tale utente. È possibile specificare questo parametro quando si specifica l'opzione BasicJwtCredentialsProvider Plugin\$1Name. 

Questo parametro è facoltativo.

## scope
<a name="jdbc20-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 Microsoft Azure possa ottenere il consenso per la chiamata APIs che desiderate chiamare. È possibile specificare questo parametro quando si specifica BrowserAzure OAuth2 CredentialsProvider l'opzione Plugin\$1Name. 

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

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

La chiave di accesso IAM per l'utente o il ruolo. Se viene specificato, è necessario specificare anche l' AccessKeyID. Se passato nell'URL JDBC, SecretAccessKey deve essere codificato come URL. 

Questo parametro è facoltativo.

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

Il token di sessione IAM temporaneo associato al ruolo IAM utilizzato per l'autenticazione. Se passato nell'URL JDBC, il token di sessione IAM temporaneo deve essere con codifica URL. 

Questo parametro è facoltativo.

## serverlessAcctId
<a name="jdbc20-serverlessacctid-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: stringa

L'ID account di Amazon Redshift Serverless. Il driver prova a rilevare questo parametro dall'host specificato. Se utilizzi un Network Load Balancer (NLB), il driver non riuscirà a rilevarlo, quindi puoi impostarlo qui. 

Questo parametro è facoltativo.

## serverlessWorkGroup
<a name="jdbc20-serverlessworkgroup-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: stringa

Il nome del gruppo di lavoro di Amazon Redshift Serverless. Il driver prova a rilevare questo parametro dall'host specificato. Se utilizzi un Network Load Balancer (NLB), il driver non riuscirà a rilevarlo, quindi puoi impostarlo qui. 

Questo parametro è facoltativo.

## socketFactory
<a name="jdbc20-socketfactory-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: stringa

Questa opzione specifica una factory di socket per la creazione di socket. 

Questo parametro è facoltativo.

## socketTimeout
<a name="jdbc20-sockettimeout-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: numero intero

Il numero di secondi da attendere durante le operazioni di lettura del connettore prima del timeout. Se un'operazione richiede più tempo della soglia prevista, la connessione viene chiusa. Quando questa proprietà è impostata su 0, non si verifica il timeout della connessione. 

Questo parametro è facoltativo.

## SSL
<a name="jdbc20-ssl-option"></a>
+ **Valore predefinito**: TRUE
+ **Tipo di dati**: stringa

Utilizzare questa proprietà per attivare o disattivare SSL per la connessione. 

Questo parametro è facoltativo.

Puoi specificare le seguenti valori:

**TRUE**  
Il driver si connette al server tramite SSL.

**FALSE**  
Il driver si connette al server senza utilizzare SSL. Questa opzione non è supportata con l'autenticazione IAM.

In alternativa, è possibile configurare la proprietà. AuthMech 

## ssl\$1insecure
<a name="jdbc20-ssl_insecure-option"></a>
+ **Valore predefinito**: true
+ **Tipo di dati**: stringa

Questa proprietà indica se il certificato del server host IDP deve essere verificato.

Questo parametro è facoltativo.

Puoi specificare le seguenti valori:

**true**  
Il driver non controlla l'autenticità del certificato del server IDP.

**false**  
Il driver controlla l'autenticità del certificato del server IDP.

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

Il percorso completo di un file .pem o .crt contenente ulteriori certificati emessi da una CA attendibili per verificare l'istanza del server Amazon Redshift quando si utilizza SSL. 

Questo parametro è obbligatorio se SSLKey specificato.

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

La fabbrica SSL da utilizzare per la connessione al server TLS/SSL senza utilizzare un certificato del server. 

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

Il percorso completo del file.der contenente il file PKCS8 chiave per la verifica dei certificati specificati in. SSLCert 

Questo parametro è obbligatorio se SSLCert specificato.

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

Utilizzate questa proprietà per specificare in che modo il driver convalida i certificati quando TLS/SSL è abilitato. 

Questo parametro è facoltativo.

Puoi specificare le seguenti valori:

**verify-ca**  
Il driver verifica che il certificato proviene da una certification authority (CA) attendibile.

**verify-full**  
Il driver verifica che il certificato proviene da una CA attendibile e che il nome host nel certificato corrisponde al nome host specificato nell'URL di connessione.

## SSLPassword
<a name="jdbc20-sslpassword-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: stringa

La password per il file di chiave crittografato specificato in SSLKey. 

Questo parametro è obbligatorio se SSLKey è specificato e il file chiave è crittografato.

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

Il percorso completo di un file .pem o .crt contenente ulteriori certificati emessi da una CA attendibili per verificare l'istanza del server Amazon Redshift quando si utilizza SSL. 

## StsEndpointUrl
<a name="jdbc20-stsendpointurl-option"></a>
+ **Valore predefinito**: null
+ **Tipo di dati**: stringa

È possibile specificare un endpoint AWS Security Token Service (AWS STS). Se si specifica questa opzione, l'opzione Regione viene ignorata. Per questo endpoint è possibile specificare solo un protocollo sicuro (HTTPS). 

## tcpKeepAlive
<a name="jdbc20-tcpkeepalive-option"></a>
+ **Valore predefinito**: TRUE
+ **Tipo di dati**: stringa

Utilizzare questa proprietà per attivare o disattivare i keepalive TCP. 

Questo parametro è facoltativo.

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.

## token
<a name="jdbc20-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="jdbc20-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`.

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

Il nome utente del database utilizzato per accedere al database.

Questo parametro è obbligatorio.

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

Quando stabilisci la connessione con l’autenticazione IAM tramite un gestore dell’identità digitale, questo è il nome utente per il server idp\$1host. Quando utilizzi l’autenticazione standard, può essere usato per il nome utente del database di Amazon Redshift. 

Questo parametro è facoltativo.

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

Il token di accesso OAuth 2.1 o token OpenID Connect ID fornito dal provider di identità. L'applicazione deve ottenere questo token autenticando l'utente dell'applicazione con un provider di identità Web. Assicuratevi di specificare questo parametro quando BasicJwtCredentialsProvider specificate l'opzione Plugin\$1Name. 

Questo parametro è obbligatorio se specificate l'opzione BasicJwtCredentialsProvider Plugin\$1Name.

# Versioni precedenti del driver JDBC versione 2.x
<a name="jdbc20-previous-driver-version-20"></a>

Scarica una versione precedente del driver JDBC versione 2.x di Amazon Redshift solo se lo strumento richiede una versione specifica del driver. 

Questi sono i precedenti driver JDBC versione 2.x compatibili con JDBC 4.2:
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip) [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip) 

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

# Integrazione con Amazon Redshift per Apache Spark
<a name="spark-redshift-connector"></a>

 [Apache Spark](https://aws.amazon.com/emr/features/spark/) è un framework di elaborazione distribuito e un modello di programmazione che ti aiuta ad eseguire attività come machine learning, elaborazione di flussi o analisi di grafici. Come Apache Hadoop, Spark è un sistema di elaborazione distribuito open source utilizzato in genere per carichi di lavoro di Big Data. Spark dispone di un motore di esecuzione basato su grafo aciclico orientato (DAG) ottimizzato e memorizza attivamente i dati nella cache. Ciò può migliorare le prestazioni, in particolare per determinati algoritmi e per le query interattive. 

 Questa integrazione ti fornisce un connettore Spark che puoi usare per creare applicazioni Apache Spark in grado di leggere e scrivere dati in Amazon Redshift e Amazon Redshift serverless. Queste applicazioni non compromettono le prestazioni delle applicazioni o la coerenza transazionale dei dati. Questa integrazione è inclusa automaticamente in [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/) e [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/), pertanto puoi eseguire immediatamente i processi di Apache Spark che accedono e caricano i dati in Amazon Redshift nell'ambito delle tue pipeline di importazione e trasformazione dei dati. 

Attualmente, puoi usare le versioni 3.3.x, 3.4.x, 3.5.x e 4.0.0 di Spark con questa integrazione.

 Questa integrazione offre i seguenti vantaggi: 
+  AWS Identity and Access Management autenticazione (IAM). Per ulteriori informazioni, consulta [Identity and access management in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). 
+ Pushdown dei predicati e delle query per migliorare le prestazioni.
+  Tipi di dati di Amazon Redshift. 
+ Connettività ad Amazon Redshift e Amazon Redshift serverless.

## Considerazioni e limitazioni relative all'utilizzo del connettore Spark
<a name="spark-redshift-connector-considerations"></a>
+  La URI tempdir punta a una posizione Amazon S3. Questa directory temporanea non viene pulita automaticamente e potrebbe comportare costi aggiuntivi. Si consiglia di utilizzare le [Policy del ciclo di vita di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) nella *Amazon Simple Storage Service User Guide* (Guida per l'utente di Amazon Simple Storage Service) per definire le regole di conservazione del bucket Amazon S3. 
+  Per impostazione predefinita, le copie tra Amazon S3 e Redshift non funzionano se il bucket S3 e il cluster Redshift si trovano in regioni diverse. AWS Per utilizzare AWS regioni separate, imposta il `tempdir_region` parametro sulla regione del bucket S3 utilizzato per. `tempdir`
+ Scritture tra regioni tra S3 e Redshift se si scrivono dati Parquet utilizzando il parametro `tempformat`.
+ Si consiglia di utilizzare [Crittografia lato server di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) per crittografare i bucket Amazon S3 utilizzati. 
+ Si consiglia di [bloccare l'accesso pubblico ai bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html). 
+  Si consiglia di non rendere accessibile pubblicamente il cluster Amazon Redshift. 
+  Si consiglia di abilitare la [registrazione dell'audit di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html). 
+  Si consiglia di abilitare la [crittografia dei dati inattivi di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/security-server-side-encryption.html). 
+  Si consiglia di abilitare SSL per la connessione JDBC da Spark su Amazon EMR ad Amazon Redshift. 
+ Si consiglia di passare un ruolo IAM utilizzando il parametro `aws_iam_role` per il parametro di autenticazione di Amazon Redshift.

# Autenticazione con il connettore Spark
<a name="redshift-spark-connector-authentication"></a>

Il diagramma seguente descrive l'autenticazione tra Amazon S3, Amazon Redshift, il driver Spark e gli executor Spark.

![\[Questo diagramma mostra l'autenticazione del connettore Spark.\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/images/spark-connector-authentication.png)


## Autenticazione tra Redshift e Spark
<a name="redshift-spark-authentication"></a>

 Puoi utilizzare il driver JDBC versione 2.x fornito da Amazon Redshift per connetterti ad Amazon Redshift con il connettore Spark specificando le credenziali di accesso. Per utilizzare IAM, [configura il tuo URL JDBC per l'utilizzo dell'autenticazione IAM](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html). Per connetterti a un cluster Redshift da Amazon EMR oppure AWS Glue assicurati che il tuo ruolo IAM disponga delle autorizzazioni necessarie per recuperare le credenziali IAM temporanee. L'elenco seguente descrive tutte le autorizzazioni necessarie al tuo ruolo IAM per recuperare le credenziali ed eseguire le operazioni di Amazon S3. 
+ [Redshift: GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html) (per cluster Redshift con provisioning)
+ [Redshift: DescribeClusters](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html) (per cluster Redshift con provisioning)
+ [Redshift: GetWorkgroup](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetWorkgroup.html) (per gruppi di lavoro Serverless Amazon Redshift)
+ [Redshift: GetCredentials](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetCredentials.html) (per gruppi di lavoro Serverless Amazon Redshift)
+ [s3: ListBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
+ [s3: GetBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
+ [s3: GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [s3: PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [s3: GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)

 Per ulteriori informazioni su GetClusterCredentials, consulta [le politiche IAM per GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.getclustercredentials-resources). 

Inoltre, devi assicurarti che Amazon Redshift possa assumere il ruolo IAM durante le operazioni `COPY` e `UNLOAD`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "redshift.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Se utilizzi il driver JDBC più recente, esso gestirà automaticamente la transizione da un certificato autofirmato Amazon Redshift a un certificato ACM. Tuttavia, è necessario [specificare le opzioni SSL per l'URL JDBC](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-configuration-options.html#jdbc20-ssl-option). 

 Di seguito è riportato un esempio di come specificare URL del driver JDBC e `aws_iam_role` per la connessione ad Amazon Redshift. 

```
df.write \
  .format("io.github.spark_redshift_community.spark.redshift ") \
  .option("url", "jdbc:redshift:iam://<the-rest-of-the-connection-string>") \
  .option("dbtable", "<your-table-name>") \
  .option("tempdir", "s3a://<your-bucket>/<your-directory-path>") \
  .option("aws_iam_role", "<your-aws-role-arn>") \
  .mode("error") \
  .save()
```

## Autenticazione tra Amazon S3 e Spark
<a name="spark-s3-authentication"></a>

 Se utilizzi un ruolo IAM per l'autenticazione tra Spark e Amazon S3, usa uno dei seguenti metodi: 
+ L' AWS SDK for Java tenterà automaticamente di AWS trovare le credenziali utilizzando la catena di provider di credenziali predefinita implementata dalla classe Default. AWSCredentials ProviderChain Per ulteriori informazioni, consulta [Utilizzo della catena di provider delle credenziali predefinita](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default).
+ È possibile specificare le AWS chiavi tramite le proprietà di configurazione di [Hadoop](https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/site/markdown/tools/hadoop-aws/index.md). Ad esempio, se la configurazione `tempdir` punta a un file system `s3n://`, imposta le proprietà `fs.s3n.awsAccessKeyId` e `fs.s3n.awsSecretAccessKey` in un file di configurazione XML di Hadoop o chiama `sc.hadoopConfiguration.set()` per modificare la configurazione Hadoop globale di Spark.

Ad esempio, se utilizzi il file system s3n, aggiungi:

```
sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "YOUR_KEY_ID")
sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "YOUR_SECRET_ACCESS_KEY")
```

Per il file system s3a, aggiungi:

```
sc.hadoopConfiguration.set("fs.s3a.access.key", "YOUR_KEY_ID")
sc.hadoopConfiguration.set("fs.s3a.secret.key", "YOUR_SECRET_ACCESS_KEY")
```

Se utilizzi Python, utilizza le seguenti operazioni:

```
sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", "YOUR_KEY_ID")
sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", "YOUR_SECRET_ACCESS_KEY")
```
+ Codifica le chiavi di autenticazione nell'URL `tempdir`. Ad esempio, l'URI `s3n://ACCESSKEY:SECRETKEY@bucket/path/to/temp/dir` codifica la coppia di chiavi (`ACCESSKEY`, `SECRETKEY`).

## Autenticazione tra Redshift e Amazon S3
<a name="redshift-s3-authentication"></a>

 Se utilizzi i comandi COPY e UNLOAD nella query, devi anche concedere ad Amazon S3 l'accesso ad Amazon Redshift per eseguire le query per tuo conto. A tale scopo, [autorizza innanzitutto Amazon Redshift ad accedere ad AWS altri servizi, quindi autorizza](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) le operazioni [COPY e UNLOAD utilizzando](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html) i ruoli IAM. 

Come best practice, consigliamo di collegare le policy di autorizzazioni a un ruolo IAM, che quindi viene assegnato a utenti e gruppi secondo le necessità. Per ulteriori informazioni, consulta [Identity and access management in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html).

## Integrazione con Gestione dei segreti AWS
<a name="redshift-secrets-manager-authentication"></a>

Puoi recuperare le credenziali del nome utente e della password di Redshift da un segreto archiviato in Gestione dei segreti AWS. Per fornire automaticamente le credenziali Redshift, utilizza il parametro `secret.id`. Per ulteriori informazioni su come creare un segreto per le credenziali Redshift, consulta [Creazione di un segreto del database Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html).

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/redshift-spark-connector-authentication.html)

**Nota**  
 Questa documentazione contiene codice e linguaggio di esempio sviluppati da [Apache Software Foundation](http://www.apache.org/) con [licenza Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0). 

# Miglioramenti delle prestazioni con pushdown
<a name="spark-redshift-connector-pushdown"></a>

 Il connettore Spark applica automaticamente il pushdown dei predicati e delle query per ottimizzare le prestazioni. Questo significa che se utilizzi una funzione supportata nella tua query, il connettore Spark trasformerà la funzione in una query SQL ed eseguirà la query in Amazon Redshift. Questa ottimizzazione comporta il recupero di una quantità inferiore di dati, per cui Apache Spark dovrà elaborare meno dati e offrirà prestazioni migliori. Il pushdown è attivato automaticamente per impostazione predefinita. Per disattivarlo, imposta `autopushdown` su False. 

```
import sqlContext.implicits._val 
 sample= sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url",jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "event")
    .option("autopushdown", "false")
    .load()
```

 Le seguenti funzioni sono supportate con il pushdown attivato. Se utilizzi una funzione non presente in questo elenco, il connettore Spark eseguirà la funzione in Spark anziché in Amazon Redshift e di conseguenza si avranno prestazioni non ottimizzate. Per un elenco completo delle funzioni in Spark, consulta la pagina relativa alle [funzioni integrate](https://spark.apache.org/docs/latest/api/sql/index.html). 
+ Funzioni di aggregazione
  + avg
  + count
  + max
  + min
  + sum
  + stddev\$1samp
  + stddev\$1pop
  + var\$1samp
  + var\$1pop
+ Operatori booleani
  + in
  + isnull
  + isnotnull
  + contiene
  + endswith
  + startswith
+ Operatori logici
  + and
  + or
  + not (or \$1)
+ Funzioni matematiche
  + \$1
  + -
  + \$1
  + /
  + - (unary)
  + abs
  + acos
  + asin
  + atan
  + ceil
  + cos
  + exp
  + floor
  + greatest
  + least
  + log10
  + pi
  + pow
  + round
  + sin
  + sqrt
  + tan
+ Funzioni varie
  + cast
  + coalesce
  + decimal
  + if
  + in
+ Operatori relazionali
  + \$1=
  + =
  + >
  + >=
  + <
  + <=
+ Funzioni stringa
  + ascii
  + lpad
  + rpad
  + translate
  + upper
  + lower
  + length
  + trim
  + ltrim
  + rtrim
  + like
  + substring
  + concat
+ Funzioni di data e ora
  + add\$1months
  + data
  + date\$1add
  + date\$1sub
  + date\$1trunc
  + timestamp
  + trunc
+ Operazioni matematiche
  + CheckOverflow
  + PromotePrecision
+ Operazioni relazionali
  + Alias (ad esempio, AS)
  + CaseWhen
  + Distinct
  + InSet
  + Joins e cross join
  + Limits
  + Unions, union all
  + ScalarSubquery
  + Ordinamento (crescente e decrescente)
  + UnscaledValue

# Altre opzioni di configurazione
<a name="spark-redshift-connector-other-config"></a>

In questa pagina sono riportate le descrizioni per le opzioni che puoi specificare per il connettore Spark Amazon Redshift.

## Dimensione massima delle colonne di stringhe
<a name="spark-redshift-connector-other-config-max-size"></a>

Redshift crea colonne di stringhe come colonne di testo durante la creazione di tabelle, che vengono archiviate come VARCHAR(256). Se desideri colonne che supportino dimensioni maggiori, puoi usare maxlength per specificare la lunghezza massima delle colonne di stringhe. Di seguito è riportato un esempio di come specificare `maxlength`: 

```
columnLengthMap.foreach { case (colName, length) =>
  val metadata = new MetadataBuilder().putLong("maxlength", length).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## Tipo di colonna
<a name="spark-redshift-connector-other-config-column-type"></a>

Per impostare un tipo di colonna, utilizza il campo `redshift_type`.

```
columnTypeMap.foreach { case (colName, colType) =>
  val metadata = new MetadataBuilder().putString("redshift_type", colType).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## Codifica della compressione per una colonna
<a name="spark-redshift-connector-other-config-compression-encoding"></a>

 Per utilizzare una codifica di compressione specifica su una colonna, utilizza il campo di codifica. Per un elenco completo delle codifiche di compressione supportate, consulta [Codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html). 

## Descrizione per una colonna
<a name="spark-redshift-connector-other-config-description"></a>

Per creare una descrizione, utilizza il campo `description`.

## Autenticazione tra Redshift e Amazon S3
<a name="spark-redshift-connector-other-config-unload-as-text"></a>

 Per impostazione predefinita, il risultato viene scaricato su Amazon S3 nel formato Parquet. Per scaricare il risultato come file di testo delimitato da pipe, specifica la seguente opzione. 

```
.option("unload_s3_format", "TEXT")
```

## Istruzioni pushdown
<a name="spark-redshift-connector-other-config-lazy-pushdown"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/spark-redshift-connector-other-config.html)

## Parametri dei connettori
<a name="spark-redshift-connector-other-config-spark-parameters"></a>

La mappa dei parametri o `OPTIONS` in Spark SQL supporta le seguenti impostazioni.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/spark-redshift-connector-other-config.html)

**Nota**  
 Questa documentazione contiene codice e linguaggio di esempio sviluppati da [Apache Software Foundation](http://www.apache.org/) con [licenza Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0). 

# Tipi di dati supportati
<a name="spark-redshift-connector-data-types"></a>

I seguenti tipi di dati sono supportati in Amazon Redshift con il connettore Spark. Per un elenco completo dei tipi di dati supportati in Amazon Redshift, consulta [Tipi di dati](https://docs.aws.amazon.com//redshift/latest/dg/c_Supported_data_types.html). Se un tipo di dati non è nella tabella seguente, non è supportato nel connettore Spark.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/spark-redshift-connector-data-types.html)

## Tipi di dati complessi
<a name="spark-redshift-connector-complex-data-types"></a>

 Puoi usare il connettore spark per leggere e scrivere tipi di dati Spark complessi come `ArrayType`, `MapType` e `StructType` da e verso le colonne del tipo di dati Redshift SUPER. Se fornisci uno schema durante un'operazione di lettura, i dati nella colonna verranno convertiti nei tipi complessi corrispondenti in Spark, inclusi eventuali tipi nidificati. Inoltre, se `autopushdown` è abilitato, la proiezione degli attributi nidificati, dei valori delle mappe e degli indici degli array viene trasferita a Redshift in modo che l'intera struttura di dati nidificati non debba più essere caricata quando si accede solo a una parte dei dati. 

Quando si scrive DataFrames dal connettore, qualsiasi colonna di tipo `MapType` (utilizzando`StringType`) o `ArrayType` viene scritta in una colonna del tipo di dati Redshift SUPER. `StructType` Quando si scrivono queste strutture di dati nidificati, il parametro `tempformat` deve essere di tipo `CSV`, `CSV GZIP` o `PARQUET`. L'utilizzo di `AVRO` causerà un'eccezione. Scrivere una struttura dati `MapType` con un tipo di chiave diverso da`StringType` causerà anche un'eccezione. 

### StructType
<a name="spark-redshift-connector-complex-data-types-examples-structtype"></a>

L'esempio seguente mostra come creare una tabella con un tipo di dati SUPER che contiene una struttura

```
create table contains_super (a super);
```

È quindi possibile utilizzare il connettore per eseguire query su un campo `StringType` `hello` dalla colonna SUPER `a` nella tabella utilizzando uno schema come nell'esempio seguente.

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", StructType(StructField("hello", StringType) ::Nil)) :: Nil)

val helloDF = sqlContext.read
.format("io.github.spark_redshift_community.spark.redshift")
.option("url", jdbcURL )
.option("tempdir", tempS3Dir)
.option("dbtable", "contains_super")
.schema(schema)
.load().selectExpr("a.hello")
```

L'esempio seguente mostra come scrivere una struttura nella colonna `a`.

```
import org.apache.spark.sql.types._
import org.apache.spark.sql._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", StructType(StructField("hello", StringType) ::Nil)) :: Nil)
val data = sc.parallelize(Seq(Row(Row("world"))))
val mydf = sqlContext.createDataFrame(data, schema)

mydf.write.format("io.github.spark_redshift_community.spark.redshift").
option("url", jdbcUrl).
option("dbtable", tableName).
option("tempdir", tempS3Dir).
option("tempformat", "CSV").
mode(SaveMode.Append).save
```

### MapType
<a name="spark-redshift-connector-complex-data-types-examples-maptype"></a>

Se preferisci utilizzare `MapType` per rappresentare i dati, puoi usare una struttura i dati `MapType` nello schema e recuperare il valore corrispondente a una chiave nella mappa. Tieni presente che tutte le chiavi della struttura dati `MapType` deve essere di tipo String e tutti i valori devono essere dello stesso tipo, ad esempio int. 

L'esempio seguente mostra come ottenere il valore della chiave`hello` nella colonna `a`.

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", MapType(StringType, IntegerType))::Nil)

val helloDF = sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url", jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "contains_super")
    .schema(schema)
    .load().selectExpr("a['hello']")
```

### ArrayType
<a name="spark-redshift-connector-complex-data-types-examples-arraytype"></a>

Se la colonna contiene un array anziché una struttura, puoi utilizzare il connettore per eseguire query sul primo elemento dell'array.

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", ArrayType(IntegerType)):: Nil)

val helloDF = sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url", jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "contains_super")
    .schema(schema)
    .load().selectExpr("a[0]")
```

### Limitazioni
<a name="spark-redshift-connector-complex-data-types-limitations"></a>

L'utilizzo di tipi di dati complessi con il connettore spark presenta le seguenti limitazioni:
+ Tutti i nomi dei campi di struttura nidificati e le chiavi delle mappe devono essere in minuscolo. Se esegui query su nomi di campo complessi con lettere maiuscole, puoi provare a omettere lo schema e utilizzare la funzione spark `from_json` per convertire la stringa restituita localmente come soluzione alternativa.
+ Tutti i campi della mappa utilizzati nelle operazioni di lettura o scrittura devono avere solo chiavi `StringType`.
+ Solo `CSV`, `CSV GZIP` e `PARQUET ` sono valori tempformat supportati per scrivere tipi complessi su Redshift. Il tentativo di utilizzo di `AVRO ` genererà un'eccezione.

# Configurazione di una connessione per il driver ODBC versione 2.x per Amazon Redshift
<a name="odbc20-install"></a>

È possibile utilizzare una connessione ODBC per connettersi al cluster Amazon Redshift da numerose applicazioni e strumenti del client SQL di terze parti. Se il tuo strumento client supporta JDBC, potresti scegliere di usare quel tipo di connessione piuttosto che ODBC per la facilità di configurazione garantita da JDBC. Tuttavia, se il tuo strumento client non supporta JDBC, puoi seguire la procedura descritta in questa sezione per configurare una connessione ODBC sul computer client o sull'istanza Amazon EC2.

Amazon Redshift fornisce driver ODBC a 64 bit per sistemi operativi Linux, Windows e Mac; i driver ODBC a 32 bit non sono più in produzione. Ulteriori aggiornamenti ai driver ODBC a 32 bit non verranno rilasciati, tranne che per le patch di sicurezza urgenti.

Per le informazioni più recenti sulle modifiche al driver ODBC, consultare il [log delle modifiche](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/CHANGELOG.md).

**Topics**
+ [Ottenimento dell'URL ODBC](odbc20-getting-url.md)
+ [Utilizzo di un driver ODBC Amazon Redshift in Microsoft Windows](odbc20-install-config-win.md)
+ [Utilizzo di un driver ODBC Amazon Redshift in Linux](odbc20-install-config-linux.md)
+ [Utilizzo di un driver ODBC Amazon Redshift su Apple macOS](odbc20-install-config-mac.md)
+ [Metodi di autenticazione](odbc20-authentication-ssl.md)
+ [Conversioni dei tipi di dati](odbc20-converting-data-types.md)
+ [Opzioni del driver ODBC](odbc20-configuration-options.md)
+ [Versioni precedenti dei driver ODBC](odbc20-previous-versions.md)

# Ottenimento dell'URL ODBC
<a name="odbc20-getting-url"></a>

Amazon Redshift visualizza l'URL ODBC per il cluster nella console Amazon Redshift. Questo URL contiene le informazioni per configurare la connessione tra il tuo computer client e il database.

Un URL ODBC ha il formato seguente: 

```
Driver={driver}; Server=endpoint_host; Database=database_name; UID=user_name; PWD=password; Port=port_number
```

I campi del formato mostrato in precedenza hanno i seguenti valori:


| Campo | Valore | 
| --- | --- | 
| Driver | Il nome del driver ODBC a 64 bit da utilizzare: Driver ODBC di Amazon Redshift (x64). | 
| Server | L'host endpoint del cluster Amazon Redshift. | 
| Database | Il database che hai creato per il tuo cluster. | 
| UID | Nome utente di un account utente del database che dispone dell'autorizzazione per connettersi al database. Nonostante questo valore sia un'autorizzazione a livello di database e non un'autorizzazione a livello di cluster, potrai utilizzare l'account utente amministratore di Redshift configurato all'avvio del cluster. | 
| PWD | Password per l'account utente del database per connettersi al database. | 
| Port | Numero di porta specificato all'avvio del cluster. In presenza di un firewall, assicurati che questa porta sia aperta per poterla utilizzare. | 

Di seguito è riportato un esempio di URL ODBC: 

```
Driver={Amazon Redshift ODBC Driver (x64)}; Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com; Database=dev; UID=adminuser; PWD=insert_your_admin_user_password_here; Port=5439
```

Per informazioni su dove trovare l'URL ODBC, consulta [Ricerca della stringa di connessione al cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html#connecting-connection-string). 

# Utilizzo di un driver ODBC Amazon Redshift in Microsoft Windows
<a name="odbc20-install-config-win"></a>

Il driver ODBC di Amazon Redshift deve essere installato sui computer client che accedono a un data warehouse di Amazon Redshift. Ogni computer su cui hai installato il driver deve soddisfare i requisiti minimi elencati di seguito: 
+ Diritti di amministratore sulla macchina. 
+ La macchina deve soddisfare i seguenti requisiti di sistema:
  + Uno dei seguenti sistemi operativi:
    + Windows 10 o 8.1.
    + Windows Server 2019, 2016 o 2012.
  + 100 MB di spazio su disco disponibile.
  + Visual C\$1\$1 Redistributable for Visual Studio 2015 per Windows a 64 bit installato. Puoi scaricare il pacchetto di installazione in [Download Visual C\$1\$1 Redistributable per Visual Studio 2022](https://visualstudio.microsoft.com/downloads/#microsoft-visual-c-redistributable-for-visual-studio-2022) sul sito Web di Microsoft.

# Download e installazione del driver ODBC Amazon Redshift
<a name="odbc20-install-win"></a>

Utilizza la procedura seguente per scaricare e installare il driver ODBC di Amazon Redshift per i sistemi operativi Windows. Utilizzare un driver diverso dai precedenti solo se stai eseguendo un'applicazione di terze parti certificata per l'utilizzo con Amazon Redshift e che richiede un driver specifico.

Per scaricare e installare il driver ODBC: 

1. Scaricare il seguente driver: driver [ODBC a 64 bit versione 2.1.15.0 Nella regione Cina (Pechino), utilizzare il seguente link: Driver](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC64-2.1.15.0.msi) versione 2.1.15.0

   Il nome di questo driver è **Driver ODBC di Amazon Redshift (x64)**.

1. Verifica la [Licenza del driver ODBC 2.x di Amazon Redshift](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE).

1. Fai doppio clic sul file .msi, quindi completa le operazioni della procedura guidata di installazione del driver.

# Creazione di una voce DSN di sistema per una connessione ODBC
<a name="odbc20-dsn-win"></a>

Dopo aver scaricato e installato il driver ODBC, aggiungere un nome di origine dati (DSN) al computer client o all'istanza Amazon EC2. Gli strumenti client SQL utilizzano questa origine dei dati per connettersi al database Amazon Redshift. 

Ti consigliamo di creare un DSN di sistema anziché un DSN utente. Alcune applicazioni caricano i dati utilizzando un account utente di database diverso e potrebbero non essere in grado di rilevare gli utenti creati con un altro account utente DSNs del database.

**Nota**  
Per l'autenticazione tramite credenziali AWS Identity and Access Management (IAM) o credenziali del provider di identità (IdP), sono necessari passaggi aggiuntivi. Per ulteriori informazioni, consulta [Configurazione di una connessione JDBC o ODBC per utilizzare le credenziali IAM](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html).

Per creare una voce DSN di sistema per una connessione ODBC:

1. Nel menu **Start** (Avvio) digita "ODBC Data Sources" (Origini dati ODBC). Scegli **ODBC Data sources** (Origini dei dati ODBC).

   Assicurarsi di scegliere l'amministratore dell'origine dati ODBC con gli stessi bit dell'applicazione client che si sta utilizzando per connettersi ad Amazon Redshift. 

1. In **ODBC Data Source Administrator** (Amministratore origine dati ODBC), scegli la scheda **Driver** e individua la cartella del driver **Driver ODBC di Amazon Redshift (x64)**.

1. Seleziona la scheda **DSN sistema** per configurare il driver per tutti gli utenti del computer o la scheda **DSN utente** per configurare il driver solo per l'account utente del database.

1. Scegliere **Aggiungi**. Si aprirà la finestra **Create New Data Source (Crea nuova origine dati)**.

1. Scegli il **driver ODBC di Amazon Redshift (x64)**, quindi scegli **Finish** (Fine). Si aprirà la finestra **Configurazione DNS del driver ODBC per Amazon Redshift**.

1. Nella sezione **Connection Settings** (Impostazioni di connessione), inserisci le informazioni riportate di seguito: 
   + 

**Nome origine dati**  
 Inserisci un nome per l'origine dati. Ad esempio, se è stata seguita la *Guida introduttiva di Amazon Redshift*, è possibile digitare `exampleclusterdsn` per ricordare più facilmente il cluster che verrà associato a questo DSN. 
   + 

**Server**  
 Specifica l'host dell'endpoint per il cluster Amazon Redshift. Queste informazioni sono disponibili nella pagina dei dettagli del cluster della console Amazon Redshift. Per ulteriori informazioni, consulta [Configurazione delle connessioni in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html). 
   + 

**Porta**  
 Inserisci il numero di porta utilizzato dal database. A seconda della porta selezionata durante la creazione, la modifica o la migrazione del cluster, consenti l'accesso alla porta selezionata. 
   + 

**Database**  
 Immettere Il nome del database Amazon Redshift. Se hai avviato il cluster senza specificare un nome di database, inserisci `dev`. In caso contrario, utilizza il nome scelto durante il processo di avvio. Se è stata seguita la *Guida introduttiva di Amazon Redshift*, immettere `dev`. 

1. Nella sezione **Authentication** (Autenticazione), specifica le opzioni di configurazione per configurare l'autenticazione standard o IAM. 

1. Scegli **Opzioni SSL** e specifica un valore per:
   + 

**Modalità di autenticazione**  
Seleziona una modalità per gestire Secure Sockets Layer (SSL). In un ambiente di test, puoi utilizzare `prefer`. Tuttavia, per gli ambienti di produzione e quando è necessario uno scambio sicuro di dati, utilizza `verify-ca` o `verify-full`.
   + 

**TLS minimo**  
Facoltativamente, scegli la versione minima TLS/SSL che il driver consente all'archivio dati di utilizzare per crittografare le connessioni. Ad esempio, se specifichi TLS 1.2, TLS 1.1 non può essere utilizzato per crittografare le connessioni. La versione predefinita è TLS 1.2.

1.  Nella scheda **Proxy**, specifica le impostazioni di connessione proxy. 

1. Nella scheda **Cursor** (Cursore), specifica le opzioni su come restituire i risultati delle query allo strumento o all'applicazione client SQL. 

1. In **Opzioni avanzate** specifica i valori per `logLevel`, `logPath`, `compression` e altre opzioni. 

1. Scegli **Test (Esegui test)**. Se il computer client riesce a connettersi al database Amazon Redshift, viene visualizzato il messaggio seguente: **Connessione riuscita**. Se il computer client non riesce a connettersi al database, puoi risolvere i possibili problemi generando un file di registro e contattando l'assistenza. AWS Per informazioni sulla generazione di log, consulta (LINK). 

1.  Scegli **OK**. 

# Utilizzo di un driver ODBC Amazon Redshift in Linux
<a name="odbc20-install-config-linux"></a>

Il driver ODBC di Amazon Redshift deve essere installato sui computer client che accedono a un data warehouse di Amazon Redshift. Ogni computer su cui hai installato il driver deve soddisfare i requisiti minimi elencati di seguito: 
+ Accesso root sulla macchina.
+ Una delle seguenti distribuzioni:
  + Red Hat® Enterprise Linux® (RHEL) 8 o versione successiva
  + CentOS 8 o versione successiva.
+ 150 MB di spazio su disco disponibile.
+ unixODBC 2.2.14 o versione successiva.
+ glibc 2.26 o versione successiva.

# Download e installazione del driver ODBC Amazon Redshift
<a name="odbc20-install-linux"></a>

Per installare e configurare il driver ODBC di Amazon Redshift versione 2.x per Linux:

1.  Scarica il seguente driver: 
   + [Driver RPM x86 a 64 bit versione 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.x86_64.rpm) Driver RPM a 64 bit versione 2.1.15.0
   + [Driver RPM a 64 bit ARM versione 2.1.15.0 Nella](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.aarch64.rpm) versione 2.1.15.0
**Nota**  
I driver ODBC a 32 bit sono stati dichiarati come obsoleti. Ulteriori aggiornamenti non verranno rilasciati, tranne che per le patch di sicurezza urgenti.

1.  Passare alla posizione in cui si è scaricato il pacchetto ed eseguire uno dei comandi seguenti. Utilizzare il comando corrispondente alla distribuzione Linux. 

   Sui sistemi operativi RHEL e CentOS, emetti il comando seguente:

   ```
   yum --nogpgcheck localinstall RPMFileName
   ```

   Sostituire `RPMFileName` con il nome del file del pacchetto RPM. Ad esempio, il comando seguente illustra l'installazione di un driver a 64 bit:

   ```
   yum --nogpgcheck localinstall AmazonRedshiftODBC-64-bit-2.x.xx.xxxx.x86_64.rpm
   ```

# Utilizzo di un gestore di driver ODBC per configurare il driver ODBC
<a name="odbc20-config-linux"></a>

Su Linux, utilizzi un gestore di driver ODBC per configurare le impostazioni di connessione ODBC. I gestori di driver ODBC utilizzano i file di configurazione per definire e configurare i driver e le origini dati ODBC. La scelta del gestore di driver ODBC dipende dal sistema operativo utilizzato.

## Configurazione del driver ODBC utilizzando il gestore di driver unixODBC
<a name="odbc20-config-unixodbc-linux"></a>

Per configurare il driver ODBC di Amazon Redshift sono necessari i seguenti file: 
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 Se l'installazione è stata eseguita nella posizione predefinita, il file di configurazione `amazon.redshiftodbc.ini` si trova in `/opt/amazon/redshiftodbcx64`.

 Inoltre, in `/opt/amazon/redshiftodbcx64`, puoi trovare i file `odbc.ini` e `odbcinst.ini` di esempio. È possibile utilizzare questi file come esempi per configurare il driver ODBC di Amazon Redshift e il nome origine dati (DSN).

 Si sconsiglia di usare la directory di installazione del driver ODBC di Amazon Redshift per i file di configurazione. I file di esempio nella directory di installazione sono a puro scopo illustrativo. Se si reinstalla il driver ODBC di Amazon Redshift in un secondo momento o si esegue l'aggiornamento a una versione più recente, la directory di installazione viene sovrascritta. Andranno perse tutte le modifiche apportate ai file nella directory di installazione.

 Per evitare questo, copiare il file `amazon.redshiftodbc.ini` in una directory diversa dalla directory di installazione. Se si copia questo file nella home directory dell'utente, aggiungere un punto (.) alla parte iniziale del nome del file per renderlo nascosto.

 Per i file `odbcinst.ini` e `odbc.ini`, utilizzare i file di configurazione nella home directory dell'utente o creare nuove versioni in un'altra directory. Per impostazione predefinita, il sistema operativo Linux dovrebbe avere un file `odbc.ini` e un file `odbcinst.ini` nella directory principale dell'utente (`/home/$USER` o `~/.`). Questi file predefiniti sono file nascosti, come indicato dal punto (.) davanti a ciascun nome del file. Questi file vengono visualizzati solo quando si utilizza il flag `-a` per elencare il contenuto della directory.

 Qualunque sia l'opzione scelta per i file `odbc.ini` e `odbcinst.ini`, modificare i file per aggiungere le informazioni di configurazione del driver e del DSN. Se vengono creati nuovi file, è inoltre necessario impostare variabili di ambiente per specificare dove si trovano questi file di configurazione.

 Per impostazione predefinita, i gestori del driver ODBC sono configurati per utilizzare versioni nascoste dei file di configurazione `odbc.ini` e `odbcinst.ini` (denominati `.odbc.ini` e `.odbcinst.ini`) che si trovano nella directory principale. Sono inoltre configurati per utilizzare il file `amazon.redshiftodbc.ini` nella directory di installazione del driver. Se si archiviano questi file di configurazione altrove, impostare le variabili di ambiente descritte di seguito in modo che il gestore dei driver possa individuare i file.

 Se stai utilizzando unixODBC, procedi nel modo seguente: 
+  Imposta `ODBCINI` sul percorso completo e sul nome file del file `odbc.ini`. 
+  Imposta `ODBCSYSINI` sul percorso completo della directory che contiene il file `odbcinst.ini`. 
+  Imposta `AMAZONREDSHIFTODBCINI` sul percorso completo e sul nome file del file `amazon.redshiftodbc.ini`. 

Di seguito è riportato un esempio di impostazione dei valori precedenti:

```
export ODBCINI=/usr/local/odbc/odbc.ini 
export ODBCSYSINI=/usr/local/odbc 
export AMAZONREDSHIFTODBCINI=/etc/amazon.redshiftodbc.ini
```

## Configurazione di una connessione utilizzando un nome origine dei dati (DSN) su Linux
<a name="odbc20-dsn-linux"></a>

Quando ti connetti al tuo data store utilizzando un nome di origine dati (DSN), configura il file per definire i nomi delle `odbc.ini` origini dati (). DSNs Imposta le proprietà nel file `odbc.ini` per creare un DSN che specifica le informazioni di connessione per i data store.

Sui sistemi operativi Linux, usa il seguente formato:

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file
Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

L'esempio seguente mostra la configurazione per `odbc.ini` con il driver ODBC a 64 bit su sistemi operativi Linux.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift ODBC Driver (x64)

[Amazon_Redshift_x64]
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932Database=dev
locale=en-US
```

## Configurazione di una connessione senza DSN su Linux
<a name="odbc20-no-dsn-linux"></a>

 Per connetterti al data store tramite una connessione che non dispone di un DSN, devi definire il driver nel file `odbcinst.ini`. Quindi devi fornire una stringa di connessione senza DSN nell'applicazione.

Sui sistemi operativi Linux, usa il seguente formato:

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

L'esempio seguente mostra la configurazione per `odbcinst.ini` con il driver ODBC a 64 bit su sistemi operativi Linux.

```
[ODBC Drivers]
Amazon Redshift ODBC Driver (x64)=Installed

[Amazon Redshift ODBC Driver (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.so
```

# Utilizzo di un driver ODBC Amazon Redshift su Apple macOS
<a name="odbc20-install-config-mac"></a>

Il driver ODBC di Amazon Redshift deve essere installato sui computer client che accedono a un data warehouse di Amazon Redshift. Per ogni computer su cui installi il driver, questi sono i seguenti requisiti minimi: 
+ Accesso root sulla macchina. 
+ Requisiti di sistema Apple macOS:
  + È richiesta una versione a 64 bit di Apple macOS versione 11.7 o successiva (come Apple macOS Big Sur, Monterey, Ventura o successive). Il driver ODBC Redshift supporta solo applicazioni client a 64 bit.
  + 150 MB di spazio su disco disponibile.
  + Il driver supporta applicazioni create con iODBC 3.52.9\$1 o unixODBC 2.3.7\$1.

# Download e installazione del driver ODBC Amazon Redshift
<a name="odbc20-install-mac"></a>

Utilizza la seguente procedura per scaricare e installare il driver ODBC Amazon Redshift su Apple macOS. Utilizzare un driver diverso dai precedenti solo se stai eseguendo un'applicazione di terze parti certificata per l'utilizzo con Amazon Redshift e che richiede un driver specifico.

Per scaricare e installare il driver ODBC: 

1. Scaricare il seguente driver: driver [ODBC a 64 bit versione 2.1.15.0 Nella regione Cina (Pechino), utilizzare il seguente link: Driver](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit.2.1.15.0.universal.pkg) versione 2.1.15.0

   Questo driver è supportato su entrambe le architetture x86\$164 e arm64. Il nome di questo driver è **Driver ODBC di Amazon Redshift (x64)**.

1. Verifica la [Licenza del driver ODBC 2.x di Amazon Redshift](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE).

1. Fai doppio clic sul file.pkg, quindi segui i passaggi della procedura guidata per installare il driver. In alternativa, esegui il seguente comando:

   ```
   sudo installer -pkg PKGFileName -target /
   ```

   Sostituiscilo `PKGFileName` con il nome del file del pacchetto pkg. Ad esempio, il comando seguente illustra l'installazione di un driver a 64 bit:

   ```
   sudo installer -pkg ./AmazonRedshiftODBC-64-bit.X.X.XX.X.universal.pkg -target /
   ```

# Utilizzo di un gestore di driver ODBC per configurare il driver ODBC
<a name="odbc20-config-mac"></a>

Su Mac, si utilizza un gestore di driver ODBC per configurare le impostazioni di connessione ODBC. I gestori di driver ODBC utilizzano i file di configurazione per definire e configurare i driver e le origini dati ODBC. La scelta del gestore di driver ODBC dipende dal sistema operativo utilizzato.

## Configurazione del driver ODBC tramite IODBC o unixODBC driver manager
<a name="odbc20-config-iodbc-mac"></a>

Per configurare il driver ODBC di Amazon Redshift sono necessari i seguenti file: 
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 Se l'installazione è stata eseguita nella posizione predefinita, il file di configurazione `amazon.redshiftodbc.ini` si trova in `/opt/amazon/redshiftodbcx64`.

 Inoltre, in `/opt/amazon/redshiftodbcx64`, puoi trovare i file `odbc.ini` e `odbcinst.ini` di esempio. È possibile utilizzare questi file come esempi per configurare il driver ODBC di Amazon Redshift e il nome origine dati (DSN). I file di esempio nella directory di installazione sono a puro scopo illustrativo.

 Si sconsiglia di usare la directory di installazione del driver ODBC di Amazon Redshift per i file di configurazione. Se si reinstalla il driver ODBC di Amazon Redshift in un secondo momento o si esegue l'aggiornamento a una versione più recente, la directory di installazione viene sovrascritta. Andranno perse tutte le modifiche apportate ai file nella directory di installazione.

 Per evitare ciò, copiate `amazon.redshiftodbc.ini` i file `odbcinst.ini` and in una directory diversa da quella di installazione. `odbc.ini` Se copiate questi file nella home directory dell'utente, aggiungete un punto (.) all'inizio di questi nomi di file per renderli un file nascosto.

 Modificate i file per aggiungere informazioni di configurazione DSN. Quando crei nuovi file, devi anche impostare le variabili di ambiente per specificare dove si trovano questi file di configurazione.

Di seguito è riportato un esempio di impostazione delle variabili di ambiente:

```
export ODBCINI=/Library/ODBC/odbc.ini
export ODBCSYSINI=/Library/ODBC
export ODBCINSTINI=${ODBCSYSINI}/odbcinst.ini
```

Per le applicazioni da riga di comando: aggiungete i comandi di esportazione al file di avvio della shell (ad esempio, `~/.bash_profile` o`~/.zshrc`). 

[Per la versione supportata di driver manager, vedi qui](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-install-config-mac.html) 

### Configurazione di una connessione utilizzando un nome di origine dati (DSN) su Apple macOS
<a name="odbc20-dsn-mac"></a>

Quando ti connetti al tuo data store utilizzando un nome di origine dati (DSN), configura il `odbc.ini` file per definire i nomi delle sorgenti dati (). DSNs Imposta le proprietà nel `odbc.ini` file per creare un DSN che specifichi le informazioni di connessione per il tuo data warehouse Redshift.

Su Apple macOS, usa il seguente formato:

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file
Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

L'esempio seguente mostra la configurazione per `odbc.ini` con il driver ODBC a 64 bit su Apple macOS.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift ODBC Driver (x64)

[Amazon_Redshift_x64]
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.dylib
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

### Configurazione di una connessione senza DSN su Apple macOS
<a name="odbc20-no-dsn-mac"></a>

 Per connetterti al tuo data warehouse Redshift tramite una connessione che non dispone di un DSN, definisci il driver nel file. `odbcinst.ini` Quindi devi fornire una stringa di connessione senza DSN nell'applicazione.

Su Apple macOS, usa il seguente formato:

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

L'esempio seguente mostra la configurazione per `odbcinst.ini` con il driver ODBC a 64 bit su Apple macOS.

```
[ODBC Drivers]
Amazon Redshift ODBC Driver (x64)=Installed

[Amazon Redshift ODBC Driver (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.dylib
```

# Metodi di autenticazione
<a name="odbc20-authentication-ssl"></a>

Per proteggere i dati da accessi non autorizzati, gli archivi dati di Amazon Redshift richiedono l'autenticazione di tutte le connessioni tramite le credenziali utente.

La seguente tabella riporta le opzioni di connessione obbligatorie e facoltative per ogni metodo di autenticazione che può essere utilizzato per connettersi al driver ODBC Amazon Redshift versione 2.x:


| Metodo di autenticazione | Richiesto | Facoltativo | 
| --- | --- | --- | 
|  Standard  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  Profilo IAM  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** devono essere impostati su **Host** se non sono impostati separatamente.    | 
|  Credenziali IAM  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** devono essere impostati su **Host** se non sono impostati separatamente.    | 
|  AD FS  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** devono essere impostati su **Host** se non sono impostati separatamente.    | 
|  Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** devono essere impostati su **Host** se non sono impostati separatamente.    | 
|  JWT  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 
|  Okta  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** devono essere impostati su **Host** se non sono impostati separatamente.    | 
|  Ping Federate  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** devono essere impostati su **Host** se non sono impostati separatamente.    | 
|  Browser Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** devono essere impostati su **Host** se non sono impostati separatamente.    | 
|  Browser SAML  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** devono essere impostati su **Host** se non sono impostati separatamente.    | 
|  Auth Profile  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  Browser Azure AD OAUTH2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** devono essere impostati su **Host** se non sono impostati separatamente.    | 
|  AWS Centro di identità IAM  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 

## Utilizzo di un servizio di credenziali esterno
<a name="odbc20-authentication-external"></a>

Oltre al supporto integrato per AD FS, Azure AD e Okta, la versione Windows del driver ODBC di Amazon Redshift fornisce anche il supporto per altri servizi di credenziali. Il driver può autenticare le connessioni utilizzando qualsiasi plug-in del provider di credenziali basato su SAML di tua scelta. 

Per configurare un servizio di credenziali esterno su Windows:

1. Crea un profilo IAM che specifichi il plug-in del provider di credenziali e altri parametri di autenticazione in base alle esigenze. Il profilo deve essere codificato ASCII e deve contenere la seguente coppia chiave-valore, dove `PluginPath` è il percorso completo dell'applicazione plug-in: 

   ```
   plugin_name = PluginPath
   ```

   Ad esempio:

   ```
   plugin_name = C:\Users\kjson\myapp\CredServiceApp.exe 
   ```

   Per informazioni su come creare un profilo, consulta [Utilizzo di un profilo di configurazione](https://docs.aws.amazon.com/redshift/latest/mgmt/options-for-providing-iam-credentials.html#using-configuration-profile) nella Guida alla gestione dei cluster Amazon Redshift.

1. Configura il driver per l'utilizzo di questo profilo. Il driver rileva e utilizza le impostazioni di autenticazione specificate nel profilo.

# Conversioni dei tipi di dati
<a name="odbc20-converting-data-types"></a>

Il driver ODBC di Amazon Redshift versione 2.x supporta numerosi formati di dati comuni, convertendo le tipologie di dati Amazon Redshift ed SQL.

La tabella seguente riporta le mappature dei tipi di dati supportate.


| Tipo di Amazon Redshift | Tipo SQL | 
| --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  | 
|  BOOLEAN  |  SQL\$1BIT  | 
|  CHAR  |  SQL\$1CHAR  | 
|  DATE  |  SQL\$1TYPE\$1DATE  | 
|  DECIMAL  |  SQL\$1NUMERIC  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  | 
|  GEOGRAPHY  |  SQL\$1 LONGVARBINARY  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  | 
|  INTEGER  |  SQL\$1INTEGER  | 
|  REAL  |  SQL\$1REAL  | 
|  SMALLINT  |  SQL\$1SMALLINT  | 
|  SUPER  |  SQL\$1LONGVARCHAR  | 
|  TEXT  |  SQL\$1LONGVARCHAR  | 
|  TIME  |  SQL\$1TYPE\$1TIME  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  VARBYTE  |  SQL\$1LONGVARBINARY  | 
|  VARCHAR  |  SQL\$1VARCHAR  | 

# Opzioni del driver ODBC
<a name="odbc20-configuration-options"></a>

Puoi utilizzare le opzioni di configurazione del driver per controllare il comportamento del driver ODBC di Amazon Redshift. Le opzioni per i driver non distinguono tra maiuscole e minuscole.

In Microsoft Windows, in genere imposti le opzioni del driver quando configuri un nome dell'origine dati (DSN). Puoi anche impostare le opzioni del driver nella stringa di connessione quando ti connetti in modo programmatico oppure aggiungendo o modificando le chiavi di registro in `HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN`.

In Linux imposta le opzioni di configurazione del driver nei file `odbc.ini` e `amazon.redshiftodbc.ini`. Le opzioni di configurazione impostate in un file `amazon.redshiftodbc.ini` si applicano a tutte le connessioni. Al contrario, le opzioni di configurazione impostate in un file `odbc.ini` sono specifiche di una connessione. Le opzioni di configurazione impostate in `odbc.ini` hanno la precedenza sulle opzioni di configurazione impostate in `amazon.redshiftodbc.ini`.

Di seguito sono riportate le descrizioni per le opzioni che puoi specificare per la versione 2.x del driver JDBC di Amazon Redshift.

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

 La chiave di accesso IAM per l'utente o il ruolo. Se si imposta questo parametro, è necessario specificare anche **SecretAccessKey**.

Questo parametro è facoltativo.

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

L'ID univoco fornito da Okta associato all'applicazione Amazon Redshift.

Questo parametro è facoltativo.

## ApplicationName
<a name="odbc20-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.

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

Il nome dell'applicazione Okta utilizzata per autenticare la connessione ad Amazon Redshift.

Questo parametro è facoltativo.

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

Il profilo di autenticazione utilizzato per gestire le impostazioni di connessione. Se si imposta questo parametro, è necessario impostare anche **AccessKeyID** e **SecretAccessKey**. 

Questo parametro è facoltativo.

## AuthType
<a name="odbc20-authtype-option"></a>
+ **Valore predefinito** - Standard
+ **Tipo di dati**: stringa

Questa opzione specifica la modalità di autenticazione utilizzata dal driver quando configuri un DSN utilizzando la finestra di dialogo Configurazione DSN del driver ODBC di Amazon Redshift: 
+  Standard: autenticazione standard tramite nome utente e password di Amazon Redshift. 
+  AWS Profilo: autenticazione IAM tramite un profilo.
+  AWS Credenziali IAM: autenticazione IAM tramite credenziali IAM. 
+  Provider di identità: AD FS: autenticazione IAM tramite Active Directory Federation Services (AD FS). 
+  Identity Provider: Plugin di autenticazione: 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 
+  Provider di identità: Azure AD: autenticazione IAM tramite un portale Azure AD. 
+  Provider di identità: JWT: autenticazione IAM utilizzando un JSON Web token (JWT). 
+  Provider di identità: Okta: autenticazione IAM tramite Okta. 
+  Identity Provider: autenticazione IAM tramite. PingFederate PingFederate 

Questa opzione è disponibile solo quando configuri un DSN utilizzando la finestra di dialogo Configurazione DSN del driver ODBC di Amazon Redshift nel driver di Windows. Quando si configura una connessione utilizzando una stringa di connessione o un computer non Windows, il driver determina automaticamente se utilizzare l'autenticazione Standard, AWS Profile o AWS IAM Credentials in base alle credenziali specificate. Per utilizzare un provider di identità, è necessario impostare la proprietà **plugin\$1name**. 

Questo parametro è obbligatorio.

## AutoCreate
<a name="odbc20-autocreate-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: booleano

Un valore booleano che specifica se il driver crea un nuovo utente quando l'utente specificato non esiste. 
+  1 \$1 TRUE: se l'utente specificato dall'**UID** non esiste, il driver crea un nuovo utente. 
+  0 \$1 FALSE: il driver non crea un nuovo utente. Se l'utente specificato non esiste, l'autenticazione avrà esito negativo. 

Questo parametro è facoltativo.

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

Il percorso del file del certificato CA utilizzato per alcune forme di autenticazione IAM. 

 Questo parametro è disponibile solo su Linux.

Questo parametro è facoltativo.

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

L'ID client associato all'applicazione Amazon Redshift in Azure AD. 

Questo parametro è obbligatorio se si esegue l'autenticazione tramite il servizio Azure AD.

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

 La chiave del segreto associata all'applicazione Amazon Redshift in Azure AD. 

Questo parametro è obbligatorio se si esegue l'autenticazione tramite il servizio Azure AD.

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

Il nome del cluster Amazon Redshift a cui desideri connetterti. Viene utilizzata nell'autenticazione IAM. L'ID del cluster non è specificato nel parametro **Server**.

Questo parametro è facoltativo.

## compressione
<a name="odbc20-compression-option"></a>
+ **Valore predefinito**: off
+ **Tipo di dati**: stringa

Il metodo di compressione utilizzato per la comunicazione del protocollo wire tra il server Amazon Redshift e il client o il driver.

Puoi specificare le seguenti valori:
+ lz4: imposta il metodo di compressione utilizzato per la comunicazione del protocollo wire con Amazon Redshift su `lz4`. 
+ zstd: imposta il metodo di compressione utilizzato per la comunicazione del protocollo wire con Amazon Redshift su `zstd`. 
+  off: non utilizza la compressione per la comunicazione del protocollo wire con Amazon Redshift. 

Questo parametro è facoltativo.

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

Il nome del database Amazon Redshift a cui desideri accedere.

Questo parametro è obbligatorio.

## DatabaseMetadataCurrentDbOnly
<a name="odbc20-database-metadata-option"></a>
+ **Valore predefinito**: 1
+ **Tipo di dati**: booleano

Un valore booleano che specifica se il driver restituisce metadati da più database e cluster.
+ 1 \$1 TRUE: il driver restituisce solo metadati dal database corrente. 
+  0 \$1 FALSE. Il driver restituisce i metadati su più database e cluster Amazon Redshift. 

Questo parametro è facoltativo.

## dbgroups\$1filter
<a name="odbc20-dbgroups-filter-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

L'espressione regolare che puoi specificare per filtrare DbGroups quella ricevuta dalla risposta SAML ad Amazon Redshift quando usi i tipi di autenticazione Azure, Browser Azure e Browser SAML. 

Questo parametro è facoltativo.

## Driver
<a name="odbc20-driver-option"></a>
+ **Valore predefinito**: driver ODBC Amazon Redshift (x64)
+ **Tipo di dati**: stringa

Il nome del driver. L'unico valore supportato è **Driver ODBC Amazon Redshift (x64)**.

Questo parametro è obbligatorio se non viene impostato **DSN**.

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

Il nome dell'origine dei dati del driver. L'applicazione specifica il DSN nell'API SQLDriver Connect.

Questo parametro è obbligatorio se non viene impostato **Driver**.

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

L'endpoint di sostituzione utilizzato per comunicare con Amazon Redshift Coral Service per l'autenticazione IAM.

Questo parametro è facoltativo.

## ForceLowercase
<a name="odbc20-forcelowercase-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: booleano

Un valore booleano che specifica se il driver inserisce in lettere minuscole tutto ciò che DbGroups viene inviato dal provider di identità ad Amazon Redshift quando si utilizza l'autenticazione Single Sign-On. 
+  1 \$1 TRUE: il driver mette in minuscolo tutto ciò che viene inviato dal provider di identità. DbGroups 
+  0 \$1 FALSE: il driver non cambia. DbGroups 

Questo parametro è facoltativo.

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

Un valore booleano che specifica se l’API `getClusterCredentialsWithIAM` viene utilizzata per ottenere credenziali del cluster temporanee nei cluster con provisioning. Questa opzione consente agli utenti IAM di integrarsi con i ruoli del database Redshift nei cluster con provisioning. Tieni presente che questa opzione non è valida per i namespace Redshift serverless.
+  1 \$1 TRUE: il driver utilizza l’API `getClusterCredentialsWithIAM` al fine di ottenere le credenziali del cluster temporanee nei cluster con provisioning. 
+  0 \$1 FALSE: il driver utilizza l’API `getClusterCredentials` predefinita per ottenere le credenziali temporanee del cluster nei cluster con provisioning. 

Questo parametro è facoltativo.

## https\$1proxy\$1host
<a name="odbc20-https-proxy-host-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il nome host o l'indirizzo IP del server proxy attraverso il quale passare i processi di autenticazione IAM.

Questo parametro è facoltativo.

## https\$1proxy\$1password
<a name="odbc20-https-proxy-password-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

La password utilizzata per l'accesso al server proxy. Viene utilizzata nell'autenticazione IAM.

Questo parametro è facoltativo.

## https\$1proxy\$1port
<a name="odbc20-https-proxy-port-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: numero intero

Il numero della porta utilizzata dal server proxy per l'ascolto delle connessioni client. Viene utilizzato nell'autenticazione IAM.

Questo parametro è facoltativo.

## https\$1proxy\$1username
<a name="odbc20-https-proxy-username-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il nome utente utilizzato per accedere al server proxy. È usato per l'autenticazione IAM.

Questo parametro è facoltativo.

## IAM
<a name="odbc20-iam-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: booleano

Un valore booleano che specifica se il driver utilizza un metodo di autenticazione IAM per autenticare la connessione. 
+  1 \$1 TRUE: il driver utilizza uno dei metodi di autenticazione IAM (utilizzando una coppia di chiave di accesso e chiave segreta, un profilo o un servizio di credenziali). 
+  0 \$1 FALSE. Il driver utilizza l'autenticazione standard (utilizzando il nome utente e la password del database). 

Questo parametro è facoltativo.

## idc\$1client\$1display\$1name
<a name="odbc20-idc_client_display_name-option"></a>
+ **Valore predefinito**: driver ODBC 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="odbc20-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 con `BrowserIdcAuthPlugin` nell’opzione di configurazione plugin\$1name.

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

L'host IdP (provider di identità) utilizzato per l'autenticazione in Amazon Redshift.

Questo parametro è facoltativo.

## idp\$1port
<a name="odbc20-idp-port-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: numero intero

La porta per un IdP (provider di identità) utilizzata per l'autenticazione in Amazon Redshift. A seconda della porta selezionata durante la creazione, la modifica o la migrazione del cluster, consenti l'accesso alla porta selezionata. 

Questo parametro è facoltativo.

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

Il tempo, in secondi, per cui il driver attende la risposta SAML dal provider di identità quando si usano i servizi SAML o Azure AD tramite un plug-in del browser. 

Questo parametro è facoltativo.

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

 L'ID tenant Azure AD associato all'applicazione Amazon Redshift.

Questo parametro è obbligatorio se si esegue l'autenticazione tramite il servizio Azure AD.

## idp\$1partition
<a name="odbc20-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.

## idp\$1use\$1https\$1proxy
<a name="odbc20-idp-use-https-proxy-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: booleano

Un valore booleano che specifica se il driver fa passare i processi di autenticazione per i gestori dell'identità digitale (IdP) attraverso un server proxy. 
+  1 \$1 TRUE: il driver fa passare i processi di autenticazione dell'IdP attraverso un server proxy. 
+  0 \$1 FALSE. Il driver non fa passare i processi di autenticazione dell'IdP attraverso un server proxy. 

Questo parametro è facoltativo.

## InstanceProfile
<a name="odbc20-instanceprofile-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: booleano

Un valore booleano che specifica se il driver utilizza il profilo di istanza Amazon EC2, se configurato per l'utilizzo di un profilo per l'autenticazione.
+  1 \$1 TRUE: il driver utilizza il profilo dell'istanza Amazon EC2. 
+  0 \$1 FALSE. Il driver utilizza il profilo dei ruoli concatenati specificato dall'opzione Nome profilo (**Profilo**). 

Questo parametro è facoltativo.

## issuer\$1url
<a name="odbc20-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 con `BrowserIdcAuthPlugin` nell’opzione di configurazione plugin\$1name.

## KeepAlive
<a name="odbc20-keepalive-option"></a>
+ **Valore predefinito**: 1
+ **Tipo di dati**: booleano

Un valore booleano che specifica se il driver utilizza i keepalive TCP al fine di impedire il timeout delle connessioni.
+  1 \$1 TRUE: il driver utilizza i keepalive TCP al fine di impedire il timeout delle connessioni. 
+  0 \$1 FALSE. Il driver non utilizza keepalive TCP. 

Questo parametro è facoltativo.

## KeepAliveCount
<a name="odbc20-keepalivecount-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: numero intero

Il numero di pacchetti keepalive TCP che possono essere persi prima che la connessione sia considerata interrotta. Se questo parametro è impostato su 0, per questa impostazione il driver utilizza il valore predefinito di sistema. 

Questo parametro è facoltativo.

## KeepAliveInterval
<a name="odbc20-keepaliveinterval-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: numero intero

Il numero di secondi tra ciascuna ritrasmissione di keepalive TCP. Se questo parametro è impostato su 0, per questa impostazione il driver utilizza il valore predefinito di sistema. 

Questo parametro è facoltativo.

## KeepAliveTime
<a name="odbc20-keepalivetime-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: numero intero

Il numero di secondi di inattività prima che il driver invii un pacchetto keepalive TCP. Se questo parametro è impostato su 0, per questa impostazione il driver utilizza il valore predefinito di sistema. 

Questo parametro è facoltativo.

## listen\$1port
<a name="odbc20-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="odbc20-login-url-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

L'URL della risorsa sul sito Web del provider di identità quando si usa il plug-in Browser SAML generico.

Questo parametro è obbligatorio se si esegue l'autenticazione con SAML o i servizi Azure AD tramite un plug-in del browser.

## loginToRp
<a name="odbc20-logintorp-option"></a>
+ **Valore predefinito**: urn:amazon:webservices
+ **Tipo di dati**: stringa

La parte attendibile che si desidera utilizzare per il tipo di autenticazione AD FS.

Questa stringa è facoltativa.

## LogLevel
<a name="odbc20-loglevel-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: numero intero

Utilizza questa proprietà per attivare o disattivare la registrazione nel driver e per specificare il livello di dettaglio incluso nei file di log. Ti consigliamo di abilitare la registrazione solo per il tempo necessario a rilevare un problema, poiché la registrazione riduce le prestazioni e può richiedere una grande quantità di spazio su disco.

 Imposta il parametro su uno dei seguenti valori:
+  0 = OFF. Disabilitare la registrazione. 
+  1: ERROR. Registra gli eventi di errore che potrebbero consentire al driver di restare in esecuzione ma produce un errore. 
+  2:. API\$1CALL Registra le chiamate alle funzioni API ODBC con i valori degli argomenti della funzione. 
+  3: INFO. Registra le informazioni generali che descrivono l'avanzamento del driver. 
+  4: MSG\$1PROTOCOL. Registra informazioni dettagliate sul protocollo dei messaggi del driver. 
+  5: DEBUG. Registra l'attività di tutti i driver. 
+  6: DEBUG\$1APPEND. Continua ad aggiungere i registri per tutte le attività dei driver. 

Quando la registrazione è abilitata, il driver produce i seguenti file di registro nella posizione specificata nella **LogPath**proprietà: 
+  Un file `redshift_odbc.log.1` che registra l'attività del driver che si verifica durante l'handshake di una connessione. 
+  Un file `redshift_odbc.log` per tutte le attività del driver dopo che è stata stabilita una connessione al database. 

Questo parametro è facoltativo.

## LogPath
<a name="odbc20-logpath-option"></a>
+ **Valore predefinito**: la directory TEMP specifica del sistema operativo
+ **Tipo di dati**: stringa

Il percorso completo della cartella in cui il driver salva i file di registro quando **LogLevel**è superiore a 0.

Questo parametro è facoltativo.

## Min\$1TLS
<a name="odbc20-min-tls-option"></a>
+ **Valore predefinito**: 1.2
+ **Tipo di dati**: stringa

 La versione minima di TLS/SSL quella che il driver consente all'archivio dati di utilizzare per crittografare le connessioni. Ad esempio, se viene specificato TLS 1.2, TLS 1.1 non può essere utilizzato per crittografare le connessioni.

Min\$1TLS accetta i valori seguenti:
+  1.0: la connessione deve utilizzare almeno TLS 1.0. 
+  1.1: la connessione deve utilizzare almeno TLS 1.1. 
+  1.2: la connessione deve utilizzare almeno TLS 1.2. 

Questo parametro è facoltativo.

## partner\$1spid
<a name="odbc20-partner-spid-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il valore SPID (ID del fornitore di servizi) del partner da utilizzare per l'autenticazione della connessione tramite il servizio. PingFederate 

Questo parametro è facoltativo.

## Password \$1 PWS
<a name="odbc20-password-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

La password corrispondente al nome utente del database fornito nel campo Utente (**UID** \$1 **User** \$1 **LogonID**). 

Questo parametro è facoltativo.

## plugin\$1name
<a name="odbc20-plugin-name-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il nome del plug-in del provider di credenziali da utilizzare per l'autenticazione. 

 Sono supportati i seguenti valori: 
+  `ADFS`: utilizza Active Directory Federation Services per l'autenticazione. 
+  `AzureAD`: utilizza Microsoft Azure Active Directory (AD) Service per l'autenticazione 
+  `BrowserAzureAD`: utilizza un plug-in del browser per il servizio Microsoft Azure Active Directory (AD) per l'autenticazione. 
+  `BrowserIdcAuthPlugin `: un plugin di autorizzazione che utilizza Centro identità AWS IAM. 
+  `BrowserSAML`: utilizza un plug-in del browser per servizi SAML come Okta o Ping per l'autenticazione. 
+  `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 
+  `JWT`: utilizza un JSON Web Token (JWT) per l'autenticazione. 
+  `Ping`: utilizza il servizio per l'autenticazione. PingFederate 
+  `Okta`: utilizza il servizio Okta per l'autenticazione. 

Questo parametro è facoltativo.

## Porta \$1 PortNumber
<a name="odbc20-port-option"></a>
+ **Valore di default**: 5439
+ **Tipo di dati**: numero intero

Il numero della porta TCP utilizzata dal server Amazon Redshift per l'ascolto delle connessioni client. 

Questo parametro è facoltativo.

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

Il ruolo IAM che desideri assumere durante la connessione ad Amazon Redshift. Viene utilizzato nell'autenticazione IAM.

Questo parametro è facoltativo.

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

Il nome del AWS profilo utente utilizzato per l'autenticazione in Amazon Redshift.
+  Se il parametro Use Instance Profile (la **InstanceProfile**proprietà) è impostato su 1 \$1 TRUE, tale impostazione ha la precedenza e il driver utilizza invece il profilo dell'istanza Amazon EC2. 
+  La posizione predefinita per il file delle credenziali contenente i profili è `~/.aws/Credentials`. La variabile di ambiente `AWS_SHARED_CREDENTIALS_FILE` può essere utilizzata per fare riferimento a un file di credenziali diverso. 

Questo parametro è facoltativo.

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

Il provider di autenticazione creato dall'utente utilizzando la query CREATE IDENTITY PROVIDER. Viene utilizzato nell'autenticazione nativa di Amazon Redshift.

Questo parametro è facoltativo.

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

Il nome host o l'indirizzo IP del server proxy tramite il quale connettersi.

Questo parametro è facoltativo.

## ProxyPort
<a name="odbc20-proxyport-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: numero intero

Il numero della porta utilizzata dal server proxy per l'ascolto delle connessioni client.

Questo parametro è facoltativo.

## ProxyPwd
<a name="odbc20-proxypwd-option"></a>
+ **Versione predefinita del driver ValPrevious ODBC**: nessuna
+ **Tipo di dati**: stringa

La password utilizzata per l'accesso al server proxy. 

Questo parametro è facoltativo.

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

Il nome utente utilizzato per accedere al server proxy.

Questo parametro è facoltativo.

## ReadOnly
<a name="odbc20-readonly-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: booleano

Un valore booleano che specifica se il driver è in modalità di sola lettura. 
+  1 \$1 TRUE: la connessione è in modalità di sola lettura e non può scrivere nell'archivio dati. 
+  0 \$1 FALSE: la connessione non è in modalità di sola lettura e può scrivere nell'archivio dati. 

Questo parametro è facoltativo.

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

La AWS regione in cui si trova il cluster. 

Questo parametro è facoltativo.

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

 La chiave del segreto IAM per l'utente o il ruolo. Se si imposta questo parametro, è necessario impostare anche l'**AccessKeyID**. 

Questo parametro è facoltativo.

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

 Il token di sessione IAM temporaneo associato al ruolo IAM utilizzato per l'autenticazione. 

Questo parametro è facoltativo.

## Server \$1 HostName \$1 Host
<a name="odbc20-server-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il server dell'endpoint a cui connettersi.

Questo parametro è obbligatorio.

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

Un valore booleano che specifica se il driver controlla l'autenticità del certificato del server IdP.
+  1 \$1 TRUE: il driver non controlla l'autenticità del certificato del server IdP. 
+  0 \$1 FALSE: il driver controlla l'autenticità del certificato del server IdP. 

Questo parametro è facoltativo.

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

La modalità di verifica del certificato SSL da utilizzare durante la connessione ad Amazon Redshift. I valori possibili sono i seguenti: 
+  `verify-full`: connessione solo tramite SSL, un'autorità di certificazione attendibile e un nome di server che corrisponda al certificato. 
+  `verify-ca`: connessione solo tramite SSL e un'autorità di certificazione attendibile. 
+  `require`: connessione solo tramite SSL. 
+  `prefer`: connessione tramite SSL, se disponibile. Altrimenti, connessione senza utilizzare SSL. 
+  `allow`: per impostazione predefinita, connessione senza utilizzare SSL. Se il server richiede connessioni SSL, allora utilizza SSL. 
+  `disable`: connessione senza utilizzare SSL. 

Questo parametro è facoltativo.

## StsConnectionTimeout
<a name="odbc20-stsconnectiontimeout-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: numero intero

Il tempo massimo di attesa per le connessioni IAM, in secondi. Se impostato su 0 o non è specificato, il driver attende 60 secondi per ogni AWS STS chiamata. 

Questo parametro è facoltativo.

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

Questa opzione specifica l'endpoint di sostituzione utilizzato per comunicare con AWS Security Token Service (AWS STS). 

Questo parametro è facoltativo.

## token
<a name="jdbc20-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="jdbc20-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`.

## UID \$1 User \$1 LogonID
<a name="odbc20-uid-option"></a>
+ **Valore predefinito**: nessuno
+ **Tipo di dati**: stringa

Il nome utente utilizzato per accedere al server Amazon Redshift.

Questo parametro è obbligatorio se utilizzi l'autenticazione del database.

## UseUnicode
<a name="odbc20-useunicode-option"></a>
+ **Valore predefinito**: 0
+ **Tipo di dati**: booleano

Un booleano che specifica se il driver restituisce i dati Redshift come Unicode o tipi SQL regolari.
+  1 \$1 TRUE: il driver restituisce un tipo SQL ampio per il tipo di dati dei caratteri. 
  + Viene restituito SQL\$1WCHAR anziché SQL\$1CHAR.
  + Viene restituito SQL\$1WVARCHAR anziché SQL\$1VARCHAR.
  + Viene restituito SQL\$1WLONGVARCHAR anziché SQL\$1LONGVARCHAR.
+  0 \$1 FALSE: il driver restituisce il tipo SQL normale per il tipo di dati dei caratteri. 
  + Viene restituito SQL\$1CHAR anziché SQL\$1WCHAR.
  + Viene restituito SQL\$1VARCHAR anziché SQL\$1WVARCHAR.
  + Viene restituito SQL\$1LONGVARCHAR anziché SQL\$1WLONGVARCHAR.

Questo parametro è facoltativo. È disponibile nelle versioni dei driver 2.1.15 e successive.

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

Il token OAUTH fornito dal provider di identità. È usato nel plug-in JWT.

Questo parametro è obbligatorio se impostate il parametro **plugin\$1name** su. BasicJwtCredentialsProvider

# Versioni precedenti dei driver ODBC
<a name="odbc20-previous-versions"></a>

Scarica una versione precedente del driver ODBC versione 2.x di Amazon Redshift solo se lo strumento richiede una versione specifica del driver. 

## Utilizzo delle versioni precedenti del driver ODBC per Microsoft Windows
<a name="odbc20-previous-versions-windows"></a>

Di seguito sono riportate le versioni precedenti del driver ODBC versione 2.x di Amazon Redshift per Microsoft Windows: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi) 

## Utilizzo delle versioni precedenti del driver ODBC per Linux
<a name="odbc20-previous-versions-linux"></a>

Di seguito sono riportate le versioni precedenti del driver ODBC versione 2.x di Amazon Redshift per Linux: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86_64.rpm) 

## Usa versioni precedenti dei driver ODBC per Apple macOS
<a name="odbc20-previous-versions-mac"></a>

Di seguito sono elencate le versioni precedenti del driver ODBC di Amazon Redshift versione 2.x per Apple macOS: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg) -64 bit. 2.1.14.0.universal.pkg 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg) -64 bit. 2.1.13.0.universal.pkg 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg) -64 bit.2.1.12.0.universal.pkg 

# Configurazione di una connessione con driver ODBC versione 1.x
<a name="configure-odbc-connection"></a>

È possibile utilizzare una connessione ODBC per connettersi al cluster Amazon Redshift da numerose applicazioni e strumenti del client SQL di terze parti. A tale scopo, configurare la connessione sul computer client o sull'istanza Amazon EC2. Se il tuo strumento client supporta JDBC, potresti scegliere di usare quel tipo di connessione piuttosto che ODBC per la facilità di configurazione garantita da JDBC. Tuttavia, se il tuo strumento client non supporta JDBC, segui la procedura descritta in questa sezione per configurare una connessione ODBC. 

Amazon Redshift fornisce driver ODBC a 64 bit per i sistemi operativi Linux, Windows e macOS X. I driver ODBC a 32 bit vengono interrotti. Ulteriori aggiornamenti non verranno rilasciati, tranne che per le patch di sicurezza urgenti. 

Per le informazioni più recenti sulle funzionalità e sui prerequisiti dei driver ODBC, consultare le [Note di rilascio del driver ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Release+Notes.pdf). 

Per informazioni sull'installazione e la configurazione per i driver ODBC di Amazon Redshift, consultare la [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Ottenimento dell'URL ODBC](obtain-odbc-url.md)
+ [Utilizzo di un driver ODBC Amazon Redshift in Microsoft Windows](install-odbc-driver-windows.md)
+ [Utilizzo di un driver ODBC Amazon Redshift in Linux](install-odbc-driver-linux.md)
+ [Utilizzo di un driver ODBC Amazon Redshift in macOS X](install-odbc-driver-mac.md)
+ [Opzioni del driver ODBC](configure-odbc-options.md)
+ [Versioni precedenti dei driver ODBC](odbc-previous-versions.md)

# Ottenimento dell'URL ODBC
<a name="obtain-odbc-url"></a>

Amazon Redshift visualizza l'URL ODBC per il cluster nella console Amazon Redshift. Questo URL contiene le informazioni per configurare la connessione tra il tuo computer client e il database.

 Un URL ODBC ha il formato seguente: `Driver={driver};Server=endpoint;Database=database_name;UID=user_name;PWD=password;Port=port_number` 

I campi del formato mostrato in precedenza hanno i seguenti valori.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/obtain-odbc-url.html)

 I campi delle tabelle precedenti possono contenere i seguenti caratteri speciali:

```
[]{}(),;?*=!@ 
```

 Se si utilizzano questi caratteri speciali, è necessario racchiudere il valore tra parentesi graffe. Ad esempio, il valore della password `Your;password123` in una stringa di connessione è rappresentato come `PWD={Your;password123};`. 

 Poiché le coppie `Field=value` sono separate da punto e virgola, la combinazione di `}` e `;` con qualsiasi numero di spazi intermedi è considerata la fine di una coppia `Field={value};`. Consigliamo di evitare la sequenza `};` nei valori dei campi. Ad esempio, se imposti il valore della password su `PWD={This is a passwor} ;d};`, la password sarà `This is a passwor} ;` e l'URL genererà un errore. 

Di seguito è riportato un esempio di URL ODBC.

```
Driver={Amazon Redshift (x64)};
                    Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com;
                    Database=dev; 
                    UID=adminuser;
                    PWD=insert_your_admin_user_password_here;
                    Port=5439
```

Per informazioni su come ottenere la tua connessione ODBC, consultare [Ricerca della stringa di connessione al cluster](connecting-connection-string.md). 

# Utilizzo di un driver ODBC Amazon Redshift in Microsoft Windows
<a name="install-odbc-driver-windows"></a>

Il driver ODBC di Amazon Redshift viene installato sui computer client che accedono a un data warehouse Amazon Redshift. Ciascun computer su cui hai installato il driver deve soddisfare una serie di requisiti minimi di sistema: Per informazioni sui requisiti minimi di sistema, consultare la [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Download e installazione del driver ODBC Amazon Redshift](odbc-driver-windows-how-to-install.md)
+ [Creazione di una voce DSN di sistema per una connessione ODBC](create-dsn-odbc-windows.md)

# Download e installazione del driver ODBC Amazon Redshift
<a name="odbc-driver-windows-how-to-install"></a>

Utilizzare la procedura seguente per scaricare i driver ODBC di Amazon Redshift per i sistemi operativi Windows. Utilizzare un driver diverso dai precedenti solo se si sta eseguendo un'applicazione di terze parti certificata per l'utilizzo con Amazon Redshift e che richiede un driver specifico. 

**Come installare il driver ODBC**

1. Scarica uno dei driver seguenti in base all'architettura di sistema dello strumento client SQL o della applicazione: 
   + [Driver ODBC a 64 bit versione 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC64-1.6.3.1008.msi) versione 1.6.3.

     Il nome per questo driver è Amazon Redshift (x64).
   + [Driver ODBC a 32 bit versione 1.4.52 Nella AWS](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC32-1.4.52.1000.msi) bit versione 1.4.52

     Il nome per questo driver è Amazon Redshift (x86). I driver ODBC a 32 bit vengono interrotti. Ulteriori aggiornamenti non verranno rilasciati, tranne che per le patch di sicurezza urgenti.
**Nota**  
Scarica il pacchetto MSI corrispondente all'architettura di sistema dello strumento client SQL o della applicazione. Ad esempio, se il tuo strumento client SQL è a 64 bit, installa il driver a 64 bit.

    Quindi, scaricare ed esaminare il [contratto di licenza del driver ODBC e JDBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf). 

1.  Fai doppio clic sul file .msi, quindi segui le fasi della procedura guidata di installazione del driver. 

# Creazione di una voce DSN di sistema per una connessione ODBC
<a name="create-dsn-odbc-windows"></a>

Dopo aver scaricato e installato il driver ODBC, aggiungere un nome di origine dati (DSN) al computer client o all'istanza Amazon EC2. Gli strumenti client SQL utilizzano questa origine dati per connettersi al database Amazon Redshift. 

Ti consigliamo di creare un DSN di sistema anziché un DSN utente. Alcune applicazioni caricano i dati utilizzando un account utente diverso. Queste applicazioni potrebbero non essere in grado di rilevare gli utenti creati con un altro account utente DSNs .

**Nota**  
Per l'autenticazione tramite credenziali AWS Identity and Access Management (IAM) o credenziali del provider di identità (IdP), sono necessari passaggi aggiuntivi. Per ulteriori informazioni, consulta [Fase 5: configurazione di una connessione JDBC o ODBC per utilizzare credenziali IAM](generating-iam-credentials-steps.md#generating-iam-credentials-configure-jdbc-odbc).

Per informazioni su come creare una voce DSN di sistema, consultare la [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Per creare una voce DSN di sistema per una connessione ODBC in Windows**

1. Nel menu **Start (Avvio)** apri **ODBC Data Sources (Origini dati ODBC)**.

   Assicurarsi di scegliere l'amministratore dell'origine dati ODBC con gli stessi bit dell'applicazione client che si sta utilizzando per connettersi ad Amazon Redshift.

1. In **Amministratore origine dati ODBC**, scegli la scheda **Driver** e individua la cartella del driver.
   + **Driver ODBC Amazon Redshift (64 bit)**
   + **Driver ODBC Amazon Redshift (32 bit)**

1.  Seleziona la scheda **System DSN (DSN sistema)** per configurare il driver per tutti gli utenti del computer o la scheda **User DSN (DSN utente)** per configurare il driver solo per l'account utente. 

1.  Scegliere **Aggiungi**. Si aprirà la finestra **Create New Data Source (Crea nuova origine dati)**. 

1.  Selezionare il driver ODBC di **Amazon Redshift**, quindi scegliere **Termina**. Si aprirà la finestra **Configurazione DNS del driver ODBC per Amazon Redshift**.

1. In **Connection Settings (Impostazioni di connessione)**, inserire le informazioni riportate di seguito:
<a name="rs-mgmt-dsn"></a>
**Nome origine dati**  
Inserisci un nome per l'origine dati. Puoi utilizzare qualsiasi nome per identificare l'origine dati successivamente quando crei la connessione al cluster. Ad esempio, se è stata seguita la *Guida introduttiva di Amazon Redshift*, è possibile digitare `exampleclusterdsn` per ricordare più facilmente il cluster che verrà associato a questo DSN.
<a name="rs-mgmt-server"></a>
**Server**  
Specificare l'endpoint per il cluster Amazon Redshift. Queste informazioni sono disponibili nella pagina dei dettagli del cluster della console Amazon Redshift. Per ulteriori informazioni, consulta [Configurazione delle connessioni in Amazon Redshift](configuring-connections.md).
<a name="rs-mgmt-port"></a>
**Porta**  
Inserisci il numero di porta utilizzato dal database. Utilizza la porta configurata per il cluster al momento dell'avvio o della modifica.
<a name="rs-mgmt-database"></a>
**Database**  
Immettere Il nome del database Amazon Redshift. Se hai avviato il cluster senza specificare un nome di database, inserisci `dev`. In caso contrario, utilizza il nome scelto durante il processo di avvio. Se è stata seguita la *Guida introduttiva di Amazon Redshift*, immettere `dev`.

1. In **Authentication (Autenticazione)**, specifica le opzioni di configurazione per configurare l'autenticazione standard o IAM. Per informazioni sulle opzioni di autenticazione, consultare "Configurazione dell'autenticazione su Windows" nella *Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift*. 

1. In **SSL Settings (Impostazioni SSL)**, specificare un valore per:
<a name="rs-mgmt-ssl-authentication"></a>
**Autenticazione SSL**  
Seleziona una modalità per gestire Secure Sockets Layer (SSL). In un ambiente di test, puoi utilizzare `prefer`. Tuttavia, per gli ambienti di produzione e quando è necessario uno scambio sicuro di dati, utilizza `verify-ca` o `verify-full`. Per ulteriori informazioni sull'utilizzo di SSL su Windows, consultare "Configurazione della verifica SSL su Windows" nella *Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift*. 

1. In **Additional Options (Opzioni aggiuntive)**, specifica le opzioni su come restituire i risultati delle query allo strumento o all'applicazione client SQL. Per ulteriori informazioni, consultare "Configurazione di opzioni aggiuntive su Windows" nella *Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift*. 

1. In **Logging Options (Opzioni di logging)**, specifica i valori per l'opzione di logging. Per ulteriori informazioni, consultare "Configurazione delle opzioni di registrazione su Windows" nella *Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift*. 

   Quindi scegli **OK**.

1. In **Data Type Options (Opzioni tipo di dati)**, specifica i valori per i tipi di dati. Per ulteriori informazioni, consultare "Configurazione delle opzioni del tipo di dati su Windows" nella *Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift*. 

   Quindi scegli **OK**.

1. Scegli **Test (Esegui test)**. Se il computer client riesce a connettersi al database Amazon Redshift, viene visualizzato il messaggio seguente: **Connessione riuscita**. 

    Se il computer client non riesce a connettersi al database, puoi provare a risolvere i possibili problemi. Per ulteriori informazioni, consulta [Risoluzione dei problemi di connessione in Amazon Redshift](troubleshooting-connections.md). 

1. Configura keepalive TCP in Windows per impedire il timeout delle connessioni. Per informazioni su come configurare i keepalive TCP su Windows, consultare la *Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift*.

1. Per facilitare la risoluzione dei problemi, configura il logging. Per informazioni su come configurare la registrazione su Windows, consultare la *Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift*. 

# Utilizzo di un driver ODBC Amazon Redshift in Linux
<a name="install-odbc-driver-linux"></a>

Il driver ODBC di Amazon Redshift viene installato sui computer client che accedono a un data warehouse Amazon Redshift. Ciascun computer su cui hai installato il driver deve soddisfare una serie di requisiti minimi di sistema: Per informazioni sui requisiti minimi di sistema, consultare la [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Download e installazione del driver ODBC Amazon Redshift](odbc-driver-linux-how-to-install.md)
+ [Utilizzo di un gestore di driver ODBC per configurare il driver](odbc-driver-configure-linux.md)

# Download e installazione del driver ODBC Amazon Redshift
<a name="odbc-driver-linux-how-to-install"></a>

Usare la procedura descritta in questa sezione per scaricare e installare i driver ODBC di Amazon Redshift su una distribuzione Linux supportata. Tramite il processo di installazione vengono installati i file del driver nelle seguenti directory: 
+ `/opt/amazon/redshiftodbc/lib/64` (per un driver a 64 bit)
+ `/opt/amazon/redshiftodbc/ErrorMessages`
+ `/opt/amazon/redshiftodbc/Setup`
+  `/opt/amazon/redshiftodbc/lib/32` (per un driver a 32 bit)<a name="rs-mgmt-install-odbc-drivers-linux"></a>

**Come installare il driver ODBC di Amazon Redshift**

1. Scarica uno dei driver seguenti in base all'architettura di sistema dello strumento client SQL o della applicazione: 
   + [Driver RPM a 64 bit versione 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit-1.6.3.1008-1.x86_64.rpm) versione 1.6.3. 
   + [Driver Debian a 64 bit versione 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit-1.6.3.1008-1.x86_64.deb) versione 1.6.3. 
   + [Versione del driver a 32 bit 1.4.52 versione 1.6.3.](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-32-bit-1.4.52.1000-1.i686.rpm) 

   Il nome ciascuno di questi driver è Driver ODBC di Amazon Redshift. I driver ODBC a 32 bit vengono interrotti. Ulteriori aggiornamenti non verranno rilasciati, tranne che per le patch di sicurezza urgenti.
**Nota**  
Scaricare il pacchetto corrispondente all'architettura di sistema dello strumento client SQL o della applicazione. Ad esempio, se lo strumento client è a 64 bit, installare un driver a 64 bit.

    Quindi, scaricare ed esaminare il [contratto di licenza del driver ODBC e JDBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf). 

1. Passare alla posizione in cui si è scaricato il pacchetto ed eseguire uno dei comandi seguenti. Utilizzare il comando corrispondente alla distribuzione Linux. 
   + Nei sistemi operativi RHEL e CentOS , eseguire il comando seguente.

     ```
     yum -nogpgcheck localinstall RPMFileName
     ```

     Sostituire *`RPMFileName`* con il nome del file del pacchetto RPM. Ad esempio, il comando seguente illustra l'installazione di un driver a 64 bit.

     ```
     yum -nogpgcheck localinstall AmazonRedshiftODBC-64-bit-1.x.xx.xxxx-x.x86_64.rpm
     ```
   + Su SLES, eseguire questo comando.

     ```
     zypper install RPMFileName
     ```

     Sostituire *`RPMFileName`* con il nome del file del pacchetto RPM. Ad esempio, il comando seguente illustra l'installazione di un driver a 64 bit.

     ```
     zypper install AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.rpm
     ```
   + Su Debian, eseguire il seguente comando.

     ```
     sudo apt install ./DEBFileName.deb
     ```

     Sostituire `DEBFileName.deb` con il nome del file del pacchetto Debian. Ad esempio, il comando seguente illustra l'installazione di un driver a 64 bit.

     ```
     sudo apt install ./AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.deb
     ```

**Importante**  
Una volta completata l'installazione dei driver, configurali per l'uso sul tuo sistema. Per ulteriori informazioni sulla configurazione dei driver, consulta [Utilizzo di un gestore di driver ODBC per configurare il driverUtilizzo di un gestore di driver ODBC per configurare il driver](odbc-driver-configure-linux.md).

# Utilizzo di un gestore di driver ODBC per configurare il driver
<a name="odbc-driver-configure-linux"></a>

Sui sistemi operativi Linux utilizzi un gestore di driver ODBC per configurare le impostazioni di connessione ODBC. I gestori di driver ODBC utilizzano i file di configurazione per definire e configurare i driver e le origini dati ODBC. La scelta del gestore di driver ODBC dipende dal sistema operativo utilizzato. Per Linux è il gestore di driver unixODBC.

Per ulteriori informazioni sui gestori di driver ODBC supportati per configurare i driver ODBC Amazon Redshift, consulta [Utilizzo di un driver ODBC Amazon Redshift in LinuxUtilizzo di un driver ODBC in Linux](install-odbc-driver-linux.md) per i sistemi operativi Linux. Inoltre, consultare "Specifica della gestione driver ODBC in computer non Windows" nella [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

Per configurare il driver ODBC di Amazon Redshift, sono richiesti tre file: `amazon.redshiftodbc.ini`, `odbc.ini` e `odbcinst.ini`.

Se al momento dell'installazione hai utilizzato la posizione predefinita, il file di configurazione `amazon.redshiftodbc.ini` si trova in una delle directory seguenti:
+ `/opt/amazon/redshiftodbc/lib/64` (per il driver a 64 bit su sistemi operativi Linux)
+ `/opt/amazon/redshiftodbc/lib/32` (per il driver a 32 bit su sistemi operativi Linux)

Inoltre, in `/opt/amazon/redshiftodbc/Setup` in Linux, ci sono file `odbc.ini` e `odbcinst.ini` di esempio. È possibile utilizzare questi file come esempi per configurare il driver ODBC di Amazon Redshift e il nome origine dati (DSN).

Si sconsiglia di usare la directory di installazione del driver ODBC di Amazon Redshift per i file di configurazione. I file di esempio nella directory `Setup` sono a puro scopo illustrativo. Se si reinstalla il driver ODBC di Amazon Redshift in un secondo momento o si esegue l'aggiornamento a una versione più recente, la directory di installazione viene sovrascritta. Andranno pertanto perse tutte le modifiche apportate a tali file.

Per evitare questo, copiare il file `amazon.redshiftodbc.ini` in una directory diversa dalla directory di installazione. Se si copia questo file nella home directory dell'utente, aggiungere un punto (.) alla parte iniziale del nome del file per renderlo nascosto.

Per i file `odbcinst.ini` e `odbc.ini`, utilizzare i file di configurazione nella home directory dell'utente o creare nuove versioni in un'altra directory. Per impostazione predefinita, il sistema operativo Linux dovrebbe avere un file `odbc.ini` e un file `odbcinst.ini` nella directory principale dell’utente (`/home/$USER` o `~/`). Questi file predefiniti sono file nascosti, come indicato dal punto (.) davanti a ciascun nome del file. Questi file vengono visualizzati solo quando si utilizza il flag `-a` per elencare il contenuto della directory.

Qualunque sia l'opzione scelta per i file `odbc.ini` e `odbcinst.ini`, modificare i file per aggiungere le informazioni di configurazione del driver e del DSN. Se vengono creati nuovi file, è inoltre necessario impostare variabili di ambiente per specificare dove si trovano questi file di configurazione. 

Per impostazione predefinita, i gestori del driver ODBC sono configurati per utilizzare versioni nascoste dei file di configurazione `odbc.ini` e di `odbcinst.ini` (denominati.`odbc.ini` e .`odbcinst.ini`) che si trovano nella home directory. Sono inoltre configurati per utilizzare il file `amazon.redshiftodbc.ini` nella sotto-cartella `/lib` della directory di installazione del driver. Se si archiviano questi file di configurazione altrove, impostare le variabili di ambiente descritte di seguito in modo che il gestore dei driver possa individuare i file. Per ulteriori informazioni, consultare "Specifica delle posizioni dei file di configurazione del driver" nella [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

## Creazione di un nome origine dati su sistemi operativi Linux
<a name="configure-odbc-ini-file"></a>

 Quando ti connetti al tuo data store utilizzando un nome di origine dati (DSN), configura il `odbc.ini` file da definire. DSNs Imposta le proprietà nel file `odbc.ini` per creare un DSN che specifica le informazioni di connessione per i data store.

Per informazioni su come configurare il file `odbc.ini`, consultare "Creazione di un nome origine dei dati in un computer non Windows" nella [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) 

 Usa il formato seguente sui sistemi operativi Linux.

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

L'esempio seguente mostra la configurazione di odbc.ini con il driver ODBC a 64 bit su sistemi operativi Linux.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift (x64)

[Amazon Redshift (x64)]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

L'esempio seguente mostra la configurazione di odbc.ini con il driver ODBC a 32 bit su sistemi operativi Linux.

```
[ODBC Data Sources]
Amazon_Redshift_x32=Amazon Redshift (x86)

[Amazon Redshift (x86)]
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

## Configurazione di una connessione senza DSN sui sistemi operativi Linux
<a name="configure-odbcinst-ini-file"></a>

Per connetterti al data store tramite una connessione che non dispone di un DSN, devi definire il driver nel file `odbcinst.ini`. Quindi devi fornire una stringa di connessione senza DSN nell'applicazione.

Per informazioni su come configurare il file `odbcinst.ini` in questo caso, consultare "Configurazione di una connessione senza DSN in un computer non Windows" nella [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

Usa il formato seguente sui sistemi operativi Linux.

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

L'esempio seguente mostra la configurazione `odbcinst.ini` per il driver a 64 bit installato nelle directory predefinite sui sistemi operativi Linux.

```
[ODBC Drivers]
Amazon Redshift (x64)=Installed

[Amazon Redshift (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
```

L'esempio seguente mostra la configurazione `odbcinst.ini` per il driver a 32 bit installato nelle directory predefinite sui sistemi operativi Linux.

```
[ODBC Drivers]
Amazon Redshift (x86)=Installed

[Amazon Redshift (x86)]
Description=Amazon Redshift ODBC Driver (32-bit)
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
```

## Configurazione delle variabili d’ambiente
<a name="rs-mgmt-config-global-env-variables"></a>

Utilizza il gestore driver ODBC corretto per caricare il driver corretto. A tale scopo, imposta la variabile di ambiente del percorso della libreria. Inoltre, consultare "Specifica della gestione driver ODBC in computer non Windows" nella [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

Per impostazione predefinita, i gestori del driver ODBC sono configurati per utilizzare versioni nascoste dei file di configurazione `odbc.ini` e di `odbcinst.ini` (denominati.`odbc.ini` e .`odbcinst.ini`) che si trovano nella home directory. Sono inoltre configurati per utilizzare il file `amazon.redshiftodbc.ini` nella sotto-cartella `/lib` della directory di installazione del driver. Se memorizzi questi file di configurazione altrove, imposta le variabili di ambiente in modo che il gestore dei driver possa individuare i file. Per ulteriori informazioni, consultare "Specifica delle posizioni dei file di configurazione del driver" nella *Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift*. 

## Configurazione delle funzionalità di connessione
<a name="connection-config-features"></a>

Puoi configurare le seguenti funzionalità di connessione per le tue impostazioni ODBC:
+ Configurare il driver ODBC per fornire le credenziali e autenticare la connessione al database Amazon Redshift.
+ Configurare il driver ODBC per la connessione a un socket abilitato con Secure Sockets Layer (SSL), se ci si connette a un server Amazon Redshift che ha abilitato SSL.
+ Configurare il driver ODBC per la connessione ad Amazon Redshift tramite un server proxy.
+ Configura il driver ODBC per utilizzare una modalità di elaborazione delle query per impedire che le query consumino troppa memoria.
+ Configurare il driver ODBC per passare i processi di autenticazione IAM attraverso un server proxy.
+ Configura il driver ODBC per l'uso di keepalive TCP al fine di impedire il timeout delle connessioni.

Per informazioni su queste caratteristiche di connessione, consultare la [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

# Utilizzo di un driver ODBC Amazon Redshift in macOS X
<a name="install-odbc-driver-mac"></a>

Il driver viene installato sui computer client che accedono a un data warehouse Amazon Redshift. Ciascun computer su cui hai installato il driver deve soddisfare una serie di requisiti minimi di sistema: Per informazioni sui requisiti minimi di sistema, consultare la [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Download e installazione del driver ODBC Amazon Redshift](odbc-driver-mac-how-to-install.md)
+ [Utilizzare un gestore di driver ODBC per configurare il driver](odbc-driver-configure-mac.md)

# Download e installazione del driver ODBC Amazon Redshift
<a name="odbc-driver-mac-how-to-install"></a>

Utilizzare la procedura descritta in questa sezione per scaricare e installare il driver ODBC di Amazon Redshift su una versione supportata di macOS X. Il processo di installazione installa i file del driver nelle seguenti directory: 
+ `/opt/amazon/redshift/lib/universal`
+ `/opt/amazon/redshift/ErrorMessages`
+ `/opt/amazon/redshift/Setup`<a name="rs-mgmt-install-odbc-drivers-mac"></a>

**Come installare il driver ODBC di Amazon Redshift su macOS X**

1. [Per installare il driver ODBC Amazon Redshift su macOS X, scarica la versione 1.6.3 del driver macOS.](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit.1.6.3.1008.universal.pkg) 

   Quindi, scaricare ed esaminare il [contratto di licenza del driver ODBC e JDBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf). 

1. Fate doppio clic su **AmazonRedshiftODBC.pkg per eseguire il programma** di installazione.

1. Seguire la procedura nel programma di installazione per completare il processo di installazione del driver. Per eseguire l'installazione, sarà necessario accettare i termini dell'accordo di licenza.

**Importante**  
Una volta completata l'installazione del driver, configuralo per l'uso sul tuo sistema. Per ulteriori informazioni sulla configurazione dei driver, consulta [Utilizzare un gestore di driver ODBC per configurare il driverUtilizzare un gestore di driver ODBC per configurare il driver](odbc-driver-configure-mac.md).

# Utilizzare un gestore di driver ODBC per configurare il driver
<a name="odbc-driver-configure-mac"></a>

Sui sistemi operativi macOS X utilizzi un gestore di driver ODBC per configurare le impostazioni di connessione ODBC. I gestori di driver ODBC utilizzano i file di configurazione per definire e configurare i driver e le origini dati ODBC. La scelta del gestore di driver ODBC dipende dal sistema operativo utilizzato. Per un sistema operativo macOS X è il gestore di driver iODBC.

Per ulteriori informazioni sui gestori di driver ODBC supportati per configurare i driver ODBC Amazon Redshift, consulta [Utilizzo di un driver ODBC Amazon Redshift in macOS XUtilizzo di un driver ODBC in macOS X](install-odbc-driver-mac.md) per i sistemi operativi macOS X. Inoltre, consultare "Specifica della gestione driver ODBC in computer non Windows" nella [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

Per configurare il driver ODBC di Amazon Redshift, sono richiesti tre file: `amazon.redshiftodbc.ini`, `odbc.ini` e `odbcinst.ini`.

Se l'installazione è stata eseguita nella posizione predefinita, il file di configurazione `amazon.redshiftodbc.ini` si trova in `/opt/amazon/redshift/lib`.

Inoltre, in `/opt/amazon/redshift/Setup` in macOS X, ci sono file `odbc.ini` e `odbcinst.ini` di esempio. È possibile utilizzare questi file come esempi per configurare il driver ODBC di Amazon Redshift e il nome origine dati (DSN).

Si sconsiglia di usare la directory di installazione del driver ODBC di Amazon Redshift per i file di configurazione. I file di esempio nella directory `Setup` sono a puro scopo illustrativo. Se si reinstalla il driver ODBC di Amazon Redshift in un secondo momento o si esegue l'aggiornamento a una versione più recente, la directory di installazione viene sovrascritta. Andranno pertanto perse tutte le modifiche apportate a tali file.

Per evitare questo, copiare il file `amazon.redshiftodbc.ini` in una directory diversa dalla directory di installazione. Se si copia questo file nella home directory dell'utente, aggiungere un punto (.) alla parte iniziale del nome del file per renderlo nascosto.

Per i file `odbcinst.ini` e `odbc.ini`, utilizzare i file di configurazione nella home directory dell'utente o creare nuove versioni in un'altra directory. Per impostazione predefinita, il sistema operativo macOS X dovrebbe avere un file `odbc.ini` e un file `odbcinst.ini` nella home directory dell’utente (`/home/$USER` o `~/`). Questi file predefiniti sono file nascosti, come indicato dal punto (.) davanti a ciascun nome del file. Questi file vengono visualizzati solo quando si utilizza il flag `-a` per elencare il contenuto della directory.

Qualunque sia l'opzione scelta per i file `odbc.ini` e `odbcinst.ini`, modificare i file per aggiungere le informazioni di configurazione del driver e del DSN. Se vengono creati nuovi file, è inoltre necessario impostare variabili di ambiente per specificare dove si trovano questi file di configurazione. 

Per impostazione predefinita, i gestori del driver ODBC sono configurati per utilizzare versioni nascoste dei file di configurazione `odbc.ini` e di `odbcinst.ini` (denominati.`odbc.ini` e .`odbcinst.ini`) che si trovano nella home directory. Sono inoltre configurati per utilizzare il file `amazon.redshiftodbc.ini` nella sotto-cartella `/lib` della directory di installazione del driver. Se si archiviano questi file di configurazione altrove, impostare le variabili di ambiente descritte di seguito in modo che il gestore dei driver possa individuare i file. Per ulteriori informazioni, consultare "Specifica delle posizioni dei file di configurazione del driver" nella [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

## Creazione di un nome origine dati sui sistemi operativi macOS X
<a name="configure-odbc-ini-file"></a>

 Quando ti connetti al tuo data store utilizzando un nome di origine dati (DSN), configura il `odbc.ini` file da definire. DSNs Imposta le proprietà nel file `odbc.ini` per creare un DSN che specifica le informazioni di connessione per i data store.

Per informazioni su come configurare il `odbc.ini` file, consulta «Creazione di un nome di origine dati su una macchina non Windows» nella guida all'installazione e alla configurazione del [connettore ODBC di Amazon Redshift Nella regione AWS Cina, utilizza il seguente link: Guida all'installazione e alla configurazione](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) . 

Usa il formato seguente sui sistemi operativi macOS X.

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/lib/amazonredshiftodbc.dylib

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

 L'esempio seguente mostra la configurazione per `odbc.ini` su sistemi operativi macOS X.

```
[ODBC Data Sources]
Amazon_Redshift_dylib=Amazon Redshift DSN for macOS X

[Amazon Redshift DSN for macOS X]
Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

## Configurazione di una connessione senza DSN sui sistemi operativi macOS X
<a name="configure-odbcinst-ini-file"></a>

Per connetterti al data store tramite una connessione che non dispone di un DSN, devi definire il driver nel file `odbcinst.ini`. Quindi devi fornire una stringa di connessione senza DSN nell'applicazione.

Per informazioni su come configurare il file `odbcinst.ini` in questo caso, consultare "Configurazione di una connessione senza DSN in un computer non Windows" nella [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). .

Usa il formato seguente sui sistemi operativi macOS X.

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/lib/amazonredshiftodbc.dylib
    
...
```

L'esempio seguente mostra la configurazione di `odbcinst.ini` per il driver installato nella directory predefinita nei sistemi operativi macOS X.

```
[ODBC Drivers]
Amazon RedshiftODBC DSN=Installed

[Amazon RedshiftODBC DSN]
Description=Amazon Redshift ODBC Driver for macOS X
Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib
```

## Configurazione delle variabili d’ambiente
<a name="rs-mgmt-config-global-env-variables"></a>

Utilizza il gestore driver ODBC corretto per caricare il driver corretto. A tale scopo, imposta la variabile di ambiente del percorso della libreria. Inoltre, consultare "Specifica della gestione driver ODBC in computer non Windows" nella [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

Per impostazione predefinita, i gestori del driver ODBC sono configurati per utilizzare versioni nascoste dei file di configurazione `odbc.ini` e di `odbcinst.ini` (denominati.`odbc.ini` e .`odbcinst.ini`) che si trovano nella home directory. Sono inoltre configurati per utilizzare il file `amazon.redshiftodbc.ini` nella sotto-cartella `/lib` della directory di installazione del driver. Se memorizzi questi file di configurazione altrove, imposta le variabili di ambiente in modo che il gestore dei driver possa individuare i file. Per ulteriori informazioni, consultare "Specifica delle posizioni dei file di configurazione del driver" nella *Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift*. 

## Configurazione delle funzionalità di connessione
<a name="connection-config-features"></a>

Puoi configurare le seguenti funzionalità di connessione per le tue impostazioni ODBC:
+ Configurare il driver ODBC per fornire le credenziali e autenticare la connessione al database Amazon Redshift.
+ Configurare il driver ODBC per la connessione a un socket abilitato con Secure Sockets Layer (SSL), se ci si connette a un server Amazon Redshift che ha abilitato SSL.
+ Configurare il driver ODBC per la connessione ad Amazon Redshift tramite un server proxy.
+ Configura il driver ODBC per utilizzare una modalità di elaborazione delle query per impedire che le query consumino troppa memoria.
+ Configurare il driver ODBC per passare i processi di autenticazione IAM attraverso un server proxy.
+ Configura il driver ODBC per l'uso di keepalive TCP al fine di impedire il timeout delle connessioni.

Per informazioni su queste caratteristiche di connessione, consultare la [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

# Opzioni del driver ODBC
<a name="configure-odbc-options"></a>

Le opzioni di configurazione possono essere utilizzate per controllare il comportamento del driver ODBC di Amazon Redshift.

In Microsoft Windows, in genere imposti le opzioni del driver quando configuri un nome dell'origine dati (DSN). Puoi anche impostare le opzioni del driver nella stringa di connessione quando ti connetti in modo programmatico oppure aggiungendo o modificando le chiavi di registro in `HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN`. Per ulteriori informazioni sulla configurazione di un DSN, consultare [Utilizzo di un driver ODBC Amazon Redshift in Microsoft Windows](install-odbc-driver-windows.md).

In macOS X imposta le opzioni di configurazione del driver nei file `odbc.ini` e `amazon.redshiftodbc.ini`, come descritto in [Utilizzare un gestore di driver ODBC per configurare il driverUtilizzare un gestore di driver ODBC per configurare il driver](odbc-driver-configure-mac.md). Le opzioni di configurazione impostate in un file `amazon.redshiftodbc.ini` si applicano a tutte le connessioni. Al contrario, le opzioni di configurazione impostate in un file `odbc.ini` sono specifiche di una connessione. Le opzioni di configurazione impostate in `odbc.ini` hanno la precedenza sulle opzioni di configurazione impostate in `amazon.redshiftodbc.ini`.

Per informazioni su come impostare le opzioni di configurazione del driver ODBC, consulta la [Guida all'installazione e alla configurazione del connettore ODBC di Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

# Versioni precedenti dei driver ODBC
<a name="odbc-previous-versions"></a>

Scaricare una versione precedente del driver ODBC di Amazon Redshift solo se lo strumento richiede una versione specifica del driver. 

## Versioni precedenti del driver ODBC per Windows
<a name="odbc-previous-versions-windows"></a>

Di seguito sono riportati i driver a 64 bit: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi) 

I driver a 32 bit sono dismessi e le versioni precedenti non sono supportate.

## Versioni precedenti del driver ODBC per Linux
<a name="odbc-previous-versions-linux"></a>

Di seguito sono elencate le versioni precedenti del driver a 64 bit: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.deb) -64 bit-1,459.1000-1x86\$164.deb 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.deb) -64 bit-1.4.56.1000-1.x86\$164.deb 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.deb) -64 bit-1.4.52.1000-1.x86\$164.deb 

I driver a 32 bit sono dismessi e le versioni precedenti non sono supportate.

## Versioni precedenti dei driver ODBC per macOS X
<a name="odbc-previous-versions-mac"></a>

Di seguito sono riportate le versioni del driver ODBC di Amazon Redshift per macOS X: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg) -64 bit.1.6.3.1006.universal.pkg 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg) -64 bit.1.6.1.1000.universal.pkg 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg) 

# Configurazione delle opzioni di sicurezza per le connessioni
<a name="connecting-ssl-support"></a>

Amazon Redshift supporta le connessioni Secure Sockets Layer (SSL) per crittografare i dati e i certificati server per convalidare il certificato del server a cui si connette il client. 

## SSL
<a name="connect-using-ssl"></a>

Per supportare le connessioni SSL, Amazon Redshift crea e installa un certificato SSL emesso da [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/) su ciascun cluster. I certificati ACM sono attendibili pubblicamente dalla maggior parte dei sistemi operativi, dei browser Web e dei client. Potresti aver bisogno di scaricare un bundle di certificati se i tuoi client o applicazioni SQL si connettono ad Amazon Redshift usando SSL con l'opzione di connessione `sslmode` impostata su `require`, `verify-ca`, o `verify-full`. Se il cliente ha bisogno di un certificato, Amazon Redshift fornisce un certificato di bundle come segue:
+ [Scarica il pacchetto da .crt. https://s3.amazonaws.com/redshift-downloads/ amazon-trust-ca-bundle](https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt) 
  + Il numero di MD5 checksum previsto è 418dea9b6d5d5de7a8f1ac42e164cdcf.
  + Il numero di checksum sha256 è 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

  Non utilizzare certificato di bundle precedente che si trovava in `https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt`. 
+  [In Cina Regione AWS, scarica il pacchetto dahttps://s3.cn-north-1.amazonaws.com. cn/redshift-downloads-cn/amazon- trust-ca-bundle .crt.](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt) 
  + Il numero di MD5 checksum previsto è 418dea9b6d5d5de7a8f1ac42e164cdcf.
  + Il numero di checksum sha256 è 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

  Non utilizzare i certificati di bundle precedenti che si trovavano in `https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/redshift-ca-bundle.crt` e `https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem`

**Importante**  
Amazon Redshift ha modificato la modalità di gestione dei certificati SSL. Potrebbe essere necessario aggiornare i certificati CA radice attendibili correnti per continuare a connettersi ai propri cluster utilizzando SSL. Per ulteriori informazioni, consulta [Passaggio ai certificati ACM per connessioni SSL](connecting-transitioning-to-acm-certs.md).

Per impostazione predefinita, i database del cluster accettano una connessione, che utilizzi o meno SSL. Per configurare il cluster per richiedere una connessione SSL, imposta il parametro `require_SSL` su `true` nel gruppo di parametri associato con il cluster. 

Amazon Redshift supporta una modalità SSL conforme al Federal Information Processing Standard (FIPS) 140-2. Per impostazione predefinita, la modalità SSL conforme allo standard FIPS è disabilitata. 

**Importante**  
Abilita la modalità SSL conforme a FIPS solo se il sistema deve essere conforme a FIPS.

Per abilitare la modalità SSL conforme a FIPS, imposta i parametri `use_fips_ssl` e `require_SSL` su `true` nel gruppo di parametri associato con il cluster Amazon Redshift o il gruppo di lavoro Redshift serverless. Per informazioni sulla modifica di un gruppo di parametri su un cluster, consulta [Gruppi di parametri di Amazon Redshift.](working-with-parameter-groups.md). Per informazioni sulla modifica di un gruppo di parametri su un gruppo di lavoro, consulta [Configurazione di una connessione SSL conforme a FIPS per Amazon Redshift serverless](serverless-connecting.md#serverless_secure-fips-ssl). 

 Amazon Redshift supporta il protocollo di accordo chiave Elliptic Curve DiffieHellman Ephemeral (ECDHE). Con il protocollo ECDHE, il client e il server hanno ciascuno una coppia di chiavi pubblica-privata a curva ellittica utilizzata per stabilire un segreto condiviso su un canale insicuro. Per abilitare ECDHE non è necessario eseguire alcuna configurazione in Amazon Redshift. Se ci si connette da uno strumento client SQL che utilizza ECDHE per crittografare la comunicazione tra il client e il server, Amazon Redshift utilizza l'elenco di crittografie fornito per stabilire la connessione appropriata. Per ulteriori informazioni, consultare [Elliptic curve diffie-hellman](https://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman) su Wikipedia e [Ciphers](https://www.openssl.org/) sul sito Web di OpenSSL. 

## Certificati CA di attendibilità e SSL in ODBC
<a name="connecting-ssl-support-odbc"></a>

Se ci si connette utilizzando la versione più recente dei driver ODBC di Amazon Redshift (versione 1.3.7.1000 o successiva), è possibile saltare questa sezione. Per scaricare i driver più aggiornati, consultare [Configurazione di una connessione per il driver ODBC versione 2.x per Amazon Redshift](odbc20-install.md). 

Potrebbe essere necessario aggiornare i certificati CA radice attendibili correnti per continuare a connettersi ai propri cluster utilizzando SSL. Per ulteriori informazioni, consulta [SSL](#connect-using-ssl).

Puoi verificare che il certificato scaricato corrisponda al numero di checksum previsto. MD5 Per fare ciò, è possibile utilizzare il programma Md5sum sui sistemi operativi Linux o un altro strumento sui sistemi operativi Windows e macOS X.

 ODBC DSNs contiene un'`sslmode`impostazione che determina come gestire la crittografia per le connessioni client e la verifica dei certificati del server. Amazon Redshift supporta i seguenti valori `sslmode` dalla connessione client: 
+ `disable`

  Il protocollo SSL è disabilitato e la connessione non è crittografata.
+ `allow`

  Il protocollo SSL è utilizzato se il server lo richiede.
+ `prefer`

  Se il server lo supporta, è utilizzato il protocollo SSL. Amazon Redshift supporta SSL, quindi SSL viene utilizzato quando si imposta `sslmode` su `prefer`.
+ `require`

  Il protocollo SSL è obbligatorio.
+ `verify-ca`

  È necessario utilizzare il protocollo SSL e verificare il certificato del server.
+ `verify-full`

  È necessario utilizzare il protocollo SSL. È necessario verificare il certificato del server e il nome host del server deve corrispondere all'attributo del nome host sul certificato. 

È possibile determinare se SSL viene utilizzato e se i certificati del server sono verificati in una connessione tra il client e il server. Per farlo, è necessario rivedere l'impostazione `sslmode` del DSN ODBC lato client e l'impostazione `require_SSL` del cluster Amazon Redshift sul server. La tabella seguente descrive il risultato della crittografia per varie combinazioni di configurazione di client e server: 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/connecting-ssl-support.html)

### Connessione tramite il certificato del server con ODBC su Microsoft Windows
<a name="connecting-ssl-support-odbc-with-cert"></a>

 Se si desidera connettersi al cluster utilizzando SSL e il certificato server, scaricare innanzitutto il certificato nel computer client o nell'istanza Amazon EC2. Quindi configurare il DSN ODBC. 

1.  Scaricare il bundle di autorità di certificazione di Amazon Redshift sul computer client nella cartella `lib` all'interno della directory di installazione del driver e salvare il file come `root.crt`. Per informazioni di download, consulta [SSL](#connect-using-ssl).

1.  Aprire **ODBC Data Source Administrator (Amministratore di origini dati ODBC)** e aggiungere o modificare la voce DSN di sistema per la connessione ODBC. Per **SSL Mode (Modalità SSL)**, selezionare `verify-full` a meno che non si utilizzi un alias DNS. Se si utilizza un alias DNS, selezionare `verify-ca`. Quindi scegli **Save** (Salva). 

    Per ulteriori informazioni sulla configurazione di un DSN ODBC, consultare [Configurazione di una connessione per il driver ODBC versione 2.x per Amazon Redshift](odbc20-install.md). 

## Certificati SSL e server in Java
<a name="connecting-ssl-support-java"></a>

Il protocollo SSL fornisce un livello di sicurezza crittografando i dati che si spostano tra client e cluster. Tramite l'uso di un certificato del server offre un ulteriore livello di sicurezza verificando che il cluster sia un cluster di Amazon Redshift. A tale scopo, verifica che il certificato del server sia installato automaticamente su tutti i cluster per cui effettui il provisioning. Per ulteriori informazioni sull'utilizzo di certificati server con JDBC, consultare l'articolo sulla [configurazione del client](https://jdbc.postgresql.org/documentation/ssl/#configuring-the-client) nella documentazione di PostgreSQL.

### Connessione tramite certificati CA attendibili in Java
<a name="connecting-ssl-support-java-with-cert"></a>

**Importante**  
Amazon Redshift ha modificato la modalità di gestione dei certificati SSL. Potrebbe essere necessario aggiornare i certificati CA radice attendibili correnti per continuare a connettersi ai propri cluster utilizzando SSL. Per ulteriori informazioni, consulta [SSL](#connect-using-ssl).

**Per connettersi tramite certificati CA attendibili**

Puoi utilizzare il `redshift-keytool.jar` file per importare i certificati CA del bundle Amazon Redshift Certificate Authority in Java TrustStore o in un pacchetto privato. TrustStore

1. Se si utilizza l'opzione `-Djavax.net.ssl.trustStore` della riga di comando Java, rimuoverla dalla riga di comando, se possibile.

1. Scaricare [redshift-keytool.jar](https://s3.amazonaws.com/redshift-downloads/redshift-keytool.jar).

1. Esegui una delle seguenti operazioni:
   + Per importare il pacchetto Amazon Redshift Certificate Authority in Java TrustStore, esegui il comando seguente. 

     ```
     java -jar redshift-keytool.jar -s
     ```
   + Per importare il pacchetto Amazon Redshift Certificate Authority in modalità privata TrustStore, esegui il seguente comando: 

     ```
     java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password> 
     ```

# Passaggio ai certificati ACM per connessioni SSL
<a name="connecting-transitioning-to-acm-certs"></a>

Amazon Redshift sta sostituendo i certificati SSL nei cluster con certificati emessi da [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/). ACM è un'autorità di certificazione (CA) pubblica considerata attendibile dalla maggior parte dei sistemi correnti. Potrebbe essere necessario aggiornare i certificati CA radice attendibili correnti per continuare a connettersi ai propri cluster utilizzando SSL. 

Questo cambiamento ti riguarda solo in presenza di tutte le condizioni seguenti:
+  Le tue applicazioni o i tuoi client SQL si connettono ai cluster Amazon Redshift tramite protocollo SSL con l'opzione di connessione `sslMode` impostata sull'opzione di configurazione `require`, `verify-ca` o `verify-full`. 
+ Non sono utilizzati i driver JDBC o ODBC di Amazon Redshift o sono utilizzati driver di Amazon Redshift precedenti a ODBC versione 1.3.7.1000 o JDBC versione 1.2.8.1005. 

Se la modifica ti riguarda per le regioni Amazon Redshift commerciali, è necessario aggiornare i certificati emessi da una CA radice attendibili correnti prima del 23 ottobre 2017. Amazon Redshift completerà il passaggio dei cluster all'uso di certificati ACM tra la data odierna e il 23 ottobre 2017. Il cambiamento dovrebbe avere un effetto minimo o assente sulle prestazioni o la disponibilità del cluster.

Se questa modifica riguarda alcune regioni AWS GovCloud (US) (Stati Uniti), devi aggiornare i tuoi attuali certificati Trust Root CA prima del 1° aprile 2020 per evitare interruzioni del servizio. A partire da questa data, i client che si connettono a cluster Amazon Redshift che utilizzano connessioni crittografate SSL necessitano di una certification authority (CA) attendibile aggiuntiva. I client utilizzano le certification authority attendibili per confermare l'identità del cluster Amazon Redshift quando si connettono. L'operazione è necessaria per aggiornare i client SQL e le applicazioni al fine di utilizzare un bundle di certificati aggiornato che includa la nuova CA attendibile. 

**Importante**  
Nelle regioni della Cina, il 5 gennaio 2021, Amazon Redshift sostituirà i certificati SSL sui cluster con certificati emessi da AWS Certificate Manager (ACM). Se questa modifica riguarda la regione Cina (Pechino) o la regione Cina (Ningxia), allora sarà necessario aggiornare i certificati CA root attendibili correnti prima del 5 gennaio 2021 per evitare interruzioni del servizio. A partire da questa data, i client che si connettono a cluster Amazon Redshift che utilizzano connessioni crittografate SSL necessitano di una certification authority (CA) attendibile aggiuntiva. I client utilizzano le certification authority attendibili per confermare l'identità del cluster Amazon Redshift quando si connettono. L'operazione è necessaria per aggiornare i client SQL e le applicazioni al fine di utilizzare un bundle di certificati aggiornato che includa la nuova CA attendibile.
+ [Utilizzo dei driver ODBC o JDBC di Amazon Redshift più recenti](#connecting-transitioning-to-acm-latest-odbc-jdbc)
+ [Utilizzo dei driver ODBC o JDBC di Amazon Redshift meno recenti](#connecting-transitioning-to-acm-earlier-odbc-jdbc)
+ [Utilizzo di altri tipi di connessione SSL](#connecting-transitioning-to-acm-other-ssl-types)

## Utilizzo dei driver ODBC o JDBC di Amazon Redshift più recenti
<a name="connecting-transitioning-to-acm-latest-odbc-jdbc"></a>

Il metodo preferito prevede l'utilizzo dei driver ODBC o JDBC di Amazon Redshift più recenti. I driver Amazon Redshift a partire dalla versione ODBC 1.3.7.1000 e versione JDBC 1.2.8.1005 gestiscono automaticamente il passaggio da un certificato autofirmato di Amazon Redshift a un certificato ACM. Per scaricare i driver più aggiornati, consultare [Configurazione di una connessione per il driver JDBC versione 2.x per Amazon Redshift](jdbc20-install.md). 

Se utilizzi il driver JDBC di Amazon Redshift più recente, ti consigliamo di non usare `-Djavax.net.ssl.trustStore` nelle opzioni JVM. Se è necessario utilizzare `-Djavax.net.ssl.trustStore`, importare il bundle di autorità di certificazione di Redshift nel truststore a cui fa riferimento. Per informazioni di download, consulta [SSL](connecting-ssl-support.md#connect-using-ssl). Per ulteriori informazioni, consulta [Importazione del pacchetto di autorità di certificazione Amazon Redshift in un TrustStore](#importing-the-acm-bundle-to-truststore).

## Utilizzo dei driver ODBC o JDBC di Amazon Redshift meno recenti
<a name="connecting-transitioning-to-acm-earlier-odbc-jdbc"></a>
+ Se il tuo DSN ODBC è configurato con `SSLCertPath`, sovrascrivi il file del certificato nel percorso specificato.
+ Se `SSLCertPath` non è impostato, sovrascrivi il file del certificato denominato `root.crt` nella posizione del DLL del driver. 

Se è necessario utilizzare un driver JDBC Amazon Redshift precedente alla versione 1.2.8.1005, completare una delle operazioni seguenti:
+ Se la stringa di connessione JDBC utilizza l'opzione `sslCert`, rimuovi l'opzione `sslCert`. Quindi importa il pacchetto di autorità di certificazione Redshift nel tuo Java. TrustStore Per informazioni di download, consulta [SSL](connecting-ssl-support.md#connect-using-ssl). Per ulteriori informazioni, consulta [Importazione del pacchetto di autorità di certificazione Amazon Redshift in un TrustStore](#importing-the-acm-bundle-to-truststore). 
+ Se si utilizza l'opzione `-Djavax.net.ssl.trustStore` della riga di comando Java, rimuoverla dalla riga di comando, se possibile. Quindi importa il pacchetto di autorità di certificazione Redshift nel tuo Java. TrustStore Per informazioni di download, consulta [SSL](connecting-ssl-support.md#connect-using-ssl). Per ulteriori informazioni, consulta [Importazione del pacchetto di autorità di certificazione Amazon Redshift in un TrustStore](#importing-the-acm-bundle-to-truststore).

### Importazione del pacchetto di autorità di certificazione Amazon Redshift in un TrustStore
<a name="importing-the-acm-bundle-to-truststore"></a>

Puoi utilizzarli `redshift-keytool.jar` per importare i certificati CA nel bundle Amazon Redshift Certificate Authority in Java TrustStore o nel tuo truststore privato.

**Per importare il pacchetto di autorità di certificazione Amazon Redshift in un TrustStore**

1. Scaricare [redshift-keytool.jar](https://s3.amazonaws.com/redshift-downloads/redshift-keytool.jar).

1. Esegui una delle seguenti operazioni:
   + Per importare il pacchetto Amazon Redshift Certificate Authority in Java TrustStore, esegui il comando seguente. 

     ```
     java -jar redshift-keytool.jar -s
     ```
   + Per importare il pacchetto Amazon Redshift Certificate Authority in modalità privata TrustStore, esegui il seguente comando: 

     ```
     java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password> 
     ```

## Utilizzo di altri tipi di connessione SSL
<a name="connecting-transitioning-to-acm-other-ssl-types"></a>

Segui la procedura descritta in questa sezione se utilizzi uno dei seguenti metodi di connessione:
+  Driver ODBC open source 
+  Driver JDBC open source 
+  L'interfaccia a riga di comando [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html) 
+  Qualsiasi connessione di linguaggio basata su libpq, come psycopg2 (Python) e ruby-pg (Ruby) 

**Per utilizzare i certificati ACM con altri tipi di connessione SSL:**

1.  Scaricare il bundle della certification authority di Amazon Redshift. Per informazioni di download, consulta [SSL](connecting-ssl-support.md#connect-using-ssl).

1. Posizionare i certificati del bundle nel file `root.crt`. 
   + Sui sistemi operativi Linux e macOS X, il file è `~/.postgresql/root.crt`
   + Su Microsoft Windows, il file è `%APPDATA%\postgresql\root.crt`

# Connessione da codice e strumenti client
<a name="connecting-via-client-tools"></a>

Amazon Redshift fornisce l'editor di query Amazon Redshift v2 per la connessione ai cluster e ai gruppi di lavoro. Per ulteriori informazioni, consulta [Esecuzione di query su un database con Query Editor V2Esecuzione di query in un database con l'editor di query v2 di Amazon Redshift](query-editor-v2.md).

Questa sezione fornisce alcune opzioni per la connessione mediante strumenti di terze parti. Inoltre, descrive come connettersi al cluster in modo programmatico. 

**Topics**
+ [Connessione con Amazon Redshift RSQL](rsql-query-tool.md)
+ [Connettiti a un cluster con Amazon Redshift RSQL](rsql-query-tool-starting-tool-connection.md)
+ [Comandi meta di Amazon Redshift RSQL](rsql-query-tool-commands.md)
+ [Variabili di Amazon Redshift RSQL](rsql-query-tool-variables.md)
+ [Codici di errore RSQL di Amazon Redshift](rsql-query-tool-error-codes.md)
+ [Variabili di ambiente Amazon Redshift RSQL](rsql-query-tool-environment-variables.md)

# Connessione con Amazon Redshift RSQL
<a name="rsql-query-tool"></a>

 Amazon Redshift RSQL è un client a riga di comando per interagire con cluster e database Amazon Redshift. Puoi connetterti a un cluster Amazon Redshift, descrivere oggetti di database, interrogare i dati e visualizzare i risultati delle query in diversi formati di output. 

 Amazon Redshift RSQL supporta le funzionalità dello strumento riga di comando PostgreSQL psql con un set aggiuntivo di funzionalità specifiche di Amazon Redshift. Questi sono i seguenti: 
+ Puoi usare l'autenticazione Single Sign-On usando AD FS, Okta PingIdentity, Azure ADm o altri provider di identità basati. SAML/JWT Puoi anche utilizzare provider di identità SAML basati su browser per autenticazione a più fattori (MFA).
+ Puoi descrivere proprietà o attributi degli oggetti Amazon Redshift come chiavi di distribuzione delle tabelle, chiavi di ordinamento delle tabelle, viste late-binding (LBVs) e viste materializzate. Puoi anche descrivere proprietà o attributi di tabelle esterne in un AWS Glue catalogo o Apache Hive Metastore, database esterni in Amazon RDS per PostgreSQL, Amazon Aurora PostgreSQL Compatible Edition, RDS for MySQL (anteprima) e Amazon Aurora MySQL Compatible Edition (anteprima) e tabelle condivise utilizzando Amazon Redshift Shift condivisione dei dati.
+ È inoltre possibile utilizzare comandi di controllo avanzati come `IF` (`\ELSEIF`, `\ELSE,` `\ENDIF`), `\GOTO` e `\LABEL`.

 Con la modalità batch di Amazon Redshift RSQL, che esegue uno script passato come parametro di input, è possibile eseguire script che includono sia SQL che la logica di business complessa. Se disponi di data warehouse autogestiti on-premise, puoi utilizzare Amazon Redshift RSQL per sostituire gli script di estrazione, trasformazione, caricamento (ETL) e automazione esistenti, come gli script Teradata BTEQ. L'utilizzo di RSQL aiuta a evitare di reimplementare manualmente gli script in un linguaggio procedurale. 

 Amazon Redshift RSQL è disponibile per i sistemi operativi Linux, Windows e macOS X. 

Per segnalare problemi relativi ad Amazon Redshift RSQL, scrivi a redshift-rsql-support @amazon .com.

**Topics**
+ [Nozioni di base su Amazon Redshift RSQL](rsql-query-tool-getting-started.md)
+ [Registro delle modifiche di Amazon Redshift RSQL](rsql-query-tool-changelog.md)

# Nozioni di base su Amazon Redshift RSQL
<a name="rsql-query-tool-getting-started"></a>

Installare Amazon Redshift RSQL su un computer con sistema operativo Linux, macOS o Microsoft Windows.

## Scarica RSQL
<a name="rsql-query-tool-download"></a>
+  
  +  
  +  
+  
+  

Consultare il registro delle modifiche e i download per le versioni precedenti in [Registro delle modifiche di Amazon Redshift RSQL](rsql-query-tool-changelog.md).

## Installazione di RSQL per Linux
<a name="rsql-query-tool-linux-install"></a>

Segui la seguente procedura per installare RSQL per Linux.

1. Installare il driver manager mediante il comando seguente:

   ```
   sudo yum install unixODBC
   ```

1. Per installare il driver ODBC: [Download e installazione del driver ODBC Amazon RedshiftDownload e installazione del driver ODBC](odbc20-install-linux.md)

1. Copia il file ini nella directory principale:

   ```
   cp /opt/amazon/redshiftodbcx64/odbc.ini ~/.odbc.ini
   ```

1. Impostare le variabili di ambiente in modo che puntino alla posizione del file:

   ```
   export ODBCINI=~/.odbc.ini
   export ODBCSYSINI=/opt/amazon/redshiftodbcx64/
   export AMAZONREDSHIFTODBCINI=/opt/amazon/redshiftodbcx64/amazon.redshiftodbc.ini
   ```

1. È ora possibile installare RSQL eseguendo il comando seguente.

   ```
   sudo rpm -i AmazonRedshiftRsql-<version>.rhel.x86_64.rpm
   ```

## Installazione di RSQL per Mac
<a name="rsql-query-tool-mac-install"></a>

Segui i passaggi seguenti per installare RSQL per Mac OSX.

1. Installare il driver manager mediante il comando seguente:

   ```
   brew install unixodbc --build-from-source
   ```

1. Per installare il driver ODBC: [Download e installazione del driver ODBC Amazon RedshiftDownload e installazione del driver ODBC](odbc-driver-mac-how-to-install.md)

1. Copia il file ini nella directory principale:

   ```
   cp /opt/amazon/redshift/Setup/odbc.ini ~/.odbc.ini
   ```

1. Impostare le variabili di ambiente in modo che puntino alla posizione del file:

   ```
   export ODBCINI=~/.odbc.ini
   export ODBCSYSINI=/opt/amazon/redshift/Setup
   export AMAZONREDSHIFTODBCINI=/opt/amazon/redshift/lib/amazon.redshiftodbc.ini
   ```

1. Imposta `DYLD_LIBRARY_PATH` sulla posizione del tuo libodbc.dylib se non è in `/usr/local/lib`.

   ```
   export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib
   ```

1. Fai doppio clic sul file pkg per eseguire il programma di installazione.

1. Seguire la relativa procedura guidata per completare l'installazione. Accetta i termini dell'accordo di licenza.

## Installazione di RSQL per Windows
<a name="rsql-query-tool-windows-install"></a>

Segui i passaggi seguenti per installare RSQL per Windows.

1. Per installare il driver ODBC: [Download e installazione del driver ODBC Amazon RedshiftDownload e installazione del driver ODBC](odbc-driver-windows-how-to-install.md)

1. Fai doppio clic sul file di download di RSQL per eseguire il programma di installazione, quindi segui le istruzioni per completare l'installazione.

# Registro delle modifiche di Amazon Redshift RSQL
<a name="rsql-query-tool-changelog"></a>

*1.1.2 (2025-12-11)*

Correzioni di bug
+ Risolto un bug che causava errori con i comandi\$1 goto e\$1 label.
+ È stato corretto un bug che impediva a RSQL di stampare i valori delle variabili quando le variabili erano racchiuse tra virgolette.
+ È stato corretto un bug che causava arresti anomali di RSQL quando i risultati delle query superavano la dimensione del parametro ODBC DSN Fetch quando era abilitato. UseDeclareFetch 
+ È stato risolto un problema per cui venivano restituite più pagine di risultati contemporaneamente anche se il pager era acceso.
+ È stato corretto un bug che causava l'arresto anomalo di RSQL quando le query non riuscivano all'interno dei blocchi di transazione.

*1.1.1 (2025-11-20)*

Correzioni di bug
+ È stato risolto un problema per cui RSQL analizzava erroneamente le query quando si utilizzava il flag -c. Questa correzione si applica a tutte le piattaforme.
+ Risolve un bug su Mac che impediva agli utenti di utilizzare il comando\$1 s in RSQL.

*1.1.0 (2025-11-11)*

Correzioni di bug
+ È stato risolto un problema di perdita di memoria che causava arresti anomali imprevisti in rSQL.
+ Dipendenza OpenSSL rimossa da RSQL.
+ Sono stati corretti i conflitti di collegamento con le libpq/psql installazioni nello stesso ambiente.
+ Migliore compatibilità della piattaforma per Amazon Linux 2023, Windows e macOS.
+ È stato risolto un problema per cui l'output veniva troncato quando si superavano le dimensioni di visualizzazione correnti.

*1.0.8 (19-06-2023)*

Correzioni di bug
+ È stato risolto un problema per cui l'output veniva troncato con i comandi SHOW.
+ È stato aggiunto il supporto a \$1de per la descrizione di flussi Kinesis esterni e argomenti Kafka.

*1.0.7 (22-03-2023)*

Correzioni di bug
+ È stato risolto un problema che impediva a RSQL di descrivere le viste materializzate.
+ È stato risolto un errore di autorizzazione negata su stl\$1connection\$1log quando si utilizza Amazon Redshift serverless.
+ Risolto il problema a causa del quale RSQL poteva elaborare le etichette \$1GOTO in modo errato.
+ Risolto il problema per cui i messaggi SSL vengono stampati in modalità silenziosa.
+ Risolto il problema relativo alla visualizzazione di caratteri casuali durante la descrizione delle procedure archiviate.
+ È stato risolto il problema relativo alla stampa di messaggi duplicati. ERROR/INFO 

Novità
+ RSQL ora ottiene informazioni SSL direttamente dal driver ODBC.



*1.0.5 (22-02-2023)*

Correzioni di bug
+ Risolto un problema per cui \$1d generava un errore - invalid input syntax for integer: "xid" (sintassi di input non valida per il numero intero "xid") - nella patch Redshift 1.0.46086 (P173).

Novità
+ File di installazione rinominati in base all'architettura supportata.



*1.0.5 (27/06/2022)*

Correzioni di bug
+ Invia i messaggi di errore SQL a un errore standard (stderr).
+ Risolto il problema con i codici di uscita quando si utilizza ON\$1ERROR\$1STOP. Gli script ora terminano dopo aver riscontrato un errore e restituiscono i codici di uscita corretti.
+ Maxerror adesso non fa distinzione tra maiuscole e minuscole.

Novità
+ Aggiunto il supporto per il driver ODBC 2.x.



*1.0.4 (2022-03-19)*
+ Aggiungi il supporto per la variabile d'ambiente RSPASSWORD. Imposta una password per connetterti ad Amazon Redshift. Ad esempio, `export RSPASSWORD=TestPassw0rd`.



*1.0.3 (2021-12-08)*

Correzioni di bug
+ Finestra di dialogo fissa quando si utilizza `\c` o `\logon` per passare da un database all'altro nel sistema operativo Windows.
+ Risolto l'arresto anomalo durante il controllo delle informazioni ssl.



## Versioni precedenti di Amazon Redshift RSQL
<a name="rsql-query-tool-changelog-legacy-versions"></a>

Scegli uno dei collegamenti per scaricare la versione di Amazon Redshift RSQL necessaria in base al sistema operativo in uso.

**RPM Linux a 64 bit**
+ [RSQL versione 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.rhel.x86_64.rpm)
+ 
+ 
+ [RSQL versione 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.rpm)
+ [RSQL versione 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.rpm)
+ [RSQL versione 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5-1.x86_64.rpm) 
+ [RSQL versione 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4-1.x86_64.rpm) 
+ [RSQL versione 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3-1.x86_64.rpm)
+ [RSQL versione 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1-1.x86_64.rpm)

**Mac OS 64 bit DMG/PKG**
+ [RSQL](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.universal.pkg) 
+ 
+ 
+ [RSQL versione 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.dmg)
+ [RSQL versione 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.dmg)
+ [RSQL versione 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5.dmg)
+ [RSQL versione 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4.dmg)
+ [RSQL versione 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3.dmg)
+ [RSQL versione 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1.dmg)

**MSI Windows a 64 bit**
+ 
+ 
+ [RSQL versione 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.msi)
+ [RSQL versione 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.msi)
+ [RSQL versione 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.msi)
+ [RSQL versione 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5.msi)
+ [RSQL versione 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4.msi)
+ [RSQL versione 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3.msi)
+ [RSQL versione 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1.msi)

# Connettiti a un cluster con Amazon Redshift RSQL
<a name="rsql-query-tool-starting-tool-connection"></a>

Con Amazon Redshift puoi connetterti a un cluster e interagirvi con RSQL. Si tratta di uno strumento da riga di comando che fornisce un modo sicuro per eseguire query sui dati, creare oggetti di database e gestire il cluster Amazon Redshift. Le seguenti sezioni illustrano i passaggi per stabilire una connessione al cluster utilizzando RSQL con e senza un nome origine dati (DSN).

## Connessione senza DSN
<a name="rsql-query-tool-starting-tool-connection-dsn-less-example"></a>

1. Sulla console Amazon Redshift, scegli il cluster a cui vuoi connetterti e annota l'endpoint, il database e la porta.

1. Al prompt dei comandi, specificate le informazioni di connessione usando i parametri della linea di comando.

   ```
   rsql -h <endpoint> -U <username> -d <databasename> -p <port>
   ```

    Qui si applicano le seguenti condizioni: 
   +  *<endpoint>*è l'**endpoint** registrato nel passaggio precedente.
   +  *<username>*è il nome di un utente con i permessi per connettersi al cluster.
   +  *<databasename>*è il **nome del database** registrato nel passaggio precedente.
   +  *<port>*è la **porta** registrata nel passaggio precedente. *<port>*è un parametro opzionale.

   Di seguito è riportato un esempio.

   ```
   rsql -h testcluster.example.amazonaws.com -U user1 -d dev -p 5439
   ```

1.  Alla richiesta della password, immettere la password per l'*<username>*utente.

   Una risposta di connessione riuscita appare come la seguente.

   ```
   % rsql -h testcluster.example.com -d dev -U user1 -p 5349
   Password for user user1:
   DSN-less Connected
   DBMS Name: Amazon Redshift
   Driver Name: Amazon Redshift ODBC Driver
   Driver Version: 1.4.27.1000
   Rsql Version: 1.0.1
   Redshift Version: 1.0.29306
   Type "help" for help.
   
   (testcluster) user1@dev=#
   ```

Il comando per connettersi ha gli stessi parametri su Linux, Mac OS e Windows.

## Connessione senza DSN
<a name="rsql-query-tool-starting-tool-connection-dsn-example"></a>

Puoi connettere RSQL ad Amazon Redshift utilizzando un DSN per semplificare l’organizzazione delle proprietà di connessione. In questo argomento sono incluse le istruzioni per l’installazione del driver ODBC e le descrizioni delle proprietà DSN.

### Utilizzo di una connessione DSN con una password
<a name="rsql-query-tool-starting-tool-connection-dsn-example-password"></a>

Di seguito viene illustrato un esempio di configurazione di connessione DSN che utilizza una password. Il `<path to driver>` predefinito per Mac OSX è `/opt/amazon/redshift/lib/libamazonredshiftodbc.dylib` e per Linux è `/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so`.

```
[testuser]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<database port>
Database=<dbname>
UID=<username>
PWD=<password>
sslmode=prefer
```

L'output seguente deriva da una connessione riuscita.

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

### Utilizzo di DSN Single Sign-On
<a name="rsql-query-tool-starting-tool-connection-dsn"></a>

È possibile configurare un DSN per l'autenticazione Single Sign-On. Di seguito viene illustrato un esempio di configurazione di connessione DSN che utilizza il servizio SSO di Okta.

```
[testokta]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-US
iam=1
plugin_name=<plugin name>
uid=<okta username>
pwd=<okta password>
idp_host=<idp endpoint>
app_id=<app id>
app_name=<app name>
preferred_role=<role arn>
```

Esempio di output da una connessione riuscita.

```
% rsql -D testokta 
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

Di seguito viene illustrato un esempio di configurazione di connessione DSN che utilizza Azure Single Sign-On.

```
[testazure]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<cluster port>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-us
iam=1
plugin_name=<plugin name>
uid=<azure username>
pwd=<azure password>
idp_tenant=<Azure idp tenant uuid>
client_id=<Azure idp client uuid>
client_secret=<Azure idp client secret>
```

### Utilizzo di una connessione DSN con un profilo IAM
<a name="rsql-query-tool-starting-tool-connection-dsn-iam"></a>

Puoi connetterti ad Amazon Redshift utilizzando il profilo IAM configurato. Il profilo IAM deve avere privilegi per chiamare `GetClusterCredentials`. L'esempio seguente mostra le proprietà DSN da utilizzare. I parametri `ClusterID` e `Region` sono obbligatori solo se il `Host` non è un endpoint fornito da Amazon come `examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`.

```
[testiam]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Profile=default
```

Il valore della `Profile` chiave è il profilo denominato che scegli tra le tue credenziali AWS CLI. In questo esempio vengono mostrate le credenziali per il profilo nominato `default`.

```
$ cat .aws/credentials
[default]
aws_access_key_id = ASIAIOSFODNN7EXAMPLE 
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

Di seguito è illustrata la risposta della connessione.

```
$ rsql -D testiam
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### Utilizzo di una connessione DSN con un profilo dell'istanza
<a name="rsql-query-tool-starting-tool-connection-dsn-instance"></a>

Puoi connetterti ad Amazon Redshift utilizzando il profilo dell'istanza Amazon EC2. Il profilo dell'istanza deve avere privilegi per chiamare `GetClusterCredentials`. Vedere l'esempio riportato di seguito per le proprietà DSN da utilizzare. I parametri `ClusterID` e `Region` sono obbligatori solo se il `Host` non è un endpoint fornito da Amazon come `examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`.

```
[testinstanceprofile]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Instanceprofile=1
```

Di seguito è illustrata la risposta della connessione.

```
$ rsql -D testinstanceprofile
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### Utilizzo di una connessione DSN con la catena di provider delle credenziali di default
<a name="rsql-query-tool-starting-tool-connection-dsn-provider-chain"></a>

Per connetterti utilizzando la catena di provider di credenziali predefinita, specifica solo la proprietà IAM e Amazon Redshift RSQL tenterà di acquisire le credenziali nell'ordine descritto in [Working AWS with Credentials in](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) the SDK for Java. AWS Almeno uno dei fornitori della catena deve disporre di autorizzazioni `GetClusterCredentials`. Ciò è utile per il collegamento da container ECS, ad esempio.

```
[iamcredentials]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
```

# Comandi meta di Amazon Redshift RSQL
<a name="rsql-query-tool-commands"></a>

I comandi meta di Amazon Redshift RSQL restituiscono registri informativi su database o oggetti di database specifici. I risultati possono includere varie colonne e metadati. Altri comandi eseguono azioni specifiche. Questi comandi sono preceduti da una barra rovesciata.

## \$1d[S\$1]
<a name="rsql-query-tool-describe-d"></a>

 Elenca le tabelle create dall'utente locale, le viste regolari, le viste di associazione tardiva e le viste materializzate. `\dS ` elenca anche tabelle e viste, come `\d`, ma gli oggetti di sistema sono inclusi nei registri restituiti. Il `+` ha come risultato la colonna aggiuntiva dei metadati `description` per tutti gli oggetti elencati. Di seguito sono riportati i registri di esempio restituiti come risultato del comando. 

```
List of relations
 schema |   name    | type  |  owner  
--------+-----------+-------+---------
 public | category  | table | awsuser
 public | date      | table | awsuser
 public | event     | table | awsuser
 public | listing   | table | awsuser
 public | sales     | table | awsuser
 public | users     | table | awsuser
 public | venue     | table | awsuser
(7 rows)
```

## \$1d[S\$1] NOME
<a name="rsql-query-tool-describe-s-plus-named"></a>

Descrive una tabella, una vista o un indice. Include i nomi e i tipi di colonna. Fornisce inoltre diststyle, configurazione di backup, data di creazione (tabelle create dopo ottobre 2018) e vincoli. Ad esempio, `\dS+ sample` restituisce le proprietà dell'oggetto. L'aggiunta di `S+` ha come risultato colonne aggiuntive incluse nei registri restituiti.

```
Table "public.sample"
 Column |            Type             |   Collation    | Nullable | Default Value | Encoding  | DistKey | SortKey
--------+-----------------------------+----------------+----------+---------------+-----------+---------+---------
 col1   | smallint                    |                | NO       |               | none      | t       | 1
 col2   | character(100)              | case_sensitive | YES      |               | none      | f       | 2
 col3   | character varying(100)      | case_sensitive | YES      |               | text32k   | f       | 3
 col4   | timestamp without time zone |                | YES      |               | runlength | f       | 0
 col5   | super                       |                | YES      |               | zstd      | f       | 0
 col6   | bigint                      |                | YES      |               | az64      | f       | 0

Diststyle: KEY
Backup: YES
Created: 2021-07-20 19:47:27.997045
Unique Constraints:
    "sample_pkey" PRIMARY KEY (col1)
    "sample_col2_key" UNIQUE (col2)
Foreign-key constraints:
    "sample_col2_fkey" FOREIGN KEY (col2) REFERENCES lineitem(l_orderkey)
```

Lo stile di distribuzione o *Diststyle*, della tabella può essere KEY, AUTO, EVEN o ALL.

*Backup* indica se la tabella viene sottoposta a backup quando viene scattato uno snapshot. I valori validi sono `YES` e `NO`.

*Creato* la data e l'ora di quando viene creata la tabella. La data di creazione non è disponibile per le tabelle Amazon Redshift create prima di novembre 2018. Le tabelle create prima di questa data vengono visualizzate (non disponibile). n/a 

*Vincoli unici* elenca i vincoli di chiave primaria e univoca nella tabella.

*Vincoli di chiave straniera* elenca i vincoli di chiave straniera nella tabella.

## \$1dC [\$1] [MODELLO]
<a name="rsql-query-tool-describe-dc"></a>

Elenca i cast. Include il tipo di origine, il tipo di destinazione e se il cast è implicito.

Di seguito viene mostrato un sottoinsieme di risultati da `\dC+`.

```
List of casts
         source type         |         target type         |      function       |   implicit?   | description 
-----------------------------+-----------------------------+---------------------+---------------+-------------
 "char"                      | character                   | bpchar              | in assignment | 
 "char"                      | character varying           | text                | in assignment | 
 "char"                      | integer                     | int4                | no            | 
 "char"                      | text                        | text                | yes           | 
 "path"                      | point                       | point               | no            | 
 "path"                      | polygon                     | polygon             | in assignment | 
 abstime                     | date                        | date                | in assignment | 
 abstime                     | integer                     | (binary coercible)  | no            | 
 abstime                     | time without time zone      | time                | in assignment | 
 abstime                     | timestamp with time zone    | timestamptz         | yes           | 
 abstime                     | timestamp without time zone | timestamp           | yes           | 
 bigint                      | bit                         | bit                 | no            | 
 bigint                      | boolean                     | bool                | yes           | 
 bigint                      | character                   | bpchar              | in assignment | 
 bigint                      | character varying           | text                | in assignment | 
 bigint                      | double precision            | float8              | yes           | 
 bigint                      | integer                     | int4                | in assignment | 
 bigint                      | numeric                     | numeric             | yes           | 
 bigint                      | oid                         | oid                 | yes           | 
 bigint                      | real                        | float4              | yes           | 
 bigint                      | regclass                    | oid                 | yes           | 
 bigint                      | regoper                     | oid                 | yes           | 
 bigint                      | regoperator                 | oid                 | yes           | 
 bigint                      | regproc                     | oid                 | yes           | 
 bigint                      | regprocedure                | oid                 | yes           | 
 bigint                      | regtype                     | oid                 | yes           | 
 bigint                      | smallint                    | int2                | in assignment | 
 bigint                      | super                       | int8_partiql        | in assignment |
```

## \$1dd[S] [MODELLO]
<a name="rsql-query-tool-describe-dds"></a>

Mostra le descrizioni degli oggetti non visualizzate altrove.

## \$1de
<a name="rsql-query-tool-describe-de"></a>

Elenca le tabelle esterne. Sono incluse le AWS Glue Data Catalog tabelle in Hive Metastore e le tabelle federate di Amazon MySQL, Amazon PostgreSQL e RDS/Aurora Amazon Redshift. RDS/Aurora 

## \$1de NOME
<a name="rsql-query-tool-describe-de-name"></a>

Descrive una tabella esterna.

L' AWS Glue esempio seguente mostra una tabella esterna.

```
# \de spectrum.lineitem
                            Glue External table "spectrum.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_shipdate      | date          | date          | 11       | 0             |
 l_commitdate    | date          | date          | 12       | 0             |
 l_receiptdate   | date          | date          | 13       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 14       | 0             |
 l_shipmode      | char(10)      | char(10)      | 15       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 16       | 0             |

Location: s3://redshiftbucket/kfhose2019/12/31
Input_format: org.apache.hadoop.mapred.TextInputFormat
Output_format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Serialization_lib: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
Serde_parameters: {"field.delim":"|","serialization.format":"|"}
Parameters: {"EXTERNAL":"TRUE","numRows":"178196721475","transient_lastDdlTime":"1577771873"}
```

Un tavolo Hive Metastore.

```
# \de emr.lineitem
                     Hive Metastore External Table "emr.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_commitdate    | date          | date          | 11       | 0             |
 l_receiptdate   | date          | date          | 12       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 13       | 0             |
 l_shipmode      | char(10)      | char(10)      | 14       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 15       | 0             |
 l_shipdate      | date          | date          | 16       | 1             |

Location: s3://redshiftbucket/cetas
Input_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
Output_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
Serialization_lib: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
Serde_parameters: {"serialization.format":"1"}
Parameters: {"EXTERNAL":"TRUE", "numRows":"4307207", "transient_lastDdlTime":"1626990007"}
```

Tabella esterna PostgreSQL.

```
# \de pgrsql.alltypes
                                Postgres Federated Table "pgrsql.alltypes"
 Column |        External Type        |        Redshift Type        | Position | Partition Key | Nullable
--------+-----------------------------+-----------------------------+----------+---------------+----------
 col1   | bigint                      | bigint                      | 1        | 0             |
 col2   | bigint                      | bigint                      | 2        | 0             |
 col5   | boolean                     | boolean                     | 3        | 0             |
 col6   | box                         | varchar(65535)              | 4        | 0             |
 col7   | bytea                       | varchar(65535)              | 5        | 0             |
 col8   | character(10)               | character(10)               | 6        | 0             |
 col9   | character varying(10)       | character varying(10)       | 7        | 0             |
 col10  | cidr                        | varchar(65535)              | 8        | 0             |
 col11  | circle                      | varchar(65535)              | 9        | 0             |
 col12  | date                        | date                        | 10       | 0             |
 col13  | double precision            | double precision            | 11       | 0             |
 col14  | inet                        | varchar(65535)              | 12       | 0             |
 col15  | integer                     | integer                     | 13       | 0             |
 col16  | interval                    | varchar(65535)              | 14       | 0             |
 col17  | json                        | varchar(65535)              | 15       | 0             |
 col18  | jsonb                       | varchar(65535)              | 16       | 0             |
 col19  | line                        | varchar(65535)              | 17       | 0             |
 col20  | lseg                        | varchar(65535)              | 18       | 0             |
 col21  | macaddr                     | varchar(65535)              | 19       | 0             |
 col22  | macaddr8                    | varchar(65535)              | 20       | 0             |
 col23  | money                       | varchar(65535)              | 21       | 0             |
 col24  | numeric                     | numeric(38,20)              | 22       | 0             |
 col25  | path                        | varchar(65535)              | 23       | 0             |
 col26  | pg_lsn                      | varchar(65535)              | 24       | 0             |
 col28  | point                       | varchar(65535)              | 25       | 0             |
 col29  | polygon                     | varchar(65535)              | 26       | 0             |
 col30  | real                        | real                        | 27       | 0             |
 col31  | smallint                    | smallint                    | 28       | 0             |
 col32  | smallint                    | smallint                    | 29       | 0             |
 col33  | integer                     | integer                     | 30       | 0             |
 col34  | text                        | varchar(65535)              | 31       | 0             |
 col35  | time without time zone      | varchar(65535)              | 32       | 0             |
 col36  | time with time zone         | varchar(65535)              | 33       | 0             |
 col37  | timestamp without time zone | timestamp without time zone | 34       | 0             |
 col38  | timestamp with time zone    | timestamp with time zone    | 35       | 0             |
 col39  | tsquery                     | varchar(65535)              | 36       | 0             |
 col40  | tsvector                    | varchar(65535)              | 37       | 0             |
 col41  | txid_snapshot               | varchar(65535)              | 38       | 0             |
 col42  | uuid                        | varchar(65535)              | 39       | 0             |
 col43  | xml                         | varchar(65535)              | 40       | 0             |
```

## \$1df[anptw][S\$1] [MODELLO]
<a name="rsql-query-tool-df"></a>

 Elenca funzioni di vario tipo. Il comando `\df`, ad esempio, restituisce un elenco di funzioni. I risultati includono proprietà come nome, tipo di dati restituito, privilegi di accesso e metadati aggiuntivi. I tipi di funzioni possono includere trigger, procedure archiviate, funzioni di finestra e altri tipi. Quando si aggiunge `S+` al comando, ad esempio `\dfantS+`, sono incluse colonne di metadati aggiuntive, ad esempio `owner`, `security`, e `access privileges`. 

## \$1dL[S\$1] [MODELLO]
<a name="rsql-query-tool-describe-dl"></a>

 Elenca i dati sui linguaggi procedurali associati al database. Le informazioni includono il nome, come plpgsql, e altri metadati, che includono se sono attendibili, privilegi di accesso e descrizione. La chiamata di esempio è, ad esempio, `\dLS+`, che elenca le lingue e le loro proprietà. Quando si aggiunge `S+` al comando, sono incluse colonne di metadati aggiuntive, ad esempio `call handler`, e `access privileges`. 

Risultati di esempio:

```
List of languages
   name    | trusted | internal language |      call handler       |                         validator                          | access privileges |          description           
-----------+---------+-------------------+-------------------------+------------------------------------------------------------+-------------------+--------------------------------
 c         | f       | t                 | -                       | fmgr_c_validator(oid)                                      |                   | Dynamically-loaded C functions
 exfunc    | f       | f                 | exfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 internal  | f       | t                 | -                       | fmgr_internal_validator(oid)                               |                   | Built-in functions
 mlfunc    | f       | f                 | mlfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 plpgsql   | t       | f                 | plpgsql_call_handler()  | plpgsql_validator(oid)                                     |                   | 
 plpythonu | f       | f                 | plpython_call_handler() | plpython_compiler(cstring,cstring,cstring,cstring,cstring) | rdsdb=U/rdsdb     | 
 sql       | t       | t                 | -                       | fmgr_sql_validator(oid)                                    | =U/rdsdb          | SQL-language functions
```

## \$1dm[S\$1] [MODELLO]
<a name="rsql-query-tool-describe-dm"></a>

 Elenca le viste materializzate. Ad esempio, `\dmS+` elenca le viste materializzate e le relative proprietà. Quando si aggiunge `S+` al comando, sono incluse colonne di metadati aggiuntive. 

## \$1dn[S\$1] [MODELLO]
<a name="rsql-query-tool-describe-dn"></a>

 Elenca schemi. Quando si aggiunge `S+` al comando, ad esempio`\dnS+`, sono incluse colonne di metadati aggiuntive, ad esempio `description` e `access privileges`. 

## \$1dp [MODELLO]
<a name="rsql-query-tool-describe-dp"></a>

 Elenca i privilegi di accesso a tabella, vista e sequenza. 

## \$1dt[S\$1] [MODELLO]
<a name="rsql-query-tool-describe-dt"></a>

 Elencare tabelle. Quando si aggiunge `S+` al comando, ad esempio `\dtS+`, sono incluse colonne di metadati aggiuntive, ad esempio `description` in questo caso. 

## \$1du
<a name="rsql-query-tool-describe-du"></a>

 Elenca gli utenti per il database. Include il nome e i ruoli, come utente con privilegi avanzati, e gli attributi. 

## \$1dv[S\$1] [MODELLO]
<a name="rsql-query-tool-describe-dv"></a>

 Elenca le viste. Include schema, tipo e dati del proprietario. Quando si aggiunge `S+` al comando, ad esempio `\dvS+`, sono incluse colonne di metadati aggiuntive. 

## \$1H
<a name="rsql-query-tool-describe-h"></a>

 Attiva l'output HTML. Ciò è utile per restituire rapidamente risultati formattati. Ad esempio, `select * from sales; \H` restituisce i risultati della tabella di vendita, in HTML. Per tornare ai risultati tabulari, utilizzare `\q`, o silenzioso. 

## \$1i
<a name="rsql-query-tool-describe-i"></a>

 Esegue comandi da un file. Ad esempio, supponendo di avere rsql\$1steps.sql nella directory di lavoro, il seguente esegue i comandi nel file: `\i rsql_steps.sql`. 

## \$1l[\$1] [MODELLO]
<a name="rsql-query-tool-describe-l"></a>

 Elenca i database. Include proprietario, codifica e informazioni aggiuntive. 

## \$1q
<a name="rsql-query-tool-describe-q"></a>

 L'uscita, o il comando `\q`, disconnette le sessioni del database ed esce da RSQL. 

## \$1sv[\$1] VISUALIZZAZIONE NOME
<a name="rsql-query-tool-describe-sv-name"></a>

 Mostra la definizione di una vista. 

## \$1tempo
<a name="rsql-query-tool-describe-timing"></a>

 Mostra il tempo di esecuzione, ad esempio per una query. 

## \$1z [MODELLO]
<a name="rsql-query-tool-describe-z"></a>

 Lo stesso output di \$1dp. 

## \$1?
<a name="rsql-query-tool-help"></a>

 Mostra le informazioni di aiuto. Il parametro facoltativo specifica l'elemento da spiegare. 

## \$1USCITA
<a name="rsql-query-tool-flow-control-exit"></a>

 Disconnette tutte le sessioni del database ed esce da Amazon Redshift RSQL. Inoltre, puoi specificare un codice di uscita opzionale. Ad esempio, `\EXIT 15` uscirà dal terminale Amazon Redshift RSQL e restituirà il codice di uscita 15.

L'esempio seguente mostra l'output da una connessione e l'uscita da RSQL.

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.34.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306 
Type "help" for help.

(testcluster) user1@dev=# \exit 15

% echo $?
15
```

## \$1EXPORT
<a name="rsql-query-tool-export"></a>

 Specifica il nome di un file di esportazione utilizzato da RSQL per memorizzare le informazioni del database restituite da una istruzione SQL SELECT successiva.

export\$101.sql

```
\export report file='E:\\accounts.out'
\rset rformat off
\rset width 1500
\rset heading "General Title"
\rset titledashes on
select * from td_dwh.accounts;
\export reset
```

Output della console:

```
Rformat is off.
Target width is 1500.
Heading is set to: General Title
Titledashes is on.
(exported 40 rows)
```

## \$1 CONNESSIONE
<a name="rsql-query-tool-flow-control-logon"></a>

 Si connette a un database. È possibile specificare i parametri di connessione utilizzando la sintassi posizionale o come stringa di connessione.

La sintassi dei comandi è la seguente: `\logon {[DBNAME|- USERNAME|- HOST|- PORT|- [PASSWORD]] | conninfo}`

La `DBNAME` è il nome del database a cui connettersi. Il `USERNAME` è il nome utente con cui connettersi. Il `HOST` predefinito è `localhost`. Il `PORT` predefinito è `5439`.

Quando viene specificato un nome host in un comando `\LOGON`, diventa il nome host predefinito per ulteriori comandi `\LOGON`. Per modificare il nome host predefinito, specifica un nuovo `HOST` in un ulteriore comando `\LOGON`.

Output di esempio dal comando `\LOGON` per `user1`.

```
(testcluster) user1@redshiftdb=# \logon dev
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user1".
(testcluster) user1@dev=#
```

Output di esempio per *user2*.

```
(testcluster) user1@dev=# \logon dev user2 testcluster2.example.com
Password for user user2: 
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user2" on host "testcluster2.example.com" at port "5439".
(testcluster2) user2@dev=#
```

## \$1NOTA
<a name="rsql-query-tool-flow-control-remark"></a>

 Un'estensione del comando `\echo`. `\REMARK` stampa la stringa specificata sul flusso di output. `\REMARK ` estende `\echo` aggiungendo la possibilità di rompere l'output su linee separate.

L'esempio seguente mostra l'output del comando.

```
(testcluster) user1@dev=# \remark 'hello//world'
hello
world
```

## \$1RSET
<a name="rsql-query-tool-rset"></a>

Il comando `\rset` imposta i parametri di comando e le variabili. `\rset` ha sia una modalità interattiva che una modalità batch. Non supporta le opzioni come opzioni bash, come *-x*, o argomenti, ad esempio *--<arg>*.

Imposta le variabili, come le seguenti:
+ ERRORLEVEL
+ HEADING e RTITLE
+ RFORMAT
+ MAXERROR
+ TITLEDASHES
+ WIDTH

Nell'esempio seguente viene specificata un'intestazione.

```
\rset heading "Winter Sales Report"
```

Per ulteriori esempi su come utilizzare `\rset`, consultare gli argomenti [Variabili di Amazon Redshift RSQL](rsql-query-tool-variables.md).

## \$1ESEGUI
<a name="rsql-query-tool-flow-control-run"></a>

 Esegue lo script Amazon Redshift RSQL contenuto nel file specificato. `\RUN`estende il comando `\i` aggiungendo un'opzione per saltare le righe di intestazione in un file.

Se il nome del file include una virgola, un punto e virgola o uno spazio, racchiuderlo tra virgolette singole. Inoltre, se il testo segue il nome del file, racchiuderlo tra virgolette. In UNIX i nomi dei file rispettano la distinzione tra lettere maiuscole e minuscole. In Windows, i nomi di file non distinguono tra maiuscole e minuscole.

L'esempio seguente mostra l'output del comando.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as lineitem_cnt from lineitem;
select count(*) as customer_cnt from customer;
select count(*) as orders_cnt from orders;



(testcluster) user1@dev=# \run file=test.sql
 lineitem_cnt
--------------
      4307207
(1 row)

 customer_cnt
--------------
     37796166
(1 row)

 orders_cnt
------------
          0
(1 row)


(testcluster) user1@dev=# \run file=test.sql skip=2
2 records skipped in RUN file.
 orders_cnt
------------
          0
(1 row)
```

## \$1SISTEMA OPERATIVO
<a name="rsql-query-tool-flow-control-os"></a>

 Un alias per il comando`\!`. `\OS` esegue il comando del sistema operativo passato come parametro. Il controllo ritorna ad Amazon Redshift RSQL dopo l'esecuzione del comando. Ad esempio, è possibile eseguire il comando seguente per stampare l'ora corrente del sistema e tornare al terminale RSQL: `\os date`.

```
(testcluster) user1@dev=# \os date
Tue Sep 7 20:47:54 UTC 2021
```

## \$1VAI A
<a name="rsql-query-tool-flow-control-goto"></a>

 Un nuovo comando per Amazon Redshift RSQL. `\GOTO` salta tutti i comandi intervenuti e riprende l'elaborazione in base alle `\LABEL` specificate. La `\LABEL` deve essere un riferimento in avanti. Non puoi saltare a un `\LABEL` che precede lessicamente il `\GOTO`.

Di seguito viene mostrato l'output di esempio.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as cnt from lineitem \gset
select :cnt as cnt;
\if :cnt > 100
    \goto LABELB
\endif

\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'


(testcluster) user1@dev=# \i test.sql
   cnt
---------
 4307207
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1ETICHETTA
<a name="rsql-query-tool-flow-control-label"></a>

 Un nuovo comando per Amazon Redshift RSQL. `\LABEL` stabilisce un punto di ingresso per l'esecuzione del programma, come obiettivo per un comando `\GOTO`.

L'esempio seguente mostra l'output del comando.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) from lineitem limit 5;
\goto LABELB
\remark "this step was skipped by goto label";
\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'



(testcluster) user1@dev=# \i testgoto.sql
  count
 4307193
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1SE (\$1ELSEIF, \$1ELSE, \$1ENDIF)
<a name="rsql-query-tool-flow-control-if"></a>

 `\IF` e i comandi correlati eseguono in modo condizionale porzioni dello script di input. Un'estensione del comando PSQL `\if` (`\elif`, `\else`, `\endif`). `\IF` e `\ELSEIF` supportano espressioni booleane tra cui le condizioni `AND`, `OR` e `NOT`. 

L'esempio seguente mostra un esempio di output dei comandi.

```
(testcluster) user1@dev=# \! cat test.sql
SELECT query FROM stv_inflight LIMIT 1 \gset
select :query as query;
\if :query > 1000000
    \remark 'Query id is greater than 1000000'
\elseif :query = 1000000
    \remark 'Query id is equal than 1000000'
\else
    \remark 'Query id is less than 1000000'
\endif


(testcluster) user1@dev=# \i test.sql 
 query
--------
 994803
(1 row)
 
Query id is less than 1000000
```

Utilizza `ERRORCODE` nella tua logica di ramificazione.

```
\if :'ERRORCODE' = '00000'
    \remark 'The statement was executed without error'
\else
    \remark :LAST_ERROR_MESSAGE
\endif
```

Utilizza `\GOTO` all'interno di un blocco `\IF` per controllare come viene eseguito il codice.

# Variabili di Amazon Redshift RSQL
<a name="rsql-query-tool-variables"></a>

 Alcune parole chiave funzionano come variabili in RSQL. È possibile configurare ciascuna parola chiave su un valore specifico o reimpostare il valore. La maggior parte delle parole chiave è impostata con `\rset`, che ha una modalità interattiva e una modalità batch. I comandi possono essere definiti in minuscolo o in maiuscolo.

## ACTIVITYCOUNT
<a name="rsql-query-tool-activitycount"></a>

 Indica il numero di righe interessate dall'ultima richiesta inviata. Per una richiesta di restituzione dei dati, si tratta del numero di righe restituite a RSQL dal database. Il valore deve essere 0 o un numero intero positivo. Il valore massimo è 18.446.744.073.709.551.615. 

 La variabile appositamente trattata `ACTIVITYCOUNT` è analoga alla variabile `ROW_COUNT`. Tuttavia, `ROW_COUNT` non riporta all'applicazione client un conteggio delle righe interessate al completamento dei comandi per `SELECT`, `COPY` o `UNLOAD`. Lo fa invece `ACTIVITYCOUNT`. 

activitycount\$101.sql:

```
select viewname, schemaname
from pg_views
where schemaname = 'not_existing_schema';
\if :ACTIVITYCOUNT = 0
\remark 'views do not exist'
\endif
```

Output della console:

```
viewname | schemaname
----------+------------
(0 rows)

views do not exist
```

## ERRORLEVEL
<a name="rsql-query-tool-describe-rset-errorlevel"></a>

Assegna i livelli di gravità agli errori. Utilizzare i livelli di gravità per determinare una linea d'azione. Se il comando `ERRORLEVEL` non è stato usato, per impostazione predefinita il suo valore sarà `ON`.

errorlevel\$101.sql:

```
\rset errorlevel 42P01 severity 0

select * from tbl;

select 1 as col;

\echo exit
\quit
```

Output della console:

```
Errorlevel is on.
rsql: ERROR: relation "tbl" does not exist
(1 row)

col
1

exit
```

## HEADING e RTITLE
<a name="rsql-query-tool-describe-rset-heading-rtitle"></a>

Consente agli utenti di specificare un'intestazione visualizzata nella parte superiore di un report. L'intestazione specificata dal comando `RSET RTITLE` include automaticamente la data di sistema corrente del computer client.

Contenuto di rset\$1heading\$1rtitle\$102.rsql:

```
\remark Starting...
\rset rtitle "Marketing Department||Confidential//Third Quarter//Chicago"
\rset width 70
\rset rformat on
select * from rsql_test.tbl_currency order by id limit 2;
\exit
\remark Finishing...
```

Output della console:

```
Starting...
Rtitle is set to: &DATE||Marketing Department||Confidential//Third Quarter//Chicago (Changes will take effect after RFORMAT is
switched ON)
Target width is 70.
Rformat is on.
09/11/20       Marketing       Department Confidential
                  Third Quarter
                     Chicago
id  | bankid  | name |      start_date
100 |       1 | USD | 2020-09-11 10:51:39.106905
110 |       1 | EUR | 2020-09-11 10:51:39.106905
(2 rows)

Press any key to continue . . .
```

## MAXERROR
<a name="rsql-query-tool-describe-rset-maxerror"></a>

Indica un livello massimo di gravità degli errori oltre il quale RSQL termina l'elaborazione dei processi. I codici restituiti sono valori interi che RSQL restituisce al sistema operativo client dopo aver completato ogni processo o attività. Il valore del codice restituito indica lo stato di completamento del processo o dell'attività. Se uno script contiene un'istruzione che produce un livello di gravità dell'errore maggiore del valore `maxerror` designato, RSQL termina immediatamente. Pertanto, per terminare RSQL su un livello di gravità degli errori pari a 8, utilizzare `RSET MAXERROR 7`.

Contenuto di maxerror\$101.sql:

```
\rset maxerror 0
                        
select 1 as col;

\quit
```

Output della console:

```
Maxerror is default.
(1 row)

col
1
```

## RFORMAT
<a name="rsql-query-tool-describe-rset-heading-rformat"></a>

Consente agli utenti di specificare se applicare le impostazioni per i comandi di formattazione.

Contenuto di rset\$1rformat.rsql:

```
\remark Starting...
\pset border 2
\pset format wrapped
\pset expanded on
\pset title 'Great Title'
select * from rsql_test.tbl_long where id = 500;
\rset rformat
select * from rsql_test.tbl_long where id = 500;
\rset rformat off
select * from rsql_test.tbl_long where id = 500;
\rset rformat on
select * from rsql_test.tbl_long where id = 500;
\exit
\remark Finishing...
```

Output della console:

```
Starting...
Border style is 2. (Changes will take effect after RFORMAT is switched ON)
Output format is wrapped. (Changes will take effect after RFORMAT is switched ON)
Expanded display is on. (Changes will take effect after RFORMAT is switched ON)
Title is "Great Title". (Changes will take effect after RFORMAT is switched ON)
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular
format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+

Rformat is off.
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+
Press any key to continue . . .
```

## ROW\$1COUNT
<a name="rsql-query-tool-describe-rset-row_count"></a>

Ottiene il numero di record interessati dalla query precedente. In genere viene utilizzato per controllare un risultato, come nel seguente frammento di codice:

```
SET result = ROW_COUNT;

IF result = 0
...
```

## TITLEDASHES
<a name="rsql-query-tool-describe-rset-heading-titledashes"></a>

Questo controllo consente agli utenti di specificare se una riga di caratteri trattino deve essere stampata sopra i dati della colonna restituiti per le istruzioni SQL.

Esempio:

```
\rset titledashes on
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
\rset titledashes off
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
```

Output della console:

```
dept_no      emp_no          salary
----------- ----------- --------------------
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00

dept_no     emp_no         salary
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00
```

## WIDTH
<a name="rsql-query-tool-describe-rset-heading-width"></a>

Imposta il formato di output su wrapping e specifica la larghezza di destinazione per ogni riga di un report. Senza un parametro, restituisce le impostazioni correnti sia per il formato che per la larghezza di destinazione.

Contenuto di rset\$1width\$101.rsql:

```
\echo Starting...
\rset width
\rset width 50
\rset width
\quit
\echo Finishing...
```

Output della console:

```
Starting...
Target width is 75.
Target width is 50.
Target width is 50.
Press any key to continue . . .
```

Esempio con parametro:

```
\echo Starting...
\rset rformat on
\pset format wrapped
select * from rsql_test.tbl_long where id = 500;
\rset width 50
select * from rsql_test.tbl_long where id = 500;
\quit
\echo Finishing...
```

Output della console:

```
Starting...
Rformat is on.
Output format is wrapped.
id  |                                          long_string
500 | In general, the higher the number the more borders and lines the ta.
    |.bles will have, but details depend on the particular format.
(1 row)

Target width is 50.
id  |                                          long_string
500 | In general, the higher the number the more.
    |. borders and lines the tables will have, b.
    |.ut details depend on the particular format.
    |..
(1 row)
Press any key to continue . . .
```

# Codici di errore RSQL di Amazon Redshift
<a name="rsql-query-tool-error-codes"></a>

Messaggi di riuscita, avvisi ed eccezioni:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

Eccezioni di dati:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

Violazioni dei vincoli di integrità:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

# Variabili di ambiente Amazon Redshift RSQL
<a name="rsql-query-tool-environment-variables"></a>

 Amazon Redshift RSQL può utilizzare variabili di ambiente per selezionare i valori dei parametri predefiniti. 

## RSPASSWORD
<a name="rsql-query-tool-rspassword"></a>

**Importante**  
Non è consigliabile utilizzare questa variabile di ambiente per motivi di sicurezza, poiché alcuni sistemi operativi consentono agli utenti non amministrativi di visualizzare le variabili di ambiente di processo.

 Imposta la password di Amazon Redshift RSQL da utilizzare per la connessione ad Amazon Redshift. Questa variabile d'ambiente richiede Amazon Redshift RSQL 1.0.4 e versioni successive. 

 RSQL dà priorità a RSPASSWORD se questa è impostata. Se RSPASSWORD non è impostata e ci si connette utilizzando un DSN, RSQL prende la password dai parametri del file DSN. Infine, se RSPASSWORD non è impostata e non si utilizza un DSN, RSQL fornisce una richiesta di password dopo aver tentato di connettersi. 

Di seguito è riportato un esempio di impostazione di RSPASSWORD:

```
export RSPASSWORD=TestPassw0rd
```

# Connettersi ad Amazon Redshift con un profilo di autenticazione.
<a name="connecting-with-authentication-profiles"></a>

Se hai molte connessioni ad Amazon Redshift, può essere difficile gestire le impostazioni per tutte. Spesso, ogni connessione JDBC o ODBC utilizza opzioni di configurazione specifiche. Utilizzando un profilo di autenticazione, è possibile memorizzare insieme le opzioni di connessione. In questo modo, gli utenti possono scegliere un profilo con cui connettersi ed evitare di gestire le impostazioni per le singole opzioni. I profili possono essere applicati a diversi scenari e tipi di utente.

Dopo aver creato un profilo di autenticazione, gli utenti possono aggiungere il ready-to-use profilo a una stringa di connessione. In questo modo, possono connettersi ad Amazon Redshift con le impostazioni corrette per ogni ruolo e caso d'uso.

Per informazioni sull'API Amazon Redshift, consulta. [CreateAuthenticationProfile](https://docs.aws.amazon.com/redshift/latest/APIReference/redshift-api.pdf#API_CreateAuthenticationProfile) 

# Creazione di un profilo di autenticazione
<a name="connecting-with-authentication-profiles-creating"></a>

Utilizzando AWS CLI, crei un profilo di autenticazione con il `create-authentication-profile` comando. In questo modo si presuppone l'esistenza di un cluster Amazon Redshift e di un database esistente. Le credenziali devono disporre dell'autorizzazione per connettersi al database Amazon Redshift e dei diritti per recuperare il profilo di autenticazione. È possibile fornire le opzioni di configurazione come stringa JSON o fare riferimento a un file contenente la stringa JSON. 

```
create-authentication-profile --authentication-profile-name<value: String> --authentication-profile-content<value: String>
```

 Nell'esempio seguente viene creato un profilo denominato `ExampleProfileName`. Qui puoi aggiungere chiavi e valori che definiscono il nome del cluster e altre impostazioni di opzione, come stringa JSON. 

```
create-authentication-profile --authentication-profile-name "ExampleProfileName" --authentication-profile-content "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}"
}
```

 Questo comando crea il profilo con le impostazioni JSON specificate. Viene restituito quanto segue, che indica che il profilo è stato creato. 

 `{"AuthenticationProfileName": "ExampleProfileName", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ` 

## Limitazioni e quote per la creazione di un profilo di autenticazione
<a name="connecting-with-authentication-profiles-limitations"></a>

Ogni cliente ha una quota di dieci (10) profili di autenticazione.

Alcuni errori possono verificarsi con i profili di autenticazione. Esempi sono se crei un nuovo profilo con un nome esistente o se superi la quota del profilo. Per ulteriori informazioni, consulta [CreateAuthenticationProfile](https://docs.aws.amazon.com/redshift/latest/APIReference/redshift-api.pdf#API_CreateAuthenticationProfile). 

Non è possibile memorizzare determinate chiavi di opzione e valori per le stringhe di connessione JDBC, ODBC e Python nell'archivio profili di autenticazione: 
+ `AccessKeyID`
+ `access_key_id`
+ `SecretAccessKey`
+ `secret_access_key_id`
+ `PWD`
+ `Password`
+ `password`

Non è possibile memorizzare la chiave o il valore `AuthProfile` nell'archivio profili, per le stringhe di connessione JDBC o ODBC. Per le connessioni Python, non è possibile memorizzare `auth_profile`. 

I profili di autenticazione sono archiviati in Amazon DynamoDB e gestiti da. AWS

# Connessione con un profilo di autenticazione
<a name="connecting-with-authentication-profiles-using"></a>

Dopo aver creato un profilo di autenticazione, è possibile includere il nome del profilo come opzione di connessione per JDBC versione 2.0 `AuthProfile`. L'utilizzo di questa opzione di connessione recupera le impostazioni memorizzate.

```
jdbc:redshift:iam://endpoint:port/database?AuthProfile=<Profile-Name>&AccessKeyID=<Caller-Access-Key>&SecretAccessKey=<Caller-Secret-Key>
```

Di seguito è riportato un esempio di stringa URL JDBC.

```
jdbc:redshift:iam://examplecluster:us-west-2/dev?AuthProfile="ExampleProfile"&AccessKeyID="AKIAIOSFODNN7EXAMPLE"&SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
```

Specificare entrambi i modelli `AccessKeyID` e `SecretAccessKey` nell'URL JDBC, insieme al nome del profilo di autenticazione.

È inoltre possibile separare le opzioni di configurazione con delimitatori punto e virgola, ad esempio nell'esempio seguente, che include le opzioni per la registrazione.

```
jdbc:redshift:iam://my_redshift_end_point:5439/dev?LogLevel=6;LogPath=/tmp;AuthProfile=my_profile;AccessKeyID="AKIAIOSFODNN7EXAMPLE";SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
```

**Nota**  
 Non aggiungere informazioni riservate al profilo di autenticazione. Ad esempio, non memorizzare un valore `AccessKeyID` o `SecretAccessKey` in un profilo di autenticazione. L'archivio profili di autenticazione dispone di regole per vietare la memorizzazione di chiavi segrete. Viene visualizzato un errore se si tenta di memorizzare una chiave e un valore associati a informazioni sensibili. 

# Come ottenere profili di autenticazione
<a name="connecting-with-authentication-profiles-getting"></a>

Per elencare i profili di autenticazione esistenti, chiamare il seguente comando.

```
describe-authentication-profiles --authentication-profile-name <value: String>
```

L'esempio seguente mostra due profili recuperati. Tutti i profili vengono restituiti se non si specifica un nome di profilo.

`{ "AuthenticationProfiles": [ { "AuthenticationProfileName": "testProfile1", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }, { "AuthenticationProfileName": "testProfile2", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ] } `

# Risoluzione dei problemi di connessione in Amazon Redshift
<a name="troubleshooting-connections"></a>

 Se riscontri anomalie nella connessione al cluster da uno strumento client SQL, è possibile circoscrivere il problema verificando diversi elementi. Se stai utilizzando certificati di server o SSL, prima rimuovi questa complessità mentre risolvi il problema relativo alla connessione. Quando trovi una soluzione, aggiungila nuovamente. Per ulteriori informazioni, consulta [Configurazione delle opzioni di sicurezza per le connessioni](connecting-ssl-support.md). 

Per informazioni sui cambiamenti di comportamento nelle funzionalità di Amazon Redshift che possono influire sull’applicazione, consulta [Modifiche del comportamento in Amazon Redshift](behavior-changes.md).

**Importante**  
Amazon Redshift ha modificato la modalità di gestione dei certificati SSL. In caso di problemi di connessione tramite SSL, potrebbe essere necessario aggiornare i tuoi certificati CA radice attendibili correnti. Per ulteriori informazioni, consulta [Passaggio ai certificati ACM per connessioni SSL](connecting-transitioning-to-acm-certs.md).

 La seguente sezione include alcuni messaggi di errore di esempio e le possibili soluzioni per problemi di connessione. Dal momento che diversi strumenti client SQL forniscono messaggi di errore differenti, questo elenco non è completo ma rappresenta un buon punto di partenza per la risoluzione dei problemi. 

## Connessione al di fuori di Amazon EC2 e problema di timeout del firewall
<a name="connecting-firewall-guidance"></a>



 Al momento dell'esecuzione di query lunghe, come il comando COPY, la connessione del tuo client al database sembra scadere o interrompersi. In questo caso, è possibile che la console Amazon Redshift mostri che la query è stata completata, ma lo strumento del client stesso sembra che la stia ancora eseguendo. I risultati della query potrebbero essere mancanti o incompleti, a seconda del momento in cui la connessione si è interrotta. 

### Possibili soluzioni
<a name="connecting-firewall-guidance.Solutions"></a>

Questo problema si verifica quando ci si connette ad Amazon Redshift da un computer diverso da un'istanza Amazon EC2. In questo caso, le connessioni inattive vengono terminate da un componente di rete intermedio, ad esempio un firewall, dopo un periodo di inattività. Questo comportamento è tipico quando ci si connette da una rete privata virtuale (VPN) o dalla rete locale. 

Per evitare questi timeout, ti consigliamo di apportare le seguenti modifiche:
+ Aumenta i valori dei sistemi client che gestiscono i timeout TCP/IP . Esegui queste modifiche sul computer che stai utilizzando per connetterti al cluster. Il periodo di timeout deve essere regolato per il tuo client e la tua rete. Per ulteriori informazioni, consulta [Modifica le impostazioni di timeout TCP/IP](#connecting-firewall-guidance.change-tcpip-settings).
+ A scelta, puoi configurare il comportamento keepalive a livello DSN. Per ulteriori informazioni, consulta [Modifica delle impostazioni del timeout DSN](#connecting-firewall-guidance.change-dsn-settings).

### Modifica le impostazioni di timeout TCP/IP
<a name="connecting-firewall-guidance.change-tcpip-settings"></a>

Per modificare le impostazioni di TCP/IP timeout, configura le impostazioni di timeout in base al sistema operativo che utilizzi per connetterti al cluster. 
+ Linux: se il client è in esecuzione su Linux, emettere il comando seguente come utente root per cambiare le impostazioni di timeout per la sessione corrente: 

  ```
  /sbin/sysctl -w net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
  ```

  Per mantenere le impostazioni, crea o modifica il file `/etc/sysctl.conf` con i seguenti valori, quindi riavvia il sistema. 

  ```
  net.ipv4.tcp_keepalive_time=200
  net.ipv4.tcp_keepalive_intvl=200
  net.ipv4.tcp_keepalive_probes=5
  ```
+ Windows: se il client funziona su Windows, modifica i valori per le seguenti impostazioni del registro in HKEY\$1LOCAL\$1MACHINE\$1 SYSTEM\$1\$1 Services\$1 Tcpip\$1 ParametersCurrentControlSet\$1: 
  + KeepAliveTime: 30000
  + KeepAliveInterval: 1000
  + TcpMaxDataRetransmissions: 10

  Queste impostazioni utilizzano il tipo di dati DWORD. Se non esistono nel percorso di registro, è possibile creare le impostazioni e specificare questi valori raccomandati. Per ulteriori informazioni sulla modifica del registro di Windows, consultare la documentazione di Windows. 

  Dopo aver impostato questi valori, riavvia il computer per rendere effettive le modifiche. 

 
+ Mac: se il client è in esecuzione su un Mac, emettere i comandi seguenti per cambiare le impostazioni di timeout per la sessione corrente: 

  ```
  sudo sysctl net.inet.tcp.keepintvl=200000
  sudo sysctl net.inet.tcp.keepidle=200000
  sudo sysctl net.inet.tcp.keepinit=200000
  sudo sysctl net.inet.tcp.always_keepalive=1
  ```

  Per mantenere le impostazioni, crea o modifica il file `/etc/sysctl.conf` con i seguenti valori: 

  ```
  net.inet.tcp.keepidle=200000
  net.inet.tcp.keepintvl=200000
  net.inet.tcp.keepinit=200000
  net.inet.tcp.always_keepalive=1
  ```

  Riavvia il computer, quindi esegui i comandi seguenti per verificare che i valori siano stati impostati. 

  ```
  sysctl net.inet.tcp.keepidle
  sysctl net.inet.tcp.keepintvl
  sysctl net.inet.tcp.keepinit
  sysctl net.inet.tcp.always_keepalive
  ```

### Modifica delle impostazioni del timeout DSN
<a name="connecting-firewall-guidance.change-dsn-settings"></a>

A scelta, è possibile configurare il comportamento keepalive a livello DSN. Puoi farlo aggiungendo o modificando i parametri seguenti nel file odbc.ini: 

**KeepAlivesCount**  
Il numero di pacchetti keepalive TCP che possono essere persi prima che la connessione sia considerata interrotta.

**KeepAlivesIdle**  
Il numero di secondi di inattività prima che il driver invii un pacchetto keepalive TCP.

**KeepAlivesInterval**  
Il numero di secondi tra ciascuna ritrasmissione di keepalive TCP.

Se questi parametri non esistono o se hanno il valore 0, il sistema utilizza i parametri keepalive specificati per TCP/IP determinare il comportamento di DSN keepalive. In Windows, puoi trovare TCP/IP i parametri nel registro in. `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\` Su Linux e macOS, puoi trovare TCP/IP i parametri nel file sysctl.conf. 

## Connessione rifiutata o non riuscita
<a name="connecting-refusal-failure-issues"></a>

Se la connessione viene rifiutata o non riesce, potresti ricevere un errore simile a uno dei seguenti.
+ «Impossibile stabilire una connessione a.» *<endpoint>*
+ "Could not connect to server: Connection timed out. Il server è in esecuzione sull'host *'<endpoint>'* e accetta connessioni TCP/IP sulla porta?» *'<port>'*
+ "Connection refused. Verifica che il nome host e la porta siano corretti e che il postmaster accetti le connessioni.» TCP/IP 

### Possibili soluzioni
<a name="connecting-refusal-failure-issues.Solutions"></a>

Generalmente, quando ricevi un messaggio di errore che indica l'impossibilità di stabilire una connessione, ciò significa che c'è un problema con l'autorizzazione per l'accesso al cluster o con il traffico di rete che raggiunge il cluster. 

Per connetterti al cluster da uno strumento client esterno alla rete in cui si trova il cluster stesso, aggiungi una regola di ingresso al gruppo di sicurezza del cluster. La configurazione delle regole dipende dal fatto che il cluster Amazon Redshift sia creato in un cloud privato virtuale (VPC):
+ Se hai creato il cluster Amazon Redshift in un cloud privato virtuale (VPC) basato su Amazon VPC, aggiungi una regola in entrata al gruppo di sicurezza VPC che specifica l'indirizzo del client, in Amazon VPC. CIDR/IP Per ulteriori informazioni sulla configurazione dei gruppi di sicurezza VPC per il cluster, consulta [Risorse Redshift in un VPC](managing-clusters-vpc.md).
+  Se hai creato il tuo cluster Amazon Redshift all'esterno di un VPC, aggiungi l' CIDR/IP indirizzo del client al gruppo di sicurezza del cluster in Amazon Redshift. Per ulteriori informazioni sulla configurazione di gruppi di sicurezza dei cluster, consulta [Gruppo di sicurezza Amazon Redshift](security-network-isolation.md#working-with-security-groups).

Se provi a connetterti al cluster da uno strumento client in un'istanza Amazon EC2, viene aggiunta anche una regola di entrata. In questo caso, aggiungi una regola al gruppo di sicurezza del cluster. La regola deve specificare il gruppo di sicurezza Amazon EC2 associato all'istanza Amazon EC2 dello strumento client.

 In alcuni casi, potrebbe essere presente un layer tra il client e il server, ad esempio un firewall. In questi casi, assicurarti che il firewall accetti le connessioni in ingresso sulla porta configurata per il cluster. 

## Incompatibilità tra client e driver
<a name="connecting-architecture-mismatch"></a>

 Se il client e il driver non sono compatibili, è possibile che venga visualizzato un errore del tipo “The specified DSN contains an architecture mismatch between the Driver and Application”. 

### Possibili soluzioni
<a name="connecting-architecture-mismatch.Solutions"></a>

 Quando tenti di connetterti e ricevi un errore relativo a una mancata corrispondenza dell'architettura, ciò significa che lo strumento client e il driver non sono compatibili. Ciò si verifica perché la loro architettura di sistema non corrisponde. Ad esempio, ciò può accadere se disponi di uno strumento client a 32 bit ma hai installato una versione a 64 bit del driver. Talvolta gli strumenti client a 64 bit possono utilizzare driver a 32 bit, ma non è possibile usare applicazioni a 32 bit con driver a 64 bit. Assicurati che il driver e lo strumento client utilizzino la stessa versione dell'architettura di sistema. 

## Query bloccate e talvolta impossibilitate a raggiungere il cluster
<a name="connecting-drop-issues"></a>

Riscontri un problema con il completamento delle query, che sembrano in esecuzione ma che si bloccano nello strumento client SQL. Talvolta le query non vengono visualizzate nel cluster, come nelle tabelle di sistema o nella console Amazon Redshift. 

### Possibili soluzioni
<a name="connecting-drop-issues.Solutions"></a>

 Questo problema può verificarsi a causa della perdita dei pacchetti. In questo caso, vi è una differenza nella dimensione massima unità di trasmissione (MTU) nel percorso di rete tra due host Internet Protocol (IP). La dimensione della MTU determina la dimensione massima, espressa in byte, di un pacchetto che può essere trasferito in un frame Ethernet su una connessione di rete. In AWS, alcuni tipi di istanze Amazon EC2 supportano un MTU di 1500 (frame Ethernet v2) e altri tipi di istanza supportano un MTU di 9001 (jumbo frame TCP/IP). 

 Per evitare problemi associati alle differenze di dimensione della MTU, ti consigliamo di procedere in uno dei modi seguenti: 
+ Se il cluster utilizza la piattaforma EC2-VPC, configurare il gruppo di sicurezza Amazon VPC con una regola ICMP (Internet Control Message Protocol) personalizzata in entrata che restituisce `Destination Unreachable`. Questa regola indica all'host di origine di utilizzare la dimensione della MTU minima sul percorso di rete. Per i dettagli su questo approccio, consulta [Configurazione dei gruppi di sicurezza per autorizzare il messaggio ICMP "Destination Unreachable"](#configure-custom-icmp). 
+ Se il tuo cluster utilizza la piattaforma EC2-Classic o non puoi consentire la regola ICMP in entrata, disabilita i jumbo frame in modo che vengano utilizzati i frame Ethernet v2. TCP/IP Per i dettagli su questo approccio, consulta [Configurazione della MTU di un'istanza](#set-mtu).

### Configurazione dei gruppi di sicurezza per autorizzare il messaggio ICMP "Destination Unreachable"
<a name="configure-custom-icmp"></a>

 In presenza di una differenza della dimensione della MTU nella rete tra due host, verifica innanzitutto che le impostazioni della tua rete non blocchino l'individuazione della MTU del percorso (PMTUD). La PMTUD consente all'host ricevente di rispondere all'host di origine con il seguente messaggio ICMP: `Destination Unreachable: fragmentation needed and DF set (ICMP Type 3, Code 4)`. Questo messaggio indica all'host di origine di utilizzare la dimensione della MTU più piccola sul percorso di rete per inviare nuovamente la richiesta. Senza questa negoziazione, può verificarsi la perdita del pacchetto perché la richiesta è troppo grande per l'host ricevente. Per ulteriori informazioni su questo messaggio ICMP, visitate il sito Web dell'*Internet Engineering* Task [RFC792](http://tools.ietf.org/html/rfc792)Force (IETF). 

 Se non si configura in modo esplicito questa regola in entrata ICMP per il gruppo di sicurezza Amazon VPC, la PMTUD viene bloccata. I gruppi di sicurezza sono firewall virtuali che specificano le regole per il traffico in entrata e in uscita verso un'istanza. AWS Per informazioni sui gruppi di sicurezza dei cluster Amazon Redshift, consultare [Gruppo di sicurezza Amazon Redshift](security-network-isolation.md#working-with-security-groups). Per i cluster che utilizzano la piattaforma EC2-VPC, Amazon Redshift usa i gruppi di sicurezza VPC che consentono o rifiutano il traffico al cluster. Per impostazione predefinita, i gruppi di sicurezza sono bloccati e rifiutano tutto il traffico in entrata. Per informazioni su come impostare le regole in entrata e in uscita per le istanze di EC2-Classic o EC2-VPC, consulta [Differenze tra istanze in EC2-Classic e un VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-classic-platform.html#ec2_classic_platform) nella *Guida per l’utente di Amazon EC2*.

 Per ulteriori informazioni su come aggiungere regole ai gruppi di sicurezza VPC, consultare [Gruppi di sicurezza VPC](managing-vpc-security-groups.md). Per ulteriori informazioni sulle impostazioni PMTUD specifiche richieste in questa regola, consulta [Rilevamento della MTU del percorso](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#path_mtu_discovery) nella *Guida per l’utente di Amazon EC2*. 

### Configurazione della MTU di un'istanza
<a name="set-mtu"></a>

In alcuni casi, il cluster potrebbe utilizzare la piattaforma EC2 Classic o non potresti non consentire la regola ICMP personalizzata per il traffico in ingresso. In questi casi, consigliamo di regolare l'MTU su 1500 sull'interfaccia di rete (NIC) delle istanze EC2 da cui ci si connette al cluster Amazon Redshift. Questa regolazione disabilita i frame TCP/IP jumbo per garantire che le connessioni utilizzino costantemente la stessa dimensione di pacchetto. Tuttavia, questa opzione riduce la velocità effettiva massima della rete per l'intera istanza, non solo per le connessioni ad Amazon Redshift. Per ulteriori informazioni, consultare le procedure seguenti. <a name="set-mtu-win-os"></a>

**Per impostare la MTU su un sistema operativo Microsoft Windows**

Se il client viene eseguito in un sistema operativo Microsoft Windows, è possibile rivedere e impostare il valore MTU per la scheda Ethernet tramite il comando `netsh`. 

1. Eseguire il seguente comando per determinare il valore MTU corrente: 

   ```
   netsh interface ipv4 show subinterfaces
   ```

1.  Rivedere il valore `MTU` per la scheda `Ethernet` nell'output. 

1. Se il valore non è `1500`, eseguire il seguente comando per impostarlo: 

   ```
   netsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistent
   ```

   Dopo aver impostato questo valore, riavviare il computer per rendere effettive le modifiche.<a name="set-mtu-linux-os"></a>

**Per impostare la MTU su un sistema operativo Linux**

 Se il client viene eseguito in un sistema operativo Linux, è possibile rivedere e impostare il valore MTU tramite il comando `ip`. 

1. Eseguire il seguente comando per determinare il valore MTU corrente: 

   ```
   $ ip link show eth0
   ```

1. Rivedere il valore successivo a `mtu` nell'output. 

1. Se il valore non è `1500`, eseguire il seguente comando per impostarlo: 

   ```
   $ sudo ip link set dev eth0 mtu 1500
   ```<a name="set-mtu-mac-os"></a>

**Per impostare la MTU su un sistema operativo Mac**
+ Segui le istruzioni sul sito di assistenza macOS in merito. `How to change the MTU for troubleshooting purposes` Per ulteriori informazioni, cercare nel [sito del supporto](https://support.apple.com). 

## Impostazione del parametro delle dimensioni del recupero JDBC
<a name="jdbc_fetch_size"></a>

Per impostazione predefinita, il driver JDBC Redshift utilizza un ring buffer per gestire la memoria in modo efficiente e prevenire errori. out-of-memory Il parametro fetch size è applicabile solo quando il ring buffer è disabilitato in modo esplicito. [Per ulteriori informazioni, consulta il link.](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-configuration-options.html#jdbc20-enablefetchringbuffer-option) In questa configurazione, è necessario impostare la dimensione di recupero per controllare quante righe vengono recuperate in ogni batch.

Utilizza il parametro fetch size quando:
+ È necessario un controllo approfondito sul batch basato su righe
+ Utilizzo di applicazioni legacy che richiedono il comportamento tradizionale delle dimensioni di recupero

Quando il ring buffer è disabilitato, il driver JDBC raccoglie tutti i risultati di una query contemporaneamente per impostazione predefinita. Le query che restituiscono set di risultati di grandi dimensioni possono consumare una quantità eccessiva di memoria. Per recuperare i set di risultati in batch anziché tutti in una volta, imposta il parametro JDBC fetch size nella tua applicazione.

**Nota**  
La dimensione del recupero non è supportata da ODBC.

Per le migliori prestazioni, imposta la dimensione del recupero sul valore più alto che non porti a errori di esaurimento della memoria. Un valore della dimensione del recupero più basso causa più viaggi del server, quindi tempi di esecuzione prolungati. Il server riserva le risorse, tra cui lo slot della query WLM e la memoria associata, fino al momento in cui il client recupera tutto l'insieme di risultati o la query viene cancellata. Quando ottimizzi in modo appropriato la dimensione del recupero, queste risorse vengono rilasciate più velocemente rendendole disponibili alle altre query.

**Nota**  
Se hai bisogno di estrarre set di dati di grandi dimensioni, consigliamo l’utilizzo di un’istruzione [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) per trasferire i dati in Amazon S3. Quando usi UNLOAD, i nodi di calcolo lavorano in parallelo per velocizzare il trasferimento dei dati.

Per ulteriori informazioni sull'impostazione del parametro della dimensione del recupero di JDBC, consultare [Ottenimento di risultati basato su un cursore](https://jdbc.postgresql.org/documentation/query/#getting-results-based-on-a-cursor) nella documentazione PostgreSQL.

# Uso dell'API dati di Amazon Redshift
<a name="data-api"></a>

L’API dati Amazon Redshift semplifica l’accesso al data warehouse Amazon Redshift eliminando la necessità di gestire driver di database, connessioni, configurazioni di rete, buffering dei dati, credenziali e altro ancora. Puoi eseguire istruzioni SQL utilizzando le operazioni Data API con l' AWS SDK. Per ulteriori informazioni sulle operazioni dell’API dati, consulta la [documentazione di riferimento dell’API dati Amazon Redshift](https://docs.aws.amazon.com/redshift-data/latest/APIReference/).

L'API dati non richiede una connessione permanente al database. Fornisce invece un endpoint HTTP sicuro e l'integrazione con. AWS SDKs Puoi usare l'endpoint per eseguire istruzioni SQL senza gestire connessioni. Le chiamate all'API dati sono asincrone. L'API Data può utilizzare credenziali archiviate nel database Gestione dei segreti AWS o credenziali temporanee del database. Non è necessario utilizzare alcuna password nelle chiamate API con entrambi i metodi di autorizzazione. Per ulteriori informazioni su Gestione dei segreti AWS, consulta [What](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) Is? Gestione dei segreti AWS nella *Guida Gestione dei segreti AWS per l'utente*. È possibile utilizzare anche AWS IAM Identity Center per l'autorizzazione.

Con l'API Data, puoi accedere in modo programmatico ai dati di Amazon Redshift con applicazioni basate su servizi Web, AWS Lambda SageMaker tra cui notebook Amazon AI e. AWS Cloud9 Per ulteriori informazioni su queste applicazioni [AWS Lambda](https://aws.amazon.com/lambda/), consulta [Amazon SageMaker AI](https://aws.amazon.com/sagemaker/) e [AWS Cloud9](https://aws.amazon.com/cloud9/). 

Per ulteriori informazioni sull’API dati, consulta [Get started with the Amazon Redshift Data API](https://aws.amazon.com/blogs/big-data/get-started-with-the-amazon-redshift-data-api/) in *AWS Big Data Blog*.

## Operazioni con l'API dati Amazon Redshift
<a name="data-api-workflow"></a>

Prima di utilizzare l'API dati Amazon Redshift, verificare quanto riportato di seguito: 

1. Determinare se l'utente, come chiamante dell'API dati, è autorizzato. Per ulteriori informazioni sull'autorizzazione , consultare [Autorizzazione di accesso all'API dati di Amazon Redshift](data-api-access.md).

1. Determina se prevedi di chiamare l’API dati con credenziali di autenticazione da Secrets Manager o con credenziali temporanee oppure utilizza AWS IAM Identity Center. Per ulteriori informazioni, consulta [Scelta delle credenziali di autenticazione del database quando si richiama l'API dati di Amazon Redshift](#data-api-calling-considerations-authentication).

1. Se si utilizza Secrets Manager impostare un segreto per le credenziali di autenticazione. Per ulteriori informazioni, consultare [Archiviazione delle credenziali del database in Gestione dei segreti AWS](data-api-secrets.md).

1. Esaminare le considerazioni e le limitazioni quando si chiama l'API dati. Per ulteriori informazioni, consulta [Considerazioni da fare durante la chiamata all'API dati di Amazon Redshift](#data-api-calling-considerations).

1. Chiama l'API Data da AWS Command Line Interface (AWS CLI), dal tuo codice o utilizzando l'editor di query nella console Amazon Redshift. Per esempi di chiamata dalla AWS CLI, consultare [Chiamata dell'API dati](data-api-calling.md).

## Considerazioni da fare durante la chiamata all'API dati di Amazon Redshift
<a name="data-api-calling-considerations"></a>

Considerare quanto riportato di seguito quando si effettua la chiamata dell'API dati:
+ L'API dati di Amazon Redshift può accedere ai database nei cluster sottoposti a provisioning di Amazon Redshift e nei gruppi di lavoro Redshift serverless. Per un elenco delle aree Regioni AWS in cui è disponibile l'API Redshift Data, consulta gli endpoint elencati per [Redshift](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) Data API nel. *Riferimenti generali di Amazon Web Services* 
+ La durata massima di una query è di 24 ore. 
+ Il numero massimo di query (`STARTED`e `SUBMITTED` query) attive per cluster Amazon Redshift è 500. 
+ La dimensione massima del risultato della query è 500 MB (dopo la compressione gzip). Se una chiamata restituisce più di 500 MB di dati di risposta, la chiamata viene interrotta. 
+ Il tempo massimo di conservazione dei risultati delle query è 24 ore. 
+ La dimensione massima dell'istruzione della query è 100 KB. 
+ L'API dati è disponibile per eseguire query su cluster a nodo singolo e a più nodi dei seguenti tipi di nodo:
  + dc2.large
  + dc2.8xlarge
  + ra3.large
  + ra3.xlplus
  + ra3.4xlarge
  + ra3.16xlarge
+ Il cluster deve trovarsi in un Virtual Private Cloud (VPC) basato sul servizio Amazon VPC. 
+ Per impostazione predefinita, gli utenti con lo stesso ruolo IAM del runner di un’operazione API `ExecuteStatement` o `BatchExecuteStatement` possono intervenire sulla stessa istruzione con le operazioni API `CancelStatement`, `DescribeStatement`, `GetStatementResult`, `GetStatementResultV2` e `ListStatements`. Per agire sulla stessa istruzione SQL di un altro utente, l'utente deve essere in grado di assumere il ruolo IAM dell'utente che ha eseguito l'istruzione SQL. Per ulteriori informazioni su come assumere un ruolo, consulta [Autorizzazione di accesso all'API dati di Amazon Redshift](data-api-access.md). 
+ Le istruzioni SQL nel parametro `Sqls` dell'operazione API `BatchExecuteStatement` vengono eseguite come una singola transazione. Vengono eseguiti in serie nell'ordine dell'array. Le istruzioni SQL successive non vengono avviate fino al completamento dell'istruzione precedente nell'array. Se un'istruzione SQL ha esito negativo, dal momento che viene eseguita come un'unica transazione, viene eseguito il rollback di tutta l'operazione.
+ Il tempo massimo di conservazione per un token client utilizzato nell'operazione API `ExecuteStatement` o `BatchExecuteStatement` è di 8 ore.
+ Se i cluster forniti da Amazon Redshift e il gruppo di lavoro Redshift Serverless sono crittografati utilizzando una chiave gestita dal cliente, Redshift crea una concessione che consente all'API Redshift Data di utilizzare la chiave per le proprie operazioni. Per ulteriori informazioni, consulta [Utilizzo AWS KMS con l'API dati Amazon Redshift](data-api-kms.md). 
+ Ogni API nell'API di dati Redshift ha una quota di transazioni al secondo prima della limitazione (della larghezza di banda della rete) delle richieste. Per la quota, consulta [Quote per l'API di dati Amazon Redshift](amazon-redshift-limits.md#data-api-quotas-account). Se la frequenza della richiesta supera la quota, viene restituito `ThrottlingException` con codice di stato HTTP 400. [https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html](https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html) In alcuni casi, questa strategia viene implementata automaticamente per correggere gli errori di limitazione. AWS SDKs
**Nota**  
Per impostazione predefinita AWS Step Functions, i nuovi tentativi non sono abilitati. Se devi chiamare un'API di dati Redshift in una macchina a stati Step Functions, includi il parametro di idempotenza `ClientToken` nella chiamata API di dati Redshift. Il valore di `ClientToken` deve persistere tra un tentativo e l'altro. Nel frammento di esempio seguente di una richiesta all'API `ExecuteStatement`, l'espressione `States.ArrayGetItem(States.StringSplit($$.Execution.Id, ':'), 7)` utilizza una funzione intrinseca per estrarre la parte UUID di `$$.Execution.Id`, che è univoca per ogni esecuzione della macchina a stati. Per ulteriori informazioni, consulta [Intrinsic functions](https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html) nella *Guida per sviluppatori di AWS Step Functions *.  

  ```
  {
    "Database": "dev",
    "Sql": "select 1;",
    "ClusterIdentifier": "MyCluster",
    "ClientToken.$": "States.ArrayGetItem(States.StringSplit($$.Execution.Id, ':'), 7)"
  }
  ```

## Scelta delle credenziali di autenticazione del database quando si richiama l'API dati di Amazon Redshift
<a name="data-api-calling-considerations-authentication"></a>

Quando si chiama l'API dati, è possibile utilizzare uno dei seguenti metodi di autenticazione per alcune operazioni API. Ogni metodo richiede una diversa combinazione di parametri. 

**AWS IAM Identity Center**  
È possibile accedere all’API dati con un utente single sign-on registrato in AWS IAM Identity Center. Per ulteriori informazioni sulle fasi per configurare Centro identità IAM, consulta [Utilizzo dell’API dati con la propagazione affidabile delle identità](data-api-trusted-identity-propagation.md).

**Gestione dei segreti AWS**  
Con questo metodo, fornisci un segreto memorizzato in Gestione dei segreti AWS cui ha `username` e`password`. `secret-arn` Il segreto specificato contiene le credenziali per la connessione al `database` specificato. Quando ci si connette a un cluster, si forniscono anche il nome del database; se si fornisce un identificatore del cluster (`dbClusterIdentifier`), questo deve corrispondere all'identificatore del cluster archiviato nel segreto. Quando ci si connette a un gruppo di lavoro serverless, si fornisce anche il nome del database. Per ulteriori informazioni, consulta [Archiviazione delle credenziali del database in Gestione dei segreti AWS](data-api-secrets.md).   
Con questo metodo, puoi anche fornire un `region` valore che specifica Regione AWS dove si trovano i tuoi dati. 

**Credenziali temporanee**  
Con questo metodo, scegli una delle seguenti opzioni:  
+ Quando ti connetti a un gruppo di lavoro serverless, specifica il nome del gruppo di lavoro e del database. Il nome utente del database deriva dall'identità IAM. Ad esempio, `arn:iam::123456789012:user:foo` ha il nome utente di database `IAM:foo`. Inoltre, è richiesta l'autorizzazione a richiamare l'operazione `redshift-serverless:GetCredentials`.
+ Quando ti connetti a un cluster come identità IAM, specifica l'identificatore del cluster e il nome del database. Il nome utente del database deriva dall'identità IAM. Ad esempio, `arn:iam::123456789012:user:foo` ha il nome utente di database `IAM:foo`. Inoltre, è richiesta l'autorizzazione a richiamare l'operazione `redshift:GetClusterCredentialsWithIAM`.
+ Quando ti connetti a un cluster come utente del database, specifica l'identificatore del cluster, il nome del database e il nome utente del database. Inoltre, è richiesta l'autorizzazione a richiamare l'operazione `redshift:GetClusterCredentials`. Per informazioni su come unirsi a gruppi di database durante la connessione con questo metodo, vedere [Unirsi a gruppi di database durante la connessione a un cluster](data-api-dbgroups.md).
Con questo metodo, puoi anche fornire un `region` valore che specifica Regione AWS dove si trovano i tuoi dati. 

## Mappatura dei tipi di dati JDBC quando si chiama l'API dati di Amazon Redshift
<a name="data-api-calling-considerations-jdbc"></a>

 La tabella seguente associa i tipi di dati Java Database Connectivity (JDBC) ai tipi di dati specificati nelle chiamate API dati.


****  

|  Tipo di dati JDBC  |  Tipo di dati API dati  | 
| --- | --- | 
|  `INTEGER, SMALLINT, BIGINT`  |  `LONG`  | 
|  `FLOAT, REAL, DOUBLE`  |  `DOUBLE`  | 
|  `DECIMAL`  |  `STRING`  | 
|  `BOOLEAN, BIT`  |  `BOOLEAN`  | 
|  `BLOB, BINARY, LONGVARBINARY`  |  `BLOB`  | 
|  `VARBINARY`  |  `STRING`  | 
|  `CLOB`  |  `STRING`  | 
|  Altri tipi (inclusi i tipi correlati a data e ora)  |  `STRING`  | 

I valori stringa vengono passati al database Amazon Redshift e convertiti implicitamente in un tipo di dati del database.

**Nota**  
Attualmente, l'API Data non supporta matrici di identificatori univoci universali (). UUIDs

## Esecuzione di istruzioni SQL con parametri quando si chiama l'API dati di Amazon Redshift
<a name="data-api-calling-considerations-parameters"></a>

È possibile controllare il testo SQL inviato al modulo di gestione di database chiamando l'operazione dell'API dati utilizzando i parametri per parti dell'istruzione SQL. I parametri specificati forniscono un modo flessibile per passare i parametri nel testo SQL senza codificarli. Aiutano a riutilizzare il testo SQL ed evitare problemi di SQL injection.

L'esempio seguente mostra i parametri denominati di un `parameters` campo di un `execute-statement` AWS CLI comando.

```
--parameters "[{\"name\": \"id\", \"value\": \"1\"},{\"name\": \"address\", \"value\": \"Seattle\"}]"
```

Considerare le informazioni seguenti durante l'utilizzo dei parametri specificati:
+ I parametri denominati possono essere utilizzati solo per sostituire i valori nelle istruzioni SQL.
  + È possibile sostituire i valori in un'istruzione INSERT, ad esempio`INSERT INTO mytable VALUES(:val1)`.

    I parametri specificati possono essere in qualsiasi ordine e possono essere utilizzati più di una volta nel testo SQL. Nell'opzione dei parametri mostrata nell'esempio precedente, i valori `1` e `Seattle` vengono inseriti nelle colonne della tabella `id` e `address`. Nel testo SQL, specificare i parametri denominati come segue:

    ```
    --sql "insert into mytable values (:id, :address)"
    ```
  + È possibile sostituire i valori in una clausola di condizioni, ad esempio `WHERE attr >= :val1`, `WHERE attr BETWEEN :val1 AND :val2` e `HAVING COUNT(attr) > :val`.
  + Non è possibile sostituire i nomi delle colonne in un'istruzione SQL, ad esempio `SELECT column-name`, `ORDER BY column-name` o `GROUP BY column-name`.

    Ad esempio, l'istruzione SELECT seguente restituisce un errore con sintassi non valida.

    ```
    --sql "SELECT :colname, FROM event" --parameters "[{\"name\": \"colname\", \"value\": \"eventname\"}]"
    ```

    Se si descrive (operazione `describe-statement`) l'istruzione con l'errore di sintassi, il valore `QueryString` restituito non sostituisce il nome della colonna per il parametro (`"QueryString": "SELECT :colname, FROM event"`) e viene segnalato un errore (ERROR: syntax error at or near \$1"FROM\$1"\$1n Position: 12).
  + Non è possibile sostituire i nomi delle colonne in una funzione aggregata, ad esempio `COUNT(column-name)`, `AVG(column-name)` o `SUM(column-name)`.
  + Non è possibile sostituire i nomi delle colonne in una clausola JOIN.
+ Quando viene eseguito l'SQL, i dati vengono trasformati implicitamente in un tipo di dati. Per ulteriori informazioni sul casting del tipo di dati, consultare [Tipi di dati](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 
+ Non è possibile impostare un valore su NULL. L'API dati interpreta questo valore come la stringa letterale `NULL`. Nell'esempio seguente `id` viene sostituito con la stringa letterale `null`. Non il valore SQL NULL. 

  ```
  --parameters "[{\"name\": \"id\", \"value\": \"null\"}]"
  ```
+ Non è possibile impostare un valore con lunghezza zero. L'istruzione SQL dell'API dati non riesce. Nell'esempio seguente si prova a impostare `id` con un valore di lunghezza zero e ciò si traduce in un errore dell'istruzione SQL. 

  ```
  --parameters "[{\"name\": \"id\", \"value\": \"\"}]"
  ```
+ Non è possibile impostare un nome di tabella nell'istruzione SQL con un parametro. L'API dati segue la regola di `PreparedStatement` JDBC. 
+ L'output dell'operazione `describe-statement` restituisce i parametri di query di un'istruzione SQL.
+ Solo l'operazione `execute-statement` supporta le istruzioni SQL con parametri.

## Esecuzione di istruzioni SQL con un token di idempotenza quando si chiama l'API dati di Amazon Redshift
<a name="data-api-calling-considerations-idempotency"></a>

Quando si effettua una richiesta API mutante, di solito restituisce un risultato prima del completamento dei flussi di lavoro asincroni dell'operazione. Le operazioni potrebbero inoltre scadere o riscontrare altri problemi relativi al server prima del completamento, anche se la richiesta ha già restituito un risultato. Ciò potrebbe rendere difficile determinare l'esito della richiesta e potrebbe comportare più tentativi per garantire che l'operazione venga completata correttamente. Tuttavia, se la richiesta originale e i tentativi successivi hanno esito positivo, l'operazione viene completata più volte, il che significa che potresti aggiornare più risorse del previsto.

L'*idempotenza* assicura che una richiesta API venga completata solo una volta. Quando si utilizza una richiesta idempotente, se la richiesta originale viene completata correttamente, tutti i tentativi successivi vengono completati correttamente senza alcuna azione aggiuntiva. Le operazioni delle API dei dati `ExecuteStatement` e `BatchExecuteStatement` hanno un parametro idempotente `ClientToken` opzionale. Il `ClientToken` scade dopo 8 ore.

**Importante**  
Se chiami `ExecuteStatement` e esegui `BatchExecuteStatement` operazioni da un AWS SDK, questo genera automaticamente un token client da utilizzare in caso di nuovo tentativo. In questo caso, non è consigliabile utilizzare il parametro `client-token` con le operazioni `ExecuteStatement` e `BatchExecuteStatement`. Visualizza il CloudTrail registro per vedere il. `ClientToken` Per un esempio di CloudTrail registro, vedere[Esempi per l'API di dati di Amazon Redshift](logging-with-cloudtrail.md#data-api-cloudtrail).

Il `execute-statement` AWS CLI comando seguente illustra il `client-token` parametro opzionale per l'idempotenza.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "select * from stl_query limit 1" 
    --database dev 
    --client-token b855dced-259b-444c-bc7b-d3e8e33f94g1
```

La tabella seguente mostra alcune risposte comuni che si potrebbero ricevere per richieste API idempotenti e fornisce consigli per effettuare nuovi tentativi.


| Risposta | Raccomandazione | Commenti | 
| --- | --- | --- | 
|  200 (OK)  |  Non riprovare  |  La richiesta originale è stata completata con successo. Qualsiasi tentativo successivo ottiene esito positivo.  | 
|  Codici di risposta serie 400   |  Non riprovare  |  La richiesta presenta uno dei problemi seguenti:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/data-api.html) Se la richiesta riguarda una risorsa che sta cambiando stato, un nuovo tentativo potrebbe avere esito positivo.  | 
|  Codici di risposta serie 500   |  Riprova  |  L'errore è causato da un problema AWS sul lato server ed è generalmente temporaneo. Ripeti la richiesta con una strategia di backoff appropriata.  | 

Per ulteriori informazioni sui codici di risposta di Amazon Redshift, consulta [Errori comuni](https://docs.aws.amazon.com/redshift/latest/APIReference/CommonErrors.html) nella *Documentazione di riferimento dell'API Amazon Redshift*.

## Esecuzione di istruzioni SQL con il riutilizzo della sessione quando chiami l’API dati Amazon Redshift
<a name="data-api-calling-considerations-session-reuse"></a>

Quando effettui una richiesta API per eseguire un’istruzione SQL, la sessione in cui viene eseguita l’istruzione SQL viene in genere terminata al termine dell’istruzione SQL. Per mantenere la sessione attiva per un determinato numero di secondi, le operazioni `ExecuteStatement` e `BatchExecuteStatement` dell’API dati dispongono di un parametro `SessionKeepAliveSeconds` opzionale. Un campo di risposta `SessionId` contiene l’identità della sessione che può quindi essere utilizzata nelle operazioni `ExecuteStatement` e `BatchExecuteStatement` successive. Nelle chiamate successive puoi specificare un altro codice `SessionKeepAliveSeconds` per modificare il tempo di timeout di inattività. Se il codice `SessionKeepAliveSeconds` non viene modificato, l’impostazione iniziale del timeout di inattività rimane invariata. Durante il riutilizzo della sessione considera quanto segue:
+ Il valore massimo di `SessionKeepAliveSeconds` è 24 ore.
+ La sessione può durare al massimo 24 ore. Dopo 24 ore, la sessione viene chiusa forzatamente e le query in corso vengono terminate.
+ Il numero massimo di sessioni per cluster Amazon Redshift o gruppo di lavoro Redshift serverless è 500.
+ Puoi eseguire solo una query alla volta in una sessione. Devi attendere il completamento di una query prima di eseguire quella successiva nella stessa sessione. In altre parole non puoi eseguire query in parallelo in una sessione fornita.
+ L’API dati non può mettere in coda le query per una determinata sessione.

Per recuperare `SessionId` che viene utilizzato dalle chiamate alle operazioni `ExecuteStatement` e `BatchExecuteStatement`, chiama le operazioni `DescribeStatement` e `ListStatements`.

L’esempio seguente dimostra l’utilizzo dei parametri `SessionKeepAliveSeconds` e `SessionId` per mantenere attiva e riutilizzata una sessione. Innanzitutto, chiamate il `execute-statement` AWS CLI comando con il parametro opzionale `session-keep-alive-seconds` impostato su. `2`

```
aws redshift-data execute-statement 
    --session-keep-alive-seconds 2 
    --sql "select 1" 
    --database dev 
    --workgroup-name mywg
```

La risposta contiene l’identificatore della sessione.

```
{
    "WorkgroupName": "mywg",
    "CreatedAt": 1703022996.436,
    "Database": "dev",
    "DbUser": "awsuser",
    "Id": "07c5ffea-76d6-4786-b62c-4fe3ef529680",
    "SessionId": "5a254dc6-4fc2-4203-87a8-551155432ee4"
}
```

Quindi, chiamate il `execute-statement` AWS CLI comando con `SessionId` il risultato della prima chiamata. E, facoltativamente, specifica il parametro `session-keep-alive-seconds` impostato su `10` per modificare il valore del timeout di inattività.

```
aws redshift-data execute-statement 
    --sql "select 1" 
    --session-id 5a254dc6-4fc2-4203-87a8-551155432ee4
    --session-keep-alive-seconds 10
```

## Recupero dei risultati delle istruzioni SQL
<a name="data-api-calling-considerations-result-format"></a>

Utilizzi diverse operazioni dell’API dati per recuperare i risultati SQL a seconda del formato dei risultati. Quando chiami le operazioni `ExecuteStatement` e `BatchExecuteStatement`, puoi specificare se i risultati sono formattati come JSON o CSV. Se non lo specifichi, il valore predefinito è JSON. Per recuperare i risultati JSON, utilizza l’operazione `GetStatementResult`. Per recuperare i risultati CSV, utilizza l’operazione `GetStatementResultV2`.

I risultati restituiti in formato JSON sono record che includono metadati su ogni colonna. Ogni record è in formato JSON. Ad esempio, la risposta di `GetStatementResult` è simile alla seguente:

```
{
   "ColumnMetadata": [ 
      { 
         "isCaseSensitive": false,
         "isCurrency": false,
         "isSigned": true,
         "label": "?column?",
         "name": "?column?",
         "nullable": 1,
         "precision": 10,
         "scale": 0,
         "schemaName": "",
         "tableName": "",
         "typeName": "int4",
         "length": 0
      }
   ],
   "NextToken": "<token>",
   "Records": [
        [
            {
                "longValue": 1
            }
        ]
    ],
   "TotalNumRows": <number>
}
```

I risultati restituiti in formato CSV sono record che includono metadati su ogni colonna. I risultati vengono restituiti in blocchi da 1 MB, in cui ogni blocco può memorizzare un numero qualsiasi di righe in formato CSV. Ogni richiesta restituisce fino a 15 MB di risultati. Se i risultati sono superiori a 15 MB, viene restituito un token di pagina successiva per continuare a recuperare i risultati. Ad esempio, la risposta di `GetStatementResultV2` è simile alla seguente:

```
{
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "?column?",
            "name": "?column?",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "?column?",
            "name": "?column?",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "?column?",
            "name": "?column?",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "",
            "typeName": "int4",
            "length": 0
        }
    ],
    "NextToken": "<token>",
    "Records": [
        [
            {
                "CSVRecords":"1,2,3\r\n4,5,6\r\n7,8,9\rn, .... 1MB" // First 1MB Chunk
            },
            {
                "CSVRecords":"1025,1026,1027\r\n1028,1029,1030\r\n....2MB" // Second 1MB chunk
            }
            ...
        ]
    ],
    "ResultFormat" : "CSV",
    "TotalNumRows": <number>
}
```

# Autorizzazione di accesso all'API dati di Amazon Redshift
<a name="data-api-access"></a>

Per accedere all'API dati, un utente deve essere autorizzato. È possibile consentire a un utente di accedere all'API dati aggiungendo una policy gestita, che è una policy AWS Identity and Access Management (IAM) predefinita, a tale utente. Come best practice, consigliamo di collegare le policy di autorizzazioni a un ruolo IAM, che quindi viene assegnato a utenti e gruppi secondo le necessità. Per ulteriori informazioni, consulta [Identity and access management in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). Per vedere le autorizzazioni consentite e negate dalle policy gestite, consulta la console IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)). 

# Configurazione delle autorizzazioni IAM
<a name="data-api-iam"></a>

Amazon Redshift fornisce la policy gestita `AmazonRedshiftDataFullAccess`. Questa policy fornisce accesso completo alle operazioni API dati di Amazon Redshift. Questa policy consente inoltre l'accesso mirato a specifiche operazioni di Amazon Redshift Gestione dei segreti AWS e API IAM necessarie per autenticare e accedere a un cluster Amazon Redshift o a un gruppo di lavoro Serverless Redshift. 

È possibile anche creare una policy IAM personalizzata che consente l'accesso a risorse specifiche. Per creare la policy, utilizzare la policy `AmazonRedshiftDataFullAccess` come modello di partenza. Dopo aver creato la policy, aggiungerla a ciascun utente che richiede l'accesso all'API dati.

Considera i seguenti requisiti della policy IAM associata all'utente:
+ Se la utilizzi Gestione dei segreti AWS per l'autenticazione, conferma che la policy consenta l'utilizzo dell'`secretsmanager:GetSecretValue`azione per recuperare il segreto etichettato con la chiave. `RedshiftDataFullAccess`
+ Se per l'autenticazione in un cluster vengono utilizzate credenziali temporanee, confermare che la policy consente l'uso dell'operazione `redshift:GetClusterCredentials` al nome utente del database `redshift_data_api_user` per qualsiasi database nel cluster. Questo nome utente deve essere già stato creato nel database.
+ Se utilizzi credenziali temporanee per eseguire l'autenticazione in un gruppo di lavoro serverless, verifica che la policy consenta l'uso dell'operazione `redshift-serverless:GetCredentials` per richiamare il gruppo di lavoro taggato con la chiave `RedshiftDataFullAccess`. L'utente del database viene mappato 1:1 all'identità di origine AWS Identity and Access Management (IAM). Ad esempio, l'utente sample\$1user è mappato all'utente del database `IAM:sample_user` e il ruolo IAM sample\$1role è mappato a `IAMR:sample_role`. Per ulteriori informazioni sulle diverse identità IAM, consulta [Identità IAM (utenti, gruppi di utenti e ruoli)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) nella Guida per l'utente IAM.
+ L’azione IAM `redshift-data:GetStatementResult` consente l’accesso a entrambe le operazioni API `GetStatementResult` e `GetStatementResultV2`.

I seguenti collegamenti forniscono ulteriori informazioni sulla Guida per AWS Identity and Access Management l'*utente IAM*.
+ Per ulteriori informazioni sulla creazione dei ruoli IAM, consultare [Creazione di ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). 
+ Per informazioni sulla creazione di una policy IAM, consultare [Creazione di policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html).
+ Per informazioni sull'aggiunta di una policy IAM a un utente, consultare [Aggiunta e rimozione di autorizzazioni per identità IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html). 

## Esecuzione di una query su un cluster di proprietà di un altro account
<a name="data-api-run-query-on-others-cluster"></a>

Per eseguire una query su un cluster di proprietà di un altro account, l'account proprietario deve fornire un ruolo IAM che l'API dati può assumere nell'account chiamante. Si supponga, ad esempio, che l'Account B sia proprietario di un cluster a cui l'Account A deve accedere. L'account B può allegare la policy AWS gestita `AmazonRedshiftDataFullAccess` al ruolo IAM dell'account B. Quindi l'Account B considera attendibile l'Account A utilizzando una policy di attendibilità come la seguente: ``

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/someRoleA"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Infine, il ruolo IAM dell'Account A deve essere in grado di assumere il ruolo IAM dell'Account B.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::111122223333:role/someRoleB"
    }
}
```

------

## Specificare un ruolo IAM che limiti le risorse ai gruppi di lavoro Serverless Redshift e ai cluster Amazon Redshift in un Account AWS
<a name="data-api-restrict-to-account"></a>

Puoi specificare la risorsa ARNs nella tua policy basata sull'identità per controllare l'accesso ai gruppi di lavoro Serverless Redshift e ai cluster Amazon Redshift in un unico. Account AWS Questo esempio mostra come creare una policy che consente l’accesso all’API dati solo per il gruppo di lavoro e i cluster nell’ Account AWS specificato.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "redshift-data:*",
            "Resource": [
                "arn:aws:redshift:us-east-1:111122223333:workgroup/*",
                "arn:aws:redshift:us-east-1:111122223333:cluster:*"
            ]
        }
    ]
}
```

------

## Configurare una policy IAM che limiti l’accesso alle informazioni sull’istruzione SQL solo al proprietario dell’istruzione
<a name="data-api-restrict-to-statement-owner"></a>

Per impostazione predefinita, l’API dati di Amazon Redshift considera il ruolo IAM utilizzato durante la chiamata di `ExecuteStatement` e `BatchExecuteStatement` come proprietario dell’istruzione SQL. Chiunque sia autorizzato ad assumere il ruolo è in grado di accedere alle informazioni sull’istruzione SQL, compresi i relativi risultati. Per limitare l’accesso alle informazioni sull’istruzione SQL a una sessione di ruolo IAM con un particolare proprietario, aggiungi la condizione `redshift-data:statement-owner-iam-userid: "${aws:userid}"`. La seguente policy IAM limita l’accesso.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:statement-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

Puoi utilizzare la condizione `statement-owner-iam-userid` con `CancelStatement`, `DescribeStatement`, `GetStatementResult` e `ListStatements`. Per ulteriori informazioni, consulta [Azioni definite dall’API dati Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).

## Configurare una policy IAM che limiti l’accesso ai risultati SQL solo al proprietario della sessione
<a name="data-api-restrict-session-owner"></a>

Per impostazione predefinita, l’API dati di Amazon Redshift considera il ruolo IAM utilizzato durante la chiamata di `ExecuteStatement` e `BatchExecuteStatement` come proprietario della sessione del database che esegue l’istruzione SQL. Chiunque sia autorizzato ad assumere il ruolo è in grado di inviare domande alla sessione del database. Per limitare l’accesso alla sessione a una sessione come ruolo IAM con un particolare proprietario, aggiungi la condizione ` redshift-data:session-owner-iam-userid: "${aws:userid}"`. La seguente policy IAM limita l’accesso.

La seguente policy IAM consente solo al proprietario della sessione di ottenere i risultati dell’istruzione. La condizione `session-owner-iam-userid` viene utilizzata per limitare l’accesso alle risorse al valore specificato `userid`.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [ 
                "redshift-data:ExecuteStatement",
                "redshift-data:BatchExecuteStatement"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:session-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

Puoi utilizzare la condizione `session-owner-iam-userid` con `ExecuteStatement` e `BatchExecuteStatement`. Per ulteriori informazioni, consulta [Azioni definite dall’API dati Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).

# Archiviazione delle credenziali del database in Gestione dei segreti AWS
<a name="data-api-secrets"></a>

Quando si richiama l'API dati, è possibile passare le credenziali per il cluster o il gruppo di lavoro serverless utilizzando un secreto in Gestione dei segreti AWS. Per utilizzare questo metodo per passare le credenziali, specifica il nome del segreto o l'Amazon Resource Name (ARN) del segreto. 

Per archiviare le credenziali con Secrets Manager, è necessaria l'autorizzazione per la policy gestita da `SecretManagerReadWrite`. Per ulteriori informazioni sulle autorizzazioni minime, vedere [Creating and Managing Secrets with AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) nella *Guida per l'Gestione dei segreti AWS utente*. 

**Come archiviare le credenziali in un segreto per un cluster Amazon Redshift**

1. Usa la Gestione dei segreti AWS console per creare un segreto che contenga le credenziali per il tuo cluster:
   + Quando si sceglie **Archivia un nuovo segreto**, selezionare **Credenziali per il cluster Redshift**. 
   + Archiviare i valori per **Nome utente** (utente del database), **Password** e **Cluster database**(identificatore del cluster) nel segreto. 
   + Taggare il segreto con la chiave `RedshiftDataFullAccess`. La policy AWS gestita consente l'azione `AmazonRedshiftDataFullAccess` solo `secretsmanager:GetSecretValue` per i segreti etichettati con la chiave`RedshiftDataFullAccess`. 

   Per le istruzioni, consultare [Creazione di un segreto di base](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) nella *Guida per l'utente di Gestione dei segreti AWS *.

1. Usa la Gestione dei segreti AWS console per visualizzare i dettagli del segreto che hai creato o esegui il `aws secretsmanager describe-secret` AWS CLI comando.

   Prendere nota del nome e dell'ARN del segreto, Possono essere utilizzati nelle chiamate all'API dati.

**Archiviazione delle credenziali in un segreto per un gruppo di lavoro serverless**

1. Usa Gestione dei segreti AWS AWS CLI i comandi per archiviare un segreto che contiene le credenziali per il tuo gruppo di lavoro serverless:
   + Crea il tuo segreto in un file, ad esempio un file JSON denominato `mycreds.json`. Fornire i i valori per **User name** (Nome utente) (utente del database) e **Password** nel file.

     ```
     {
           "username": "myusername",
           "password": "mypassword"
     }
     ```
   + Memorizzare i valori nel segreto e taggare il segreto con la chiave `RedshiftDataFullAccess`.

     ```
     aws secretsmanager create-secret --name MyRedshiftSecret  --tags Key="RedshiftDataFullAccess",Value="serverless" --secret-string file://mycreds.json
     ```

     Di seguito è riportato l'output.

     ```
     {
         "ARN": "arn:aws:secretsmanager:region:accountId:secret:MyRedshiftSecret-mvLHxf",
         "Name": "MyRedshiftSecret",
         "VersionId": "a1603925-e8ea-4739-9ae9-e509eEXAMPLE"
     }
     ```

   Per ulteriori informazioni, consulta l'argomento relativo alla [creazione di un segreto di base con AWS CLI](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html#proc-create-api) nella *Guida per l'utente di Gestione dei segreti AWS *.

1. Usa la Gestione dei segreti AWS console per visualizzare i dettagli del segreto che hai creato o esegui il comando. `aws secretsmanager describe-secret` AWS CLI 

   Prendere nota del nome e dell'ARN del segreto, Possono essere utilizzati nelle chiamate all'API dati.

# Creazione di un endpoint Amazon VPC (AWS PrivateLink) per l'API dati
<a name="data-api-vpc-endpoint"></a>

Amazon Virtual Private Cloud (Amazon VPC) consente di lanciare AWS risorse, come cluster e applicazioni Amazon Redshift, in un cloud privato virtuale (VPC). AWS PrivateLink fornisce connettività privata tra cloud privati virtuali (VPCs) e AWS servizi in modo sicuro sulla rete Amazon. In questo modo AWS PrivateLink, puoi creare endpoint VPC, che puoi utilizzare per connetterti a servizi su diversi account e basati VPCs su Amazon VPC. Per ulteriori informazioni AWS PrivateLink, consulta [VPC Endpoint Services (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html) nella *Amazon Virtual Private Cloud* User Guide.

Puoi chiamare l'API dati con gli endpoint Amazon VPC. L'utilizzo di un endpoint Amazon VPC mantiene il traffico tra le applicazioni nel tuo Amazon VPC e l'API dati nella rete AWS , senza utilizzare indirizzi IP pubblici. Gli endpoint Amazon VPC consentono di soddisfare i requisiti di conformità e normativi relativi alla limitazione della connettività Internet. Ad esempio, se utilizzi un endpoint Amazon VPC, puoi mantenere il traffico tra un'applicazione in esecuzione su un'istanza Amazon EC2 e l'API Data che li contiene. VPCs 

Dopo aver creato l'endpoint Amazon VPC, puoi iniziare a utilizzarlo senza apportare modifiche al codice o alla configurazione nell'applicazione.

**Per creare un endpoint Amazon VPC per l'API dati**

1. Accedi Console di gestione AWS e apri la console Amazon VPC all'indirizzo. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Scegliere **Endpoint**, quindi **Create Endpoint (Crea endpoint)**.

1. Nella pagina **Crea endpoint**, per **Categoria di servizio**, seleziona **Servizi AWS **. Per **Nome servizio**, scegliere **redshift-data** (`com.amazonaws.region.redshift-data`).

1. Per **VPC**, scegliere il VPC in cui creare l'endpoint.

   Scegliere il VPC che contiene l'applicazione che effettua chiamate API dati.

1. Per le **sottoreti**, scegli la sottorete per ogni zona di disponibilità (AZ) utilizzata dal AWS servizio che esegue l'applicazione.

   Per creare un endpoint Amazon VPC, specificare l'intervallo di indirizzi IP privati in cui l'endpoint sarà accessibile. A tale scopo, scegliere la sottorete per ogni zona di disponibilità. Questo ha l'effetto di limitare l'endpoint VPC all'intervallo di indirizzi IP privati specifico per ciascuna zona di disponibilità e crea inoltre un endpoint Amazon VPC in ogni zona di disponibilità.

1. Per **Enable DNS Name (Abilita nome DNS)**, seleziona **Enable for this endpoint (Abilita per questo endpoint)**.

   Il DNS privato risolve il nome host DNS dell'API dati standard (`https://redshift-data.region.amazonaws.com`) negli indirizzi IP privati associati al nome host DNS specifico dell'endpoint Amazon VPC. Di conseguenza, puoi accedere all'endpoint VPC Data API utilizzando AWS CLI o AWS SDKs senza apportare modifiche al codice o alla configurazione per aggiornare l'URL dell'endpoint Data API.

1. Per **Security group (Gruppo di sicurezza)**, scegli un gruppo di sicurezza da associare all'endpoint Amazon VPC.

   Scegli il gruppo di sicurezza che consente l'accesso al AWS servizio su cui è in esecuzione l'applicazione. Ad esempio, se un'istanza Amazon EC2 esegue l'applicazione, scegli il gruppo di sicurezza che consente l'accesso all'istanza Amazon EC2. Il gruppo di sicurezza consente di controllare il traffico verso l'endpoint Amazon VPC dalle risorse del VPC.

1. Seleziona **Crea endpoint**.

Dopo aver creato l'endpoint, scegli il link in Console di gestione AWS per visualizzare i dettagli dell'endpoint.

La scheda **Details (Dettagli)** dell'endpoint mostra i nomi host DNS generati durante la creazione dell'endpoint Amazon VPC.

È possibile utilizzare l'endpoint standard (`redshift-data.region.amazonaws.com`) o uno degli endpoint specifici di VPC per chiamare l'API dati all'interno di Amazon VPC. L'endpoint API dati standard esegue automaticamente l'instradamento all'endpoint Amazon VPC. Questo routing si verifica perché il nome host DNS privato è stato abilitato al momento della creazione dell'endpoint Amazon VPC.

Quando utilizzi un endpoint Amazon VPC in una chiamata Data API, tutto il traffico tra l'applicazione e l'API Data rimane nell'Amazon VPCs che lo contiene. Puoi utilizzare un endpoint Amazon VPC per qualsiasi tipo di chiamata API dati. Per informazioni sulla chiamata dell'API dati, consultare [Considerazioni da fare durante la chiamata all'API dati di Amazon Redshift](data-api.md#data-api-calling-considerations).

# Unirsi a gruppi di database durante la connessione a un cluster
<a name="data-api-dbgroups"></a>

I gruppi di database sono raccolte di utenti del database. I privilegi del database possono essere concessi ai gruppi. Un amministratore può configurare un ruolo IAM in modo che questi gruppi di database vengano presi in considerazione quando SQL viene eseguito con l'API Data. Per ulteriori informazioni sui gruppi di database, consultare [Gruppi](https://docs.aws.amazon.com/redshift/latest/dg/r_Groups.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

Puoi configurare il ruolo IAM di un chiamante dell'API Data in modo che l'utente del database specificato nella chiamata si unisca ai gruppi del database quando l'API dei dati si connette a un cluster. Questa funzionalità è supportata solo quando ci si connette a cluster forniti. Non è supportato durante la connessione a gruppi di lavoro Redshift Serverless. Il ruolo IAM del chiamante dell'API Data deve inoltre consentire l'azione `redshift:JoinGroup`.

Configuralo aggiungendo tag ai ruoli IAM. L'amministratore del ruolo IAM del chiamante aggiunge i tag con la chiave `RedshiftDbGroups` e un valore chiave di un elenco di gruppi di database. Il valore è un elenco di nomi separati da due punti (:) di gruppi di database fino a una lunghezza totale di 256 caratteri. I gruppi di database devono essere precedentemente definiti nel database connesso. Se un gruppo specificato non viene trovato nel database, viene ignorato. Ad esempio, per i gruppi di database `accounting` e `retail`, il valore-chiave è `accounting:retail`. La coppia chiave-valore del tag `{"Key":"RedshiftDbGroups","Value":"accounting:retail"}` viene utilizzato dall'API Data per determinare quali gruppi di database sono associati all'utente del database fornito nella chiamata alla Data API.

**Come effettuare il join ai gruppi di database**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Nel riquadro di navigazione della console, scegliere **Roles (Ruoli)** e selezionare il nome del ruolo che si desidera modificare.

1. Scegliere la scheda **Tag**, quindi scegliere **Gestisci tag**.

1. Scegli **Aggiungi tag**, quindi aggiungi la chiave **RedshiftDbGroups**e un valore che è un elenco di*database-groups-colon-separated*.

1. Scegli **Save changes** (Salva modifiche).

   Ora, quando un principal IAM (con questo ruolo IAM associato) chiama l'API dei dati, l'utente del database specificato si unisce ai gruppi di database specificati nel ruolo IAM.

Per ulteriori informazioni su come collegare un tag a un principale, inclusi i ruoli e gli utenti IAM, consultare [Assegnazione di tag di risorse IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) nella *Guida per l'utente di IAM*. 

# Utilizzo dell’API dati con la propagazione affidabile delle identità
<a name="data-api-trusted-identity-propagation"></a>

In qualità di amministratore di account Amazon Redshift, puoi integrare il tuo cluster o gruppo di lavoro Amazon Redshift AWS IAM Identity Center con, il che aiuta a gestire l'accesso della forza lavoro ad Amazon Redshift con Single Sign-On. Per ulteriori informazioni, consulta [Configurazione dell'integrazione di AWS IAM Identity Center con Amazon Redshift](redshift-iam-access-control-idp-connect-console.md). L'API Amazon Redshift Data supporta la propagazione delle identità utente di IAM Identity Center a un cluster o gruppo di lavoro Amazon Redshift e ad altri servizi, ad esempio, lungo la catena. AWS Lake Formation Puoi configurare ed eseguire query utilizzando l'API Data seguendo i passaggi dei [AWS servizi di Access in modo programmatico](https://aws.amazon.com/blogs//security/access-aws-services-programmatically-using-trusted-identity-propagation/) utilizzando la propagazione affidabile delle identità.

Quando chiami l’API dati utilizzando un’identità utente di Centro identità IAM da una sessione del ruolo IAM rafforzata con l’identità, puoi accedere solo all’istruzione e al risultato dell’istruzione risultanti utilizzando lo stesso utente di Centro identità IAM. Ad esempio, il AWS CLI comando seguente richiama l'`execute-statement`operazione per eseguire un comando SQL con propagazione di identità affidabili.

```
aws redshift-data execute-statement 
--sql "select current_user;" 
--cluster-id mycluster
--database dev
```

Il AWS CLI comando seguente richiama l'`batch-execute-statement`operazione per eseguire due comandi SQL.

```
aws redshift-data batch-execute-statement 
--sqls  "select current_user;"  "select current_date;"
--cluster-id mycluster
--database dev
```

Per accedere alle istruzioni con `cancel-statement`, `describe-statement`, `get-statement-result` e `get-statement-result-v2` inviate dalle sessioni del ruolo IAM rafforzate con l’identità, l’utente e il ruolo IAM di Centro identità IAM devono corrispondere alle credenziali utilizzate per eseguire `execute-statment` o `batch-execute-statement`. Ad esempio, il AWS CLI comando seguente ottiene i risultati di un'istruzione SQL.

```
aws redshift-data get-statement-result 
--id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```

Per elencare le istruzioni, è necessario fornire un parametro `cluster-identifier` o `workgroup-name` per garantire che l’utente di Centro identità IAM abbia accesso solo alle applicazioni di Centro identità IAM di Amazon Redshift a cui è assegnato. Ad esempio, il AWS CLI comando seguente elenca le istruzioni per un cluster specifico.

```
aws redshift-data list-statements
--cluster-identifier mycluster
```

Puoi inoltre invocare le operazioni dell’API dati che accedono agli oggetti del database in un cluster o un gruppo di lavoro utilizzando una propagazione affidabile delle identità. Sono incluse le operazioni `list-databases`, `list-schemas`, `list-tables` e `describe-table`.

Le chiamate API effettuate dall’utente di Centro identità IAM possono essere monitorate in AWS CloudTrail. Una `onBehalfOf` sezione dell' CloudTrail evento mostra l'ID utente di IAM Identity Center e l'ARN dell'archivio di identità. L'esempio seguente mostra un frammento di un CloudTrail evento che mostra la `onBehalfOf` sezione con l'ID utente IAM Identity Center di `a1b2c3d4-5678-90ab-cdef-EXAMPLE11111` e l'ARN dell'archivio di identità di. `arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2`

```
{
            "eventVersion":"1.10",
            "userIdentity":{
            "type":"AssumedRole",
            ...
            },
            "onBehalfOf":{
            "userId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "identityStoreArn":"arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2"
            }
            },
            "eventTime":"2025-01-13T04:46:27Z",
            "eventSource":"redshift-data.amazonaws.com",
            "eventName":"ExecuteStatement",
            "awsRegion":"us-east-1"
            }
```

Puoi eseguire il seguente comando SQL per verificare la query inviata dall’utente di Centro identità IAM. In questo esempio l’e-mail registrata in Centro identità è `username@example.com`.

```
SELECT
    h.query_id,
    h.database_name,
    h.status,
    h.query_text,
    u.usename,
    h.start_time,
    h.end_time
FROM
    sys_query_history h
LEFT JOIN
    pg_user u
ON
    h.user_id = u.usesysid
where u.usename='awsidc:username@example.com'    
ORDER BY
    h.start_time DESC;
```

# Chiamata dell'API dati
<a name="data-api-calling"></a>

Puoi chiamare l'API Data o AWS CLI eseguire istruzioni SQL sul tuo cluster o gruppo di lavoro serverless. Le operazioni principali per eseguire le istruzioni SQL sono [https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_ExecuteStatement.html](https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_ExecuteStatement.html) e[https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_BatchExecuteStatement.html](https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_BatchExecuteStatement.html) nel *Riferimento all'API dati di Amazon Redshift*. L'API Data supporta i linguaggi di programmazione supportati dall' AWS SDK. Per ulteriori informazioni, consultare [Strumenti per creare in AWS](https://aws.amazon.com/tools/).

Per vedere esempi di codice di chiamata all'API Data, consulta [Getting Started with Redshift Data API](https://github.com/aws-samples/getting-started-with-amazon-redshift-data-api#getting-started-with-redshift-data-api) in. *GitHub* Questo repository contiene esempi di utilizzo AWS Lambda per accedere ai dati di Amazon Redshift da Amazon EC2 e Amazon Runtime AWS Glue Data Catalog. SageMaker Esempi di linguaggi di programmazione includono Python, Go, Java e Javascript.

Puoi chiamare l'API dati utilizzando AWS CLI.

Gli esempi seguenti utilizzano AWS CLI per chiamare l'API Data. Per eseguire gli esempi, modificare i valori dei parametri in modo che corrispondano all'ambiente in uso. In molti esempi viene fornito un `cluster-identifier` per l'esecuzione in un cluster. Quando l'esecuzione avviene in un gruppo di lavoro serverless, viene fornito invece un `workgroup-name`. In questi esempi sono illustrate alcune delle operazioni dell'API dati. Per ulteriori informazioni, consultare la sezione relativa alle *informazioni di riferimento ai comandi della AWS CLI *. 

I comandi nei seguenti esempi sono stati divisi e formattati per una maggiore leggibilità. Non tutti i parametri e le risposte vengono mostrati in tutti gli esempi. Per la definizione API della sintassi completa della richiesta, dei parametri di richiesta, della sintassi di risposta e degli elementi di risposta, consulta la [documentazione di riferimento dell’API dati Amazon Redshift](https://docs.aws.amazon.com/redshift-data/latest/APIReference/).

# Passaggio delle istruzioni SQL a un data warehouse Amazon Redshift
<a name="pass-sql-statements"></a>

Gli esempi in questa pagina illustrano diversi modi per passare un’istruzione SQL al data warehouse

## Eseguire un’istruzione SQL
<a name="data-api-calling-cli-execute-statement"></a>

Per eseguire un'istruzione SQL, utilizzare il `aws redshift-data execute-statement` AWS CLI comando.

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster e restituisce un identificatore per recuperare i risultati. In questo esempio viene utilizzato il metodo di autenticazione Gestione dei segreti AWS .

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "select * from stl_query limit 1" 
    --database dev
```

Di seguito è riportato un esempio della risposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598323175.823,
    "Database": "dev",
    "Id": "c016234e-5c6c-4bc5-bb16-2c5b8ff61814",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn"
}
```

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster e restituisce un identificatore per recuperare i risultati. In questo esempio viene utilizzato il metodo di autenticazione con le credenziali temporanee.

```
aws redshift-data execute-statement 
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev 
    --sql "select * from stl_query limit 1"
```

Di seguito è riportato un esempio della risposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598306924.632,
    "Database": "dev",
    "DbUser": "myuser",
    "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766"
}
```

Il AWS CLI comando seguente esegue un'istruzione SQL su un gruppo di lavoro senza server e restituisce un identificatore per recuperare i risultati. In questo esempio viene utilizzato il metodo di autenticazione con le credenziali temporanee.

```
aws redshift-data execute-statement 
    --database dev 
    --workgroup-name myworkgroup 
    --sql "select 1;"
```

Di seguito è riportato un esempio della risposta.

```
{
 "CreatedAt": "2022-02-11T06:25:28.748000+00:00",
 "Database": "dev",
 "DbUser": "IAMR:RoleName",
 "Id": "89dd91f5-2d43-43d3-8461-f33aa093c41e",
 "WorkgroupName": "myworkgroup"
}
```

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster e restituisce un identificatore per recuperare i risultati. In questo esempio viene utilizzato il metodo di autenticazione Gestione dei segreti AWS e un token di idempotenza.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "select * from stl_query limit 1" 
    --database dev 
    --client-token b855dced-259b-444c-bc7b-d3e8e33f94g1
```

Di seguito è riportato un esempio della risposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598323175.823,
    "Database": "dev",
    "Id": "c016234e-5c6c-4bc5-bb16-2c5b8ff61814",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn"
}
```

## Eseguire un’istruzione SQL con i parametri
<a name="data-api-calling-cli-execute-statement-parameters"></a>

Per eseguire un'istruzione SQL, utilizzare il `aws redshift-data execute-statement` AWS CLI comando.

 Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster e restituisce un identificatore per recuperare i risultati. In questo esempio viene utilizzato il metodo di autenticazione Gestione dei segreti AWS . Il testo SQL ha un parametro denominato `distance`. In questo caso, la distanza utilizzata nel predicato è `5`. In un'istruzione SELECT, i parametri denominati per i nomi delle colonne possono essere utilizzati solo nel predicato. I valori per i parametri specificati per l'istruzione SQL vengono specificati nell'opzione `parameters`.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "SELECT ratecode FROM demo_table WHERE trip_distance > :distance"  
    --parameters "[{\"name\": \"distance\", \"value\": \"5\"}]"
    --database dev
```

Di seguito è riportato un esempio della risposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598323175.823,
    "Database": "dev",
    "Id": "c016234e-5c6c-4bc5-bb16-2c5b8ff61814",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn"
}
```

La query seguente utilizza la tabella `EVENT` dal database di esempio. Per ulteriori informazioni, consultare [Tabella EVENT](https://docs.aws.amazon.com/redshift/latest/dg/r_eventtable.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*. 

Se non si dispone già della tabella `EVENT` nel database, è possibile crearne una utilizzando l'API dati come segue:

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser
--sql "create table event( eventid integer not null distkey, 
                           venueid smallint not null, 
                           catid smallint not null, 
                           dateid smallint not null sortkey, 
                           eventname varchar(200), 
                           starttime timestamp)"
```

Il comando seguente inserisce una riga nella tabella `EVENT`. 

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser 
--sql "insert into event values(:eventid, :venueid::smallint, :catid, :dateid, :eventname, :starttime)" 
--parameters "[{\"name\": \"eventid\", \"value\": \"1\"}, {\"name\": \"venueid\", \"value\": \"1\"}, 
               {\"name\": \"catid\", \"value\": \"1\"}, 
               {\"name\": \"dateid\", \"value\": \"1\"}, 
               {\"name\": \"eventname\", \"value\": \"event 1\"}, 
               {\"name\": \"starttime\", \"value\": \"2022-02-22\"}]"
```

Il comando seguente inserisce una seconda riga nella tabella `EVENT`. Questo esempio esegue le operazioni seguenti: 
+ Il parametro denominato `id` viene utilizzato quattro volte nel testo SQL.
+ Il tipo di conversione implicita viene applicato automaticamente quando si inserisce il parametro `starttime`.
+ La colonna `venueid` è tipo cast per il tipo di dati SMALLINT.
+ Le stringhe di caratteri che rappresentano il tipo di dati DATE vengono convertite implicitamente nel tipo di dati TIMESTAMP.
+ All'interno del testo SQL è possibile utilizzare i commenti.

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser 
--sql "insert into event values(:id, :id::smallint, :id, :id, :eventname, :starttime) /*this is comment, and it won't apply parameterization for :id, :eventname or :starttime here*/" 
--parameters "[{\"name\": \"eventname\", \"value\": \"event 2\"}, 
               {\"name\": \"starttime\", \"value\": \"2022-02-22\"}, 
               {\"name\": \"id\", \"value\": \"2\"}]"
```

Di seguito sono riportate le due righe inserite:

```
 eventid | venueid | catid | dateid | eventname |      starttime
---------+---------+-------+--------+-----------+---------------------
       1 |       1 |     1 |      1 | event 1   | 2022-02-22 00:00:00
       2 |       2 |     2 |      2 | event 2   | 2022-02-22 00:00:00
```

Il comando seguente utilizza un parametro denominato in una clausola WHERE per recuperare la riga in cui `eventid` è `1`. 

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser 
--sql "select * from event where eventid=:id"
--parameters "[{\"name\": \"id\", \"value\": \"1\"}]"
```

Eseguire il comando seguente per ottenere i risultati SQL dell'istruzione SQL precedente:

```
aws redshift-data get-statement-result --id 7529ad05-b905-4d71-9ec6-8b333836eb5a        
```

Vengono restituiti i risultati seguenti:

```
{
    "Records": [
        [
            {
                "longValue": 1
            },
            {
                "longValue": 1
            },
            {
                "longValue": 1
            },
            {
                "longValue": 1
            },
            {
                "stringValue": "event 1"
            },
            {
                "stringValue": "2022-02-22 00:00:00.0"
            }
        ]
    ],
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "eventid",
            "length": 0,
            "name": "eventid",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "venueid",
            "length": 0,
            "name": "venueid",
            "nullable": 0,
            "precision": 5,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int2"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "catid",
            "length": 0,
            "name": "catid",
            "nullable": 0,
            "precision": 5,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int2"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "dateid",
            "length": 0,
            "name": "dateid",
            "nullable": 0,
            "precision": 5,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int2"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "eventname",
            "length": 0,
            "name": "eventname",
            "nullable": 1,
            "precision": 200,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "varchar"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "label": "starttime",
            "length": 0,
            "name": "starttime",
            "nullable": 1,
            "precision": 29,
            "scale": 6,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "timestamp"
        }
    ],
    "TotalNumRows": 1
}
```

## Eseguire più istruzioni SQL
<a name="data-api-calling-cli-batch-execute-statement"></a>

Per eseguire più istruzioni SQL con un solo comando, utilizzare il `aws redshift-data batch-execute-statement` AWS CLI comando.

Il AWS CLI comando seguente esegue tre istruzioni SQL su un cluster e restituisce un identificatore per recuperare i risultati. In questo esempio viene utilizzato il metodo di autenticazione con le credenziali temporanee.

```
aws redshift-data batch-execute-statement 
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev 
    --sqls "set timezone to BST" "select * from mytable" "select * from another_table"
```

Di seguito è riportato un esempio della risposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598306924.632,
    "Database": "dev",
    "DbUser": "myuser",
    "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766"
}
```

# Elencare i metadati sulle istruzioni SQL
<a name="data-api-calling-cli-list-statements"></a>

Per elencare i metadati relativi alle istruzioni SQL, utilizzate il comando. `aws redshift-data list-statements` AWS CLI L'autorizzazione per eseguire questo comando si basa sulle autorizzazioni IAM del chiamante.

Il AWS CLI comando seguente elenca le istruzioni SQL eseguite.

```
aws redshift-data list-statements 
    --status ALL
```

Di seguito è riportato un esempio della risposta.

```
{
    "Statements": [
        {
            "CreatedAt": 1598306924.632,
            "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766",
            "QueryString": "select * from stl_query limit 1",
            "Status": "FINISHED",
            "UpdatedAt": 1598306926.667
        },
        {
            "CreatedAt": 1598311717.437,
            "Id": "e0ebd578-58b3-46cc-8e52-8163fd7e01aa",
            "QueryString": "select * from stl_query limit 1",
            "Status": "FAILED",
            "UpdatedAt": 1598311719.008
        },
        {
            "CreatedAt": 1598313683.65,
            "Id": "c361d4f7-8c53-4343-8c45-6b2b1166330c",
            "QueryString": "select * from stl_query limit 1",
            "Status": "ABORTED",
            "UpdatedAt": 1598313685.495
        },
        {
            "CreatedAt": 1598306653.333,
            "Id": "a512b7bd-98c7-45d5-985b-a715f3cfde7f",
            "QueryString": "select 1",
            "Status": "FINISHED",
            "UpdatedAt": 1598306653.992
        }
    ]
}
```

# Descrivere i metadati relativi a un’istruzione SQL
<a name="data-api-calling-cli-describe-statement"></a>

Per ottenere le descrizioni dei metadati per un'istruzione SQL, utilizzate il `aws redshift-data describe-statement` AWS CLI comando. L'autorizzazione per eseguire questo comando si basa sulle autorizzazioni IAM del chiamante. 

Il AWS CLI comando seguente descrive un'istruzione SQL. 

```
aws redshift-data describe-statement 
    --id d9b6c0c9-0747-4bf4-b142-e8883122f766
```

Di seguito è riportato un esempio della risposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598306924.632,
    "Duration": 1095981511,
    "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766",
    "QueryString": "select * from stl_query limit 1",
    "RedshiftPid": 20859,
    "RedshiftQueryId": 48879,
    "ResultRows": 1,
    "ResultSize": 4489,
    "Status": "FINISHED",
    "UpdatedAt": 1598306926.667
}
```

Di seguito è riportato un esempio di una risposta `describe-statement` dopo aver eseguito un comando `batch-execute-statement` con più istruzioni SQL.

```
{
    "ClusterIdentifier": "mayo",
    "CreatedAt": 1623979777.126,
    "Duration": 6591877,
    "HasResultSet": true,
    "Id": "b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652",
    "RedshiftPid": 31459,
    "RedshiftQueryId": 0,
    "ResultRows": 2,
    "ResultSize": 22,
    "Status": "FINISHED",
    "SubStatements": [
        {
            "CreatedAt": 1623979777.274,
            "Duration": 3396637,
            "HasResultSet": true,
            "Id": "b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:1",
            "QueryString": "select 1;",
            "RedshiftQueryId": -1,
            "ResultRows": 1,
            "ResultSize": 11,
            "Status": "FINISHED",
            "UpdatedAt": 1623979777.903
        },
        {
            "CreatedAt": 1623979777.274,
            "Duration": 3195240,
            "HasResultSet": true,
            "Id": "b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:2",
            "QueryString": "select 2;",
            "RedshiftQueryId": -1,
            "ResultRows": 1,
            "ResultSize": 11,
            "Status": "FINISHED",
            "UpdatedAt": 1623979778.076
        }
    ],
    "UpdatedAt": 1623979778.183
}
```

# Recuperare i risultati di un’istruzione SQL
<a name="data-api-calling-cli-get-statement-result"></a>

Per recuperare il risultato da un'istruzione SQL eseguita, utilizzare il `redshift-data get-statement-result-v2` AWS CLI comando `redshift-data get-statement-result` or. I risultati di `get-statement-result` sono in formato JSON. I risultati di `get-statement-result-v2` sono in formato CSV. È possibile fornire un `Id` che viene ricevuto nella risposta a `execute-statement` o `batch-execute-statement`. Il valore `Id` per un'istruzione SQL eseguita da `batch-execute-statement` può essere recuperato nel risultato di `describe-statement` ed ha un suffisso formato da due punti e un numero di sequenza, ad esempio `b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:2`. Se con `batch-execute-statement` vengono eseguite più istruzioni SQL, ogni istruzione SQL avrà un valore `Id` come mostrato nella`describe-statement`. L'autorizzazione per eseguire questo comando si basa sulle autorizzazioni IAM del chiamante. 

L’istruzione seguente restituisce il risultato di un’istruzione SQL eseguita da `execute-statement` che ha lasciato il valore predefinito di `ResultFormat` su `JSON`. Per recuperare i risultati, chiama l’operazione `get-statement-result`.

```
aws redshift-data get-statement-result 
    --id d9b6c0c9-0747-4bf4-b142-e8883122f766
```

L'istruzione seguente restituisce il risultato della seconda istruzione SQL eseguita da `batch-execute-statement`.

```
aws redshift-data get-statement-result 
    --id b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:2
```

Di seguito è riportato un esempio della risposta a una chiamata a `get-statement-result` in cui il risultato SQL viene restituito in formato JSON nella chiave `Records` della risposta.

```
{
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "userid",
            "length": 0,
            "name": "userid",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "query",
            "length": 0,
            "name": "query",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "label",
            "length": 0,
            "name": "label",
            "nullable": 0,
            "precision": 320,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "bpchar"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "xid",
            "length": 0,
            "name": "xid",
            "nullable": 0,
            "precision": 19,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int8"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "pid",
            "length": 0,
            "name": "pid",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "database",
            "length": 0,
            "name": "database",
            "nullable": 0,
            "precision": 32,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "bpchar"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "querytxt",
            "length": 0,
            "name": "querytxt",
            "nullable": 0,
            "precision": 4000,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "bpchar"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "label": "starttime",
            "length": 0,
            "name": "starttime",
            "nullable": 0,
            "precision": 29,
            "scale": 6,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "timestamp"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "label": "endtime",
            "length": 0,
            "name": "endtime",
            "nullable": 0,
            "precision": 29,
            "scale": 6,
            "schemaName": "",
            "tableName": "stll_query",
            "type": 93,
            "typeName": "timestamp"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "aborted",
            "length": 0,
            "name": "aborted",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "insert_pristine",
            "length": 0,
            "name": "insert_pristine",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "concurrency_scaling_status",
            "length": 0,
            "name": "concurrency_scaling_status",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        }
    ],
    "Records": [
        [
            {
                "longValue": 1
            },
            {
                "longValue": 3
            },
            {
                "stringValue": "health"
            },
            {
                "longValue": 1023
            },
            {
                "longValue": 15279
            },
            {
                "stringValue": "dev"
            },
            {
                "stringValue": "select system_status from stv_gui_status;"
            },
            {
                "stringValue": "2020-08-21 17:33:51.88712"
            },
            {
                "stringValue": "2020-08-21 17:33:52.974306"
            },
            {
                "longValue": 0
            },
            {
                "longValue": 0
            },
            {
                "longValue": 6
            }
        ]
    ],
    "TotalNumRows": 1
}
```

L’esempio seguente mostra un’istruzione SQL eseguita da `execute-statement` per restituire risultati come JSON. La tabella `testingtable` ha tre colonne di numeri interi (col1, col2, col3) e tre righe con valori (1, 2, 3), (4, 5, 6) e (7, 8, 9).

```
aws redshift-data execute-statement 
    --database dev 
    --sql "SELECT col1, col2, col3 FROM testingtable" 
    --cluster-id mycluster-test 
    --result-format JSON
```

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": "2024-04-02T16:45:25.144000+00:00",
    "Database": "dev",
    "DbUser": "IAMR:Administrator",
    "Id": "d468d942-6df9-4f85-8ae3-bac01a61aec3"
}
```

Di seguito è riportato un esempio della risposta a una chiamata a `get-statement-result` in cui il risultato SQL viene restituito in formato JSON nella chiave `Records` della risposta.

```
aws redshift-data get-statement-result
    --id d468d942-6df9-4f85-8ae3-bac01a61aec3
```

```
{
    "Records": [
        [
            {
                "longValue": 1
            },
            {
                "longValue": 2
            },
            {
                "longValue": 3
            }
        ],
        [
            {
                "longValue": 4
            },
            {
                "longValue": 5
            },
            {
                "longValue": 6
            }
        ],
        [
            {
                "longValue": 7
            },
            {
                "longValue": 8
            },
            {
                "longValue": 9
            }
        ]
    ],
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col1",
            "name": "col1",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col2",
            "name": "col2",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col3",
            "name": "col3",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        }
    ],
    "TotalNumRows": 3
}
```

L’esempio seguente mostra un’istruzione SQL eseguita da `execute-statement` per restituire i risultati in formato CSV. La tabella `testingtable` ha tre colonne di numeri interi (col1, col2, col3) e tre righe con valori (1, 2, 3), (4, 5, 6) e (7, 8, 9).

```
aws redshift-data execute-statement 
    --database dev 
    --sql "SELECT col1, col2, col3 FROM testingtable" 
    --cluster-id mycluster-test 
    --result-format CSV
```

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": "2024-04-02T16:45:25.144000+00:00",
    "Database": "dev",
    "DbUser": "IAMR:Administrator",
    "Id": "d468d942-6df9-4f85-8ae3-bac01a61aec3"
}
```

Di seguito è riportato un esempio della risposta a una chiamata a `get-statement-result-v2` in cui il risultato SQL viene restituito in formato CSV nella chiave `Records` della risposta. Le righe sono separate da un ritorno a capo e una nuova riga (\$1r\$1n). La prima riga restituita in `Records` sono le intestazioni delle colonne. I risultati restituiti in formato CSV vengono restituiti in 1 MB, dove ogni blocco può memorizzare un numero qualsiasi di righe fino a 1 MB. 

```
aws redshift-data get-statement-result-v2
    --id d468d942-6df9-4f85-8ae3-bac01a61aec3
```

```
{
    "Records": [
        {
            "CSVRecords": "col1,col2,col3\r\n1,2,3\r\n4,5,6\r\n7,8,9\r\n"
        }
    ],
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col1",
            "name": "col1",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col2",
            "name": "col2",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col3",
            "name": "col3",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        }
    ],
    "TotalNumRows": 3,
    "ResultFormat": "csv"
}
```

# Descrivere una tabella
<a name="data-api-calling-cli-describe-table"></a>

Per ottenere i metadati che descrivono una tabella, utilizzate il `aws redshift-data describe-table` AWS CLI comando.

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster e restituisce i metadati che descrivono una tabella. In questo esempio viene utilizzato il metodo Gestione dei segreti AWS di autenticazione.

```
aws redshift-data describe-table  
    --cluster-identifier mycluster-test 
    --database dev 
    --schema information_schema 
    --table sql_features 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn
```

Di seguito è riportato un esempio della risposta.

```
{
    "ColumnList": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_id",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_name",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        }     
    ]
}
```

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster che descrive una tabella. In questo esempio viene utilizzato il metodo di autenticazione con le credenziali temporanee.

```
aws redshift-data describe-table 
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev 
    --schema information_schema 
    --table sql_features
```

Di seguito è riportato un esempio della risposta.

```
{
    "ColumnList": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_id",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_name",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "sub_feature_id",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "sub_feature_name",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "is_supported",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "is_verified_by",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "comments",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        }
    ]
}
```

# Elencare i database in un cluster
<a name="data-api-calling-cli-list-databases"></a>

Per elencare i database in un cluster, utilizzare il `aws redshift-data list-databases` AWS CLI comando.

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster per elencare i database. In questo esempio viene utilizzato il metodo di Gestione dei segreti AWS autenticazione.

```
aws redshift-data list-databases  

    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --database dev
```

Di seguito è riportato un esempio della risposta.

```
{
    "Databases": [
        "dev"
    ]
}
```

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster per elencare i database. In questo esempio viene utilizzato il metodo di autenticazione con le credenziali temporanee.

```
aws redshift-data list-databases  
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev
```

Di seguito è riportato un esempio della risposta.

```
{
    "Databases": [
        "dev"
    ]
}
```

# Elencare gli schemi in un database
<a name="data-api-calling-cli-list-schemas"></a>

Per elencare gli schemi in un database, utilizzare il `aws redshift-data list-schemas` AWS CLI comando.

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster per elencare gli schemi in un database. In questo esempio viene utilizzato il metodo Gestione dei segreti AWS di autenticazione.

```
aws redshift-data list-schemas 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --database dev
```

Di seguito è riportato un esempio della risposta.

```
{
    "Schemas": [
        "information_schema",
        "pg_catalog",
        "pg_internal",
        "public"
    ]
}
```

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster per elencare gli schemi in un database. In questo esempio viene utilizzato il metodo di autenticazione con le credenziali temporanee.

```
aws redshift-data list-schemas 
    --db-user mysuser 
    --cluster-identifier mycluster-test 
    --database dev
```

Di seguito è riportato un esempio della risposta.

```
{
    "Schemas": [
        "information_schema",
        "pg_catalog",
        "pg_internal",
        "public"
    ]
}
```

# Elencare le tabelle in un database
<a name="data-api-calling-cli-list-tables"></a>

Per elencare le tabelle in un database, utilizzare il `aws redshift-data list-tables` AWS CLI comando.

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster per elencare le tabelle in un database. In questo esempio viene utilizzato il metodo di Gestione dei segreti AWS autenticazione.

```
aws redshift-data list-tables 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --database dev 
    --schema information_schema
```

Di seguito è riportato un esempio della risposta.

```
{
    "Tables": [
        {
            "name": "sql_features",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        },
        {
            "name": "sql_implementation_info",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        }
}
```

Il AWS CLI comando seguente esegue un'istruzione SQL su un cluster per elencare le tabelle in un database. In questo esempio viene utilizzato il metodo di autenticazione con le credenziali temporanee.

```
aws redshift-data list-tables  

     --db-user myuser 
     --cluster-identifier mycluster-test 
     --database dev 
     --schema information_schema
```

Di seguito è riportato un esempio della risposta.

```
{
    "Tables": [
        {
            "name": "sql_features",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        },
        {
            "name": "sql_implementation_info",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        }
    ]
}
```

# Risoluzione dei problemi relativi all'API dati di Amazon Redshift
<a name="data-api-troubleshooting"></a>

Utilizza le seguenti sezioni, intitolate con messaggi di errori comuni, per aiutare a risolvere i problemi con l'API dati. 

**Topics**
+ [Il pacchetto per la query è troppo grande](#data-api-troubleshooting-packet-too-large)
+ [La risposta del database è andata oltre il limite delle dimensioni](#data-api-troubleshooting-response-size-too-large)

## Il pacchetto per la query è troppo grande
<a name="data-api-troubleshooting-packet-too-large"></a>

Se viene visualizzato un errore che indica che il pacchetto per una query è troppo grande, in genere il set di risultati restituito per una riga è troppo grande. Il limite delle dimensioni dell'API dati è 64 KB per riga nel set di risultati restituito dal database.

Per risolvere questo problema, verifica che ogni riga in un set di risultati sia corrispondente o inferiore a 64 KB.

## La risposta del database è andata oltre il limite delle dimensioni
<a name="data-api-troubleshooting-response-size-too-large"></a>

Se viene visualizzato un errore che indica che la risposta del database ha superato il limite delle dimensioni, in genere le dimensioni del set di risultati restituito dal database erano troppo grandi. Il limite dell'API Data è di 500 MB nel set di risultati restituito dal database.

Per risolvere questo problema, assicurati che le chiamate all'API Data restituiscano 500 MB di dati o meno. Se devi restituire più di 500 MB, puoi eseguire più chiamate di istruzioni con la `LIMIT` clausola nella query.

# Pianificazione delle operazioni di Amazon Redshift Data API con Amazon EventBridge
<a name="data-api-calling-event-bridge"></a>

È possibile creare regole corrispondenti agli eventi selezionati nel flusso e instradarle alle destinazioni per le operazioni. È possibile anche utilizzare le regole per eseguire operazioni in base a una pianificazione prestabilita. Per ulteriori informazioni, consulta la [Amazon EventBridge User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/). 

Per pianificare le operazioni Data API con EventBridge, il ruolo IAM associato deve affidarsi al principal for CloudWatch Events (events.amazonaws.com). Questo ruolo deve avere l'equivalente della policy gestita `AmazonEventBridgeFullAccess` collegata. Dovrebbe inoltre disporre delle autorizzazioni della policy `AmazonRedshiftDataFullAccess` che sono gestite dall'API dati. È possibile creare un ruolo IAM con queste autorizzazioni nella console IAM. Quando crei un ruolo sulla console IAM, scegli l'entità affidabile del AWS servizio per gli eventi. CloudWatch Specificate il ruolo IAM nel valore `RoleArn` JSON nella EventBridge destinazione. Per ulteriori informazioni sulla creazione di un ruolo IAM, consulta [Creating a Role for an AWS Service (Console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) nella *IAM User Guide*.

La `name` regola che crei in Amazon EventBridge deve corrispondere `StatementName` a quella in`RedshiftDataParameters`.

Gli esempi seguenti mostrano le variazioni della creazione di EventBridge regole con una o più istruzioni SQL e con un cluster Amazon Redshift o un gruppo di lavoro Amazon Redshift Serverless come data warehouse.

## Richiamo con un'unica istruzione SQL e un unico cluster
<a name="data-api-calling-event-bridge-sql-cluster"></a>

L'esempio seguente utilizza AWS CLI per creare una EventBridge regola che viene utilizzata per eseguire un'istruzione SQL su un cluster Amazon Redshift.

```
aws events put-rule 
--name test-redshift-cluster-data 
--schedule-expression "rate(1 minute)"
```

Quindi viene creato un EventBridge obiettivo da eseguire secondo la pianificazione specificata nella regola. 

```
aws events put-targets 
--cli-input-json file://data.json
```

Di seguito è riportato il file data.json di input. La chiave JSON `Sql` indica che esiste una singola istruzione SQL. Il valore JSON `Arn` contiene un identificatore del cluster. Il valore JSON `RoleArn` contiene il ruolo IAM utilizzato per eseguire l'istruzione SQL come descritto in precedenza. 

```
{
    "Rule": "test-redshift-cluster-data",
    "EventBusName": "default",
    "Targets": [
        {
            "Id": "2",
            "Arn": "arn:aws:redshift:us-east-1:123456789012:cluster:mycluster",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator",
            "RedshiftDataParameters": {
                "Database": "dev",
                "DbUser": "root",
                "Sql": "select 1;",
                "StatementName": "test-redshift-cluster-data",
                "WithEvent": true
            }
        }
    ]
}
```

## Richiamo con un'unica istruzione SQL e un unico gruppo di lavoro
<a name="data-api-calling-event-bridge-sql-workgroup"></a>

L'esempio seguente utilizza AWS CLI per creare una EventBridge regola che viene utilizzata per eseguire un'istruzione SQL su un gruppo di lavoro Amazon Redshift Serverless.

```
aws events put-rule 
--name  test-redshift-serverless-workgroup-data 
--schedule-expression "rate(1 minute)"
```

Quindi viene creato un EventBridge obiettivo da eseguire secondo la pianificazione specificata nella regola. 

```
aws events put-targets 
--cli-input-json file://data.json
```

Di seguito è riportato il file data.json di input. La chiave JSON `Sql` indica che esiste una singola istruzione SQL. Il valore JSON `Arn` contiene un nome del gruppo di lavoro. Il valore JSON `RoleArn` contiene il ruolo IAM utilizzato per eseguire l'istruzione SQL come descritto in precedenza. 

```
{
    "Rule": "test-redshift-serverless-workgroup-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sql": "select 1;",
                "StatementName": "test-redshift-serverless-workgroup-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

## Richiamo con più istruzioni SQL e cluster
<a name="data-api-calling-event-bridge-sqls-cluster"></a>

L'esempio seguente utilizza AWS CLI per creare una EventBridge regola che viene utilizzata per eseguire più istruzioni SQL su un cluster Amazon Redshift.

```
aws events put-rule 
--name  test-redshift-cluster-data 
--schedule-expression "rate(1 minute)"
```

Quindi viene creato un EventBridge obiettivo da eseguire secondo la pianificazione specificata nella regola. 

```
aws events put-targets 
--cli-input-json file://data.json
```

Di seguito è riportato il file data.json di input. La chiave JSON `Sqls` indica che esistono più istruzioni SQL. Il valore JSON `Arn` contiene un identificatore del cluster. Il valore JSON `RoleArn` contiene il ruolo IAM utilizzato per eseguire l'istruzione SQL come descritto in precedenza. 

```
{
    "Rule": "test-redshift-cluster-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift:us-east-1:123456789012:cluster:mycluster",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sqls": ["select 1;", "select 2;", "select 3;"],
                "StatementName": "test-redshift-cluster-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

## Richiamo con più istruzioni SQL e gruppi di lavoro
<a name="data-api-calling-event-bridge-sqls-workgroup"></a>

L'esempio seguente utilizza AWS CLI per creare una EventBridge regola che viene utilizzata per eseguire più istruzioni SQL su un gruppo di lavoro Amazon Redshift Serverless.

```
aws events put-rule 
--name  test-redshift-serverless-workgroup-data 
--schedule-expression "rate(1 minute)"
```

Quindi viene creato un EventBridge obiettivo da eseguire secondo la pianificazione specificata nella regola. 

```
aws events put-targets 
--cli-input-json file://data.json
```

Di seguito è riportato il file data.json di input. La chiave JSON `Sqls` indica che esistono più istruzioni SQL. Il valore JSON `Arn` contiene un nome del gruppo di lavoro. Il valore JSON `RoleArn` contiene il ruolo IAM utilizzato per eseguire l'istruzione SQL come descritto in precedenza. 

```
{
    "Rule": "test-redshift-serverless-workgroup-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sqls": ["select 1;", "select 2;", "select 3;"],
                "StatementName": "test-redshift-serverless-workgroup-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

# Monitoraggio dell'API dati
<a name="data-api-monitoring"></a>

Il monitoraggio è una parte importante per mantenere l'affidabilità, la disponibilità e le prestazioni della Data API e delle altre AWS soluzioni. AWS fornisce i seguenti strumenti di monitoraggio per monitorare la Data API, segnalare quando qualcosa non va e intraprendere azioni automatiche se necessario: 
+ Amazon EventBridge può essere utilizzato per automatizzare AWS i tuoi servizi e rispondere automaticamente agli eventi di sistema, come problemi di disponibilità delle applicazioni o modifiche delle risorse. Gli eventi AWS relativi ai servizi vengono forniti quasi EventBridge in tempo reale. Puoi compilare regole semplici che indichino quali eventi sono considerati di interesse per te e quali operazioni automatizzate intraprendere quando un evento corrisponde a una regola. Per ulteriori informazioni, consulta la [Amazon EventBridge User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/). 
+ AWS CloudTrail acquisisce le chiamate API e gli eventi correlati effettuati da o per conto del tuo AWS account e invia i file di log a un bucket Amazon S3 da te specificato. Puoi identificare quali utenti e account hanno chiamato AWS, l'indirizzo IP di origine da cui sono state effettuate le chiamate e quando sono avvenute le chiamate. Per ulteriori informazioni su come è integrato Amazon Redshift AWS CloudTrail, consulta [Logging](https://docs.aws.amazon.com/redshift/latest/mgmt/logging-with-cloudtrail.html) with. CloudTrail Per ulteriori informazioni su CloudTrail, consulta la Guida per l'[AWS CloudTrail utente](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). 

**Topics**
+ [Eventi di monitoraggio per l'Amazon Redshift Data API in Amazon EventBridge](data-api-monitoring-events.md)

# Eventi di monitoraggio per l'Amazon Redshift Data API in Amazon EventBridge
<a name="data-api-monitoring-events"></a>

Puoi monitorare gli eventi dell'API Data in EventBridge, che fornisce un flusso di dati in tempo reale dalle tue applicazioni, applicazioni software-as-a-service (SaaS) e AWS servizi. EventBridge indirizza tali dati verso destinazioni come AWS Lambda Amazon SNS. Questi eventi sono gli stessi che compaiono in CloudWatch Events, che fornisce un flusso quasi in tempo reale di eventi di sistema che descrivono i cambiamenti nelle risorse. AWS Gli eventi vengono inviati all'account che contiene il database Amazon Redshift. Ad esempio, se si assume un ruolo in un altro account, gli eventi vengono inviati a tale account. Per ulteriori informazioni, consulta [ EventBridge gli eventi Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) nella *Amazon EventBridge User Guide.* . 

Gli eventi dell'API dati vengono inviati quando l'operazione dell'API dati `ExecuteStatement` o `BatchExecuteStatement` imposta l'opzione `WithEvent` su `true`. Il campo `state` dell'evento può contenere uno dei seguenti valori: 
+ INTERROTTO: l'esecuzione della query è stata interrotta dall'utente. 
+ FAILED: l'esecuzione della query non è riuscita. 
+ FINISHED: l'esecuzione della query è terminata. 

Gli eventi vengono consegnati su base garantita. Per ulteriori informazioni, consulta [Events from AWS services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html) nella *Amazon EventBridge User Guide*. 

## Esempio di l'evento terminato dell'API dati
<a name="data-api-monitoring-events-finished"></a>

L'esempio seguente mostra un evento per l'API dati quando l'operazione dell'API `ExecuteStatement` termina. Nell'esempio, un'istruzione denominata `test.testtable` ha completato l'esecuzione.

```
{
    "version": "0",
    "id": "18e7079c-dd4b-dd64-caf9-e2a31640dab0",
    "detail-type": "Redshift Data Statement Status Change",
    "source": "aws.redshift-data",
    "account": "123456789012",
    "time": "2020-10-01T21:14:26Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster-1"
    ],
    "detail": {
        "principal": "arn:aws:iam::123456789012:user/myuser",
        "statementName": "test.testtable",
        "statementId": "dd2e1ec9-2ee3-49a0-819f-905fa7d75a4a",
        "redshiftQueryId": -1,
        "state": "FINISHED",
        "rows": 1,
        "expireAt": 1601673265
    }
}
```

# Utilizzo AWS KMS con l'API dati Amazon Redshift
<a name="data-api-kms"></a>

Quando crittografi il tuo cluster Amazon Redshift o il gruppo di lavoro Redshift Serverless con una chiave gestita dal cliente, l'API dati di Amazon Redshift utilizza la stessa chiave gestita dal cliente per archiviare e crittografare le tue query e i tuoi risultati.

L'API Data crittografa i dati per impostazione predefinita per proteggere le informazioni sensibili, come il testo delle query e i risultati delle query. Per questa protezione utilizza chiavi di AWS KMS crittografia AWS di proprietà di.

La crittografia predefinita per i dati archiviati riduce il sovraccarico operativo e la complessità quando si proteggono i dati sensibili. Questo approccio consente di creare applicazioni sicure che soddisfano i rigorosi requisiti normativi e di conformità alla crittografia.

## Utilizzo delle sovvenzioni in AWS KMS
<a name="data-api-kms-grants"></a>

L'API Data richiede una concessione per utilizzare la chiave gestita dal cliente.

Quando chiami `ExecuteStatement` o `BatchExecuteStatement` contro un cluster crittografato con una chiave gestita dal cliente, Amazon Redshift crea una concessione per tuo conto inviando una [https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)richiesta a. AWS KMS AWS KMS utilizza le concessioni per consentire all'API Data di accedere a una chiave KMS nel tuo account.

L'API Data richiede la concessione dell'utilizzo della chiave gestita dal cliente per le seguenti operazioni:
+ Invia [https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)richieste per AWS KMS crittografare i metadati delle query con la tua chiave gestita dal cliente.
+ Invia [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)richieste per AWS KMS generare chiavi di dati crittografate dalla chiave gestita dal cliente.
+ Invia [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)richieste a per AWS KMS decrittografare le chiavi di dati crittografate in modo che possano crittografare i tuoi dati.

Puoi revocare l'accesso alla concessione o rimuovere l'accesso di Amazon Redshift alla tua chiave gestita dai clienti in qualsiasi momento. In tal caso, l'API Data non può più accedere ai dati crittografati dalla chiave gestita dal cliente, il che influisce sulle operazioni che dipendono da tali dati. Ad esempio, se tenti di recuperare i risultati della query o di tenere traccia dello stato della query dopo la revoca della concessione, l'API Data restituisce un. `AccessDeniedException`

## Politiche chiave per la chiave gestita dai clienti
<a name="data-api-kms-policy"></a>

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, è possibile specificare una policy della chiave. Per ulteriori informazioni, consulta [Customer managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key) nella *Guida per sviluppatori AWS Key Management Service *.

Per utilizzare le chiavi gestite dai clienti con l'API Data, devi prima consentire l'accesso ad Amazon Redshift. Le seguenti operazioni API devono essere consentite nella policy chiave:
+ `kms:CreateGrant`: aggiunge una concessione a una chiave gestita dal cliente. Concede l'accesso di controllo a una AWS KMS chiave specificata, che consente l'accesso alle operazioni di concessione richieste da Amazon Redshift. Per ulteriori informazioni, consulta [Using grants](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations) in. AWS KMS

Di seguito è riportato un esempio di politica chiave:

```
"Statement":[
   {
      "Sid":"Allow access to principals authorized to use Amazon Redshift",
      "Effect":"Allow",
      "Principal":{
         "AWS":"*"
      },
      "Action":[
         "kms:DescribeKey",
         "kms:CreateGrant"
      ],
      "Resource":"*",
      "Condition":{
         "StringEquals":{
            "kms:ViaService":"redshift.amazonaws.com",
            "kms:CallerAccount":"111122223333"
         }
      }
   },
   {
      "Sid":"AllowKeyAdministratorsAccess",
      "Effect":"Allow",
      "Principal":{
         "AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole"
      },
      "Action":"kms:*",
      "Resource":"*"
   },
   {
      "Sid":"AllowKeyUseForExampleRole",
      "Effect":"Allow",
      "Principal":{
         "AWS":"arn:aws:iam::111122223333:role/ExampleUserRole"
      },
      "Action":[
         "kms:Encrypt",
         "kms:Decrypt",
         "kms:ReEncrypt*",
         "kms:GenerateDataKey*",
         "kms:DescribeKey"
      ],
      "Resource":"*"
   }
]
```

## Contesto di crittografia dell'API dei dati
<a name="data-api-kms-encryption"></a>

Un contesto di crittografia è un insieme opzionale di coppie chiave-valore che contiene informazioni contestuali aggiuntive sui dati. AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi per supportare la crittografia autenticata. Quando includi un contesto di crittografia in una richiesta di crittografia dei dati, AWS KMS associa il contesto di crittografia ai dati crittografati. Per decrittografare i dati, è necessario includere lo stesso contesto di crittografia nella richiesta. 

L'API Data utilizza le stesse tre coppie chiave-valore del contesto di crittografia in tutte le operazioni AWS KMS crittografiche per i cluster predisposti:
+ `aws:redshift:arn`— Amazon Resource Name (ARN) del cluster
+ `aws:redshift:createtime`— Il timestamp in cui è stata richiesta la creazione del cluster
+ `serviceName` – `RedshiftDataAPI`

```
"EncryptionContextSubset": {
    "aws:redshift:arn": "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster",
    "aws:redshift:createtime": "20250815T0000Z",
    "serviceName": "RedshiftDataAPI",
}
```

L'API Data utilizza due coppie chiave-valore del contesto di crittografia in tutte le operazioni AWS KMS crittografiche per gruppi di lavoro senza server:
+ `aws:redshift-serverless:arn`— L'Amazon Resource Name (ARN) del namespace
+ `serviceName`— RedshiftData API

```
"EncryptionContextSubset": {
    "aws:redshift-serverless:arn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace:12345678-1234-1234-1234-123456789012",
    "serviceName": "RedshiftDataAPI"
}
```

Per ulteriori informazioni sulla crittografia, vedere [Introduzione ai dettagli crittografici di AWS KMS](https://docs.aws.amazon.com/kms/latest/cryptographic-details/intro.html). Per ulteriori informazioni su Amazon Redshift e l' AWS KMS integrazione, consulta [Come utilizza Amazon Redshift](https://docs.aws.amazon.com/kms/latest/developerguide/services-redshift.html). AWS KMS

# Utilizzo di Amazon Sagemaker Unified Studio per interrogare i database in Amazon Redshift e Lakehouse SageMaker
<a name="sagemaker-unified-studio"></a>

Amazon SageMaker Unified Studio fornisce un ambiente di sviluppo off-console e supporta l'analisi SQL sui dati di SageMaker Lakehouse, Amazon Redshift e Amazon Athena per l'analisi SQL. Accedi ad Amazon SageMaker Unified Studio utilizzando l'URL fornito dal tuo amministratore e usa il tuo SSO o AWS le tue credenziali per accedere. Per ulteriori informazioni sulla configurazione del tuo primo progetto, consulta la Guida [introduttiva](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/getting-started.html) alla *Amazon SageMaker Unified Studio User Guide*.

[In Amazon SageMaker Unified Studio, puoi eseguire [analisi SQL](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/sql-query.html) eseguendo Amazon Redshift e Amazon Athena con l'editor di query.](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/query-editor-navigate.html) L’editor di query viene utilizzato principalmente per scrivere ed eseguire query, visualizzare i risultati e condividere il lavoro con il team. Esegui query sui tuoi data warehouse Redshift nel Account AWS tuo (all'interno dello stesso account e sull' Account AWS altro), crea query SQL per Redshift e Athena utilizzando la stessa interfaccia e pianifica le query SQL utilizzando Amazon Managed Workflows for Apache Airflow. Puoi anche utilizzare SQL generativo Amazon Q per generare SQL dal linguaggio naturale.