

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

# Connettore Google Cloud Storage per Amazon Athena
<a name="connectors-gcs"></a>

Il connettore Google Cloud Storage di Amazon Athena consente ad Amazon Athena di eseguire query su file Parquet e CSV archiviati in un bucket Google Cloud Storage (GCS). Dopo aver raggruppato uno o più file Parquet o CSV in una cartella partizionata o non partizionata in un bucket GCS, sarà possibile organizzarli in una tabella di database [AWS Glue](https://aws.amazon.com/glue/).

Questo connettore può essere registrato con il Catalogo Dati Glue come catalogo federato. Supporta i controlli di accesso ai dati definiti in Lake Formation a livello di catalogo, database, tabella, colonna, riga e tag. Questo connettore utilizza connessioni Glue per centralizzare le proprietà di configurazione in Glue.

Se hai abilitato Lake Formation nel tuo account, il ruolo IAM per il tuo connettore Lambda federato Athena che hai distribuito nell'accesso in lettura deve avere accesso in lettura in AWS Serverless Application Repository Lake Formation a. AWS Glue Data Catalog

Per un articolo che mostra come utilizzare Athena per eseguire query su file Parquet o CSV in un bucket GCS, consulta il post sul blog AWS Big Data Use Amazon [Athena per interrogare i dati archiviati in Google Cloud Platform](https://aws.amazon.com/blogs/big-data/use-amazon-athena-to-query-data-stored-in-google-cloud-platform/).

## Prerequisiti
<a name="connectors-gcs-prerequisites"></a>
+ Configura un AWS Glue database e una tabella che corrispondano al tuo bucket e alle tue cartelle in Google Cloud Storage. Per i passaggi, consulta [Configurazione di database e tabelle in AWS Glue](#connectors-gcs-setting-up-databases-and-tables-in-glue) più avanti in questo documento.
+ Implementa il connettore sul tuo Account AWS utilizzando la console Athena o AWS Serverless Application Repository. Per ulteriori informazioni, consulta [Crea una connessione di un'origine dati](connect-to-a-data-source.md) o [Utilizzare il AWS Serverless Application Repository per distribuire un connettore di origine dati](connect-data-source-serverless-app-repo.md).

## Limitazioni
<a name="connectors-gcs-limitations"></a>
+ Le operazioni di scrittura DDL non sono supportate.
+ Eventuali limiti Lambda pertinenti. Per ulteriori informazioni, consulta la sezione [Quote Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html) nella *Guida per gli sviluppatori di AWS Lambda *.
+ Attualmente, il connettore supporta solo il `VARCHAR` tipo per le colonne di partizione (`string`o `varchar` in uno schema AWS Glue tabellare). Altri tipi di campi di partizione generano errori quando vengono interrogati in Athena.

## Termini
<a name="connectors-gcs-terms"></a>

I seguenti termini si riferiscono al connettore GCS.
+ **Gestore**: un gestore Lambda che accede al bucket GCS. Un gestore può gestire i metadati o i record di dati.
+ **Metadata handler** (Gestore dei metadati): un gestore Lambda che recupera i metadati dal bucket GCS.
+ **Record handler** (Gestore dei record): un gestore Lambda che recupera i record di dati dal bucket GCS.
+ **Composite handler** (Gestore composito): un gestore Lambda che recupera sia i metadati sia i record di dati dal bucket GCS.

## Tipi di file supportati
<a name="connectors-gcs-supported-file-types"></a>

Il connettore GCS supporta i tipi di file Parquet e CSV.

**Nota**  
Assicurati di non inserire entrambi i file CSV e Parquet nello stesso bucket o percorso GCS. Ciò potrebbe causare un errore di runtime quando si prova a leggere i file Parquet come CSV o viceversa. 

## Parameters
<a name="connectors-gcs-parameters"></a>

Utilizzare i parametri illustrati in questa sezione per configurare il connettore GCS.

**Nota**  
I connettori di origine dati Athena creati il 3 dicembre 2024 e versioni successive utilizzano connessioni. AWS Glue   
I nomi e le definizioni dei parametri elencati di seguito si riferiscono ai connettori di origine dati Athena creati prima del 3 dicembre 2024. Questi possono differire dalle [proprietà diconnessione AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/connection-properties.html) corrispondenti. Dal 3 dicembre 2024, utilizzare i parametri seguenti solo quando si [implementa manualmente](connect-data-source-serverless-app-repo.md) una versione precedente di un connettore di origine dati Athena.

### Connessioni Glue (consigliate)
<a name="connectors-gcs-gc"></a>

Si consiglia di configurare un connettore GCS utilizzando un oggetto di connessioni Glue. Per fare ciò, imposta la variabile di ambiente `glue_connection` del connettore GCS Lambda sul nome della connessione Glue da utilizzare.

**Proprietà delle connessioni Glue**

Utilizzare il seguente comando per ottenere lo schema di un oggetto di connessione Glue. Questo schema contiene tutti i parametri che è possibile usare per controllare la connessione.

```
aws glue describe-connection-type --connection-type GOOGLECLOUDSTORAGE
```

**Proprietà dell’ambiente Lambda**
+ **glue\$1connection**: specifica il nome della connessione Glue associata al connettore federato.

**Nota**  
Tutti i connettori che utilizzano le connessioni Glue devono essere utilizzati Gestione dei segreti AWS per memorizzare le credenziali.
Il connettore GCS creato utilizzando le connessioni Glue non supporta l’uso di un gestore multiplexing.
Il connettore GCS creato utilizzando le connessioni Glue supporta solo 2 `ConnectionSchemaVersion`.

### Connessioni legacy
<a name="connectors-gcs-legacy"></a>
+ **spill\$1bucket**: specifica il bucket Amazon S3 per i dati che superano i limiti della funzione Lambda.
+ **spill\$1prefix**: (facoltativo) per impostazione predefinita, viene utilizzata una sottocartella nello `spill_bucket` specificato chiamata `athena-federation-spill`. Ti consigliamo di configurare un [ciclo di vita dell'archiviazione](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) di Amazon S3 in questa posizione per eliminare gli spill più vecchi di un numero predeterminato di giorni o ore.
+ **spill\$1put\$1request\$1headers**: (facoltativo) una mappa codificata in JSON delle intestazioni e dei valori della richiesta per la richiesta `putObject` di Amazon S3 utilizzata per lo spill (ad esempio, `{"x-amz-server-side-encryption" : "AES256"}`). Per altre possibili intestazioni, consulta il *riferimento [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)all'API di Amazon Simple Storage Service*.
+ **kms\$1key\$1id**: (facoltativo) per impostazione predefinita, tutti i dati riversati in Amazon S3 vengono crittografati utilizzando la modalità di crittografia autenticata AES-GCM e una chiave generata casualmente. Per fare in modo che la tua funzione Lambda utilizzi chiavi di crittografia più potenti generate da KMS come `a7e63k4b-8loc-40db-a2a1-4d0en2cd8331`, puoi specificare l'ID della chiave KMS.
+ **disable\$1spill\$1encryption**: (facoltativo) se impostato su `True`, disabilita la crittografia dello spill. L'impostazione predefinita è `False`: in questo modo, i dati riversati su S3 vengono crittografati utilizzando AES-GCM tramite una chiave generata casualmente o una chiave generata mediante KMS. La disabilitazione della crittografia dello spill può migliorare le prestazioni, soprattutto se la posizione dello spill utilizza la [crittografia lato server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html).
+ **secret\$1manager\$1gcp\$1creds\$1name — Il nome del segreto Gestione dei segreti AWS che contiene le tue credenziali** GCS in formato JSON (ad esempio,). `GoogleCloudPlatformCredentials`

## Configurazione di database e tabelle in AWS Glue
<a name="connectors-gcs-setting-up-databases-and-tables-in-glue"></a>

Poiché la funzionalità integrata di inferenza dello schema del connettore GCS è limitata, si consiglia di utilizzarla AWS Glue per i metadati. Le procedure seguenti mostrano come creare un database e una tabella a AWS Glue cui è possibile accedere da Athena.

### Creazione di un database in AWS Glue
<a name="connectors-gcs-creating-a-database-in-glue"></a>

È possibile utilizzare la AWS Glue console per creare un database da utilizzare con il connettore GCS.

**Per creare un database in AWS Glue**

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

1. Nel pannello di navigazione seleziona **Databases** (Database).

1. Scegli **Aggiungi database**.

1. In **Name** (Nome) immetti un nome per il database che desideri utilizzare con il connettore GCS.

1. Per **Location**, specificare`google-cloud-storage-flag`. Questa posizione indica al connettore GCS che il AWS Glue database contiene tabelle per i dati GCS da interrogare in Athena. Il connettore riconosce i database in Athena che hanno questo flag e ignora quelli che non lo hanno.

1. Scegliere **Crea database**.

### Creazione di una tabella in AWS Glue
<a name="connectors-gcs-creating-a-table-in-glue"></a>

Ora puoi creare una tabella per il database. Quando si crea una AWS Glue tabella da utilizzare con il connettore GCS, è necessario specificare metadati aggiuntivi.

**Per creare una tabella nella console AWS Glue**

1. Nella AWS Glue console, dal pannello di navigazione, scegli **Tabelle**.

1. Nella pagina **Tables** (Tabelle), scegli **Add table** (Aggiungi tabella).

1. Nella pagina **Set table properties** (Imposta proprietà tabella) immetti le seguenti informazioni.
   + **Name** (Nome): un nome univoco per la tabella.
   + **Database**: scegli il database AWS Glue creato per il connettore GCS.
   + **Include path** (Includi percorso): nella sezione **Data store** (Archivio dati), in **Include path** (Includi percorso), inserisci la posizione URI per GCS preceduta da `gs://` (ad esempio, `gs://gcs_table/data/`). Se disponi di una o più cartelle di partizione, non includerle nel percorso.
**Nota**  
Quando si immette il percorso di tabella non `s3://`, la console AWS Glue riporta un errore. Puoi ignorare questo errore. La tabella verrà creata correttamente.
   + **Data format** (Formato dati): per **Classification** (Classificazione), seleziona **CSV** o **Parquet**.

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

1. Nella pagina **Choose or define schema** (Scegli o definisci schema), la definizione di uno schema di tabella è altamente consigliata, ma non obbligatoria. Se non viene definito uno schema, il connettore GCS prova a dedurne uno per tuo conto.

   Esegui una delle seguenti operazioni:
   + Se desideri che il connettore GCS provi a dedurre uno schema per tuo conto, scegli **Next** (Successivo), quindi **Create** (Crea).
   + Per definire uno schema personale, seguire la procedura descritta nella sezione successiva.

### Definizione di uno schema di tabella in AWS Glue
<a name="connectors-gcs-defining-a-table-schema-in-glue"></a>

La definizione di uno schema di tabella in AWS Glue richiede più passaggi, ma offre un maggiore controllo sul processo di creazione della tabella.

**Per definire uno schema per la tabella in AWS Glue**

1. Nella pagina **Choose or define schema** (Scegli o definisci schema), seleziona **Add** (Aggiungi).

1. Utilizza la finestra di dialogo **Add schema entry** (Aggiungi voce allo schema) per fornire un nome di colonna e un tipo di dati.

1. Per designare la colonna come colonna di partizione, seleziona l'opzione **Set as partition key** (Imposta come chiave di partizione).

1. Seleziona **Save** (Salva) per salvare la colonna.

1. Scegli **Add** (Aggiungi) per aggiungere un'altra colonna.

1. Dopo aver aggiunto le colonne, seleziona **Next** (Successivo).

1. Nella pagina **Review and create** (Rivedi e crea), verifica la tabella, quindi scegli **Create** (Crea).

1. Se lo schema contiene informazioni sulle partizioni, completa la procedura descritta nella sezione successiva per aggiungere un modello di partizione alle proprietà della tabella in AWS Glue.

### Aggiungere uno schema di partizione alle proprietà della tabella in AWS Glue
<a name="connectors-gcs-adding-a-partition-pattern-to-table-properties-in-glue"></a>

Se i bucket GCS hanno delle partizioni, è necessario aggiungere il modello di partizione alle proprietà della tabella in AWS Glue.

**Per aggiungere informazioni sulle partizioni alle proprietà della tabella AWS Glue**

1. Nella pagina dei dettagli della tabella in cui hai creato AWS Glue, scegli **Azioni**, **Modifica tabella.**

1. Nella pagina **Edit table** (Modifica tabella), scorri verso il basso fino alla sezione **Table properties** (Proprietà della tabella).

1. Scegli **Add** (Aggiungi) per aggiungere una chiave di partizione.

1. In **Chiave**, inserire **partition.pattern**. Questa chiave definisce il modello del percorso della cartella.

1. In **Value** (Valore), inserisci un modello di percorso della cartella come **StateName=\$1\$1statename\$1/ZipCode=\$1\$1zipcode\$1/**, dove **statename** e **zipcode** racchiusi tra **\$1\$1\$1** sono i nomi delle colonne delle partizioni. Il connettore GCS supporta schemi di partizione Hive e non Hive.

1. Quando hai terminato, seleziona **Save** (Salva).

1. Per visualizzare le proprietà della tabella appena creata, scegli la scheda **Advanced properties** (Proprietà avanzate).

A questo punto, è possibile passare alla console Athena. Il database e la tabella in cui hai creato AWS Glue sono disponibili per l'interrogazione in Athena.

## Supporto dei tipi di dati
<a name="connectors-gcs-data-type-support"></a>

Le tabelle seguenti mostrano i tipi di dati supportati per CSV e Parquet.

### CSV
<a name="connectors-gcs-csv"></a>


****  

| **Natura dei dati** | **Tipo di dati dedotto** | 
| --- | --- | 
| I dati hanno l'aspetto di un numero | BIGINT | 
| I dati hanno l'aspetto di una stringa | VARCHAR | 
| I dati hanno l'aspetto di una virgola mobile (mobile, doppia o decimale) | DOUBLE | 
| I dati hanno l'aspetto di una data | Time stamp | 
| Dati che contengono valori true/false  | BOOL | 

### Parquet
<a name="connectors-gcs-parquet"></a>


****  

| **PARQUET** | **Athena (freccia)** | 
| --- | --- | 
| BINARY | VARCHAR | 
| BOOLEAN | BOOL | 
| DOUBLE | DOUBLE | 
| ENUM | VARCHAR | 
| FIXED\$1LEN\$1BYTE\$1ARRAY | DECIMAL | 
| FLOAT | FLOAT (32 bit) | 
| INT32 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/athena/latest/ug/connectors-gcs.html)  | 
| INT64 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/athena/latest/ug/connectors-gcs.html)  | 
| INT96 | Time stamp | 
| MAP | MAP | 
| STRUCT | STRUCT | 
| LIST | LIST | 

## Autorizzazioni richieste
<a name="connectors-gcs-required-permissions"></a>

Consulta la sezione `Policies` del file [athena-gcs.yaml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-gcs/athena-gcs.yaml) per i dettagli completi delle policy IAM richieste da questo connettore. L'elenco che segue riporta un riepilogo delle autorizzazioni richieste.
+ **Accesso in scrittura ad Amazon S3**: per trasferire i risultati di query di grandi dimensioni, il connettore richiede l'accesso in scrittura a una posizione in Amazon S3.
+ **Athena GetQueryExecution**: il connettore utilizza questa autorizzazione per fallire rapidamente quando la query Athena upstream è terminata.
+ **AWS Glue Data Catalog**— Il connettore GCS richiede l'accesso in sola lettura per ottenere informazioni sullo schema. AWS Glue Data Catalog 
+ **CloudWatch Registri**: il connettore richiede l'accesso ai CloudWatch registri per l'archiviazione dei registri.

## Performance
<a name="connectors-gcs-performance"></a>

Quando lo schema della tabella contiene campi di partizione e la proprietà della tabella `partition.pattern` è configurata correttamente, è possibile includere il campo di partizione nella clausola `WHERE` delle query. Per tali query, il connettore GCS utilizza le colonne delle partizioni per perfezionare il percorso della cartella GCS ed evitare la scansione di file non necessari nelle cartelle GCS.

Per i set di dati Parquet, la selezione di un sottoinsieme di colonne comporta un minor numero di dati da scansionare. Ciò si traduce in genere in un runtime di esecuzione delle query più breve quando viene applicata la proiezione di colonne. 

Per i set di dati CSV, la proiezione di colonne non è supportata e non riduce la quantità di dati da scansionare. 

Le clausole `LIMIT` riducono la quantità di dati scansionati, ma se non viene fornito un predicato, le query `SELECT` con una clausola `LIMIT` eseguiranno la scansione di almeno 16 MB di dati. Il connettore GCS esegue la scansione di un maggior numero di dati per i set di dati più grandi rispetto ai set di dati più piccoli indipendentemente dalla clausola `LIMIT` applicata. Ad esempio, la query `SELECT * LIMIT 10000` esegue la scansione di un maggior numero di dati per un set di dati sottostante più grande rispetto a uno più piccolo.

### Informazioni sulla licenza
<a name="connectors-gcs-license-information"></a>

Utilizzando questo connettore, l'utente riconosce l'inclusione di componenti di terze parti, un elenco dei quali è disponibile nel file [pom.xml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-gcs/pom.xml) relativo a questo connettore, e accetta i termini delle rispettive licenze di terze parti fornite nel file [LICENSE.txt](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-gcs/LICENSE.txt) su .com. GitHub

### Risorse aggiuntive
<a name="connectors-gcs-additional-resources"></a>

Per ulteriori informazioni su questo connettore, visita [il sito corrispondente](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-gcs) su GitHub .com.