

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

# Crea tabelle in Athena
<a name="creating-tables"></a>

Per creare tabelle, puoi eseguire istruzioni DDL nella console Athena, utilizzare il modulo [**Athena Create** table](creating-tables-how-to.md#to-create-a-table-using-the-wizard) o utilizzare un driver JDBC o ODBC. Athena utilizza Apache Hive per definire le tabelle e creare i database, che sono essenzialmente un namespace logico di tabelle. Athena supporta una varietà di librerie serializer-deserializer (SerDe) per la creazione di tabelle per formati di dati specifici. Per un elenco delle librerie supportate, consulta. SerDe [Scegli un file SerDe per i tuoi dati](supported-serdes.md)

Quando si crea un database e una tabella in Athena, si descrivono semplicemente lo schema e il percorso in cui si trovano i dati della tabella in Amazon S3 per l'interrogazione del tempo di lettura. Athena non modifica i tuoi dati in Amazon S3. Il database e la tabella, pertanto, hanno un significato leggermente diverso rispetto ai sistemi di database relazionali, i quanto i dati non sono archiviati con la definizione dello schema per il database e la tabella. 

Athena memorizza lo schema in AWS Glue Data Catalog e lo utilizza per leggere i dati quando si esegue una query sulla tabella utilizzando SQL. Questo *schema-on-read*approccio, che proietta uno schema sui dati quando si esegue una query, elimina la necessità di caricare o trasformare i dati.

## Considerazioni e limitazioni
<a name="creating-tables-considerations-and-limitations"></a>

Di seguito sono riportate alcune importanti limitazioni e considerazioni per le tabelle in Athena.

### Considerazioni su Amazon S3
<a name="s3-considerations"></a>

Quando si crea una tabella, è necessario specificare una posizione del bucket Amazon S3 per i dati sottostanti tramite la clausola `LOCATION`. Considera i seguenti aspetti:
+ Athena è in grado di eseguire la query solamente alla versione più recente di dati su una versione di un bucket Amazon S3 e non è in grado di eseguire la query alle versioni precedenti dei dati.
+ È necessario disporre delle autorizzazioni per lavorare con i dati nella posizione Amazon S3. Per ulteriori informazioni, consulta [Controllo dell’accesso ad Amazon S3 da Athena](s3-permissions.md).
+ Athena supporta le query su oggetti archiviati con più classi di storage nello stesso bucket specificato dalla clausola `LOCATION`. Ad esempio, è possibile eseguire query sui dati in oggetti archiviati in diverse classi di storage (Standard, Standard-IA e Intelligent-Tiering) in Amazon S3.
+ Athena supporta i [bucket con Pagamento a carico del richiedente](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html). Per informazioni su come abilitare il Pagamento a carico del richiedente per i bucket con dati di origine per i quali intendi eseguire query in Athena, consulta la sezione [Creare un gruppo di lavoro](creating-workgroups.md).
+ Ora puoi usare Amazon Athena per eseguire query su oggetti ripristinati dalle [classi di archiviazione Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-glacier), S3 Glacier Flexible Retrieval (precedentemente Glacier) e S3 Glacier Deep Archive, ma è necessario abilitare questa funzionalità per ciascuna tabella. Se non abiliti la funzionalità su una tabella prima di eseguire una query, Athena salta tutti gli oggetti Amazon Glacier Flexible Retrieval e Amazon Glacier Deep Archive della tabella. Per ulteriori informazioni, consulta [Eseguire query su oggetti Amazon Glacier ripristinati](querying-glacier.md).

  Per informazioni sulle classi di archiviazione, consulta [Classi di archiviazione](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html), [Modifica della classe di archiviazione di un oggetto in Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/ChgStoClsOfObj.html), [Trasferimento alla classe di archiviazione GLACIER (archiviazione di oggetti)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html#before-deciding-to-archive-objects) e [Bucket con pagamento a carico del richiedente](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) nella *Guida per l’utente di Amazon Simple Storage Service*.
+ Se si esegue le query sui bucket Amazon S3 con un numero elevato di oggetti e i dati non sono partizionati, queste query possono influenzare i limiti del tasso di richieste Get in Amazon S3 e comportare eccezioni Amazon S3. Per evitare errori, partiziona i dati. Inoltre, considera di ottimizzare i tassi di richiesta Amazon S3. Per ulteriori informazioni, consulta [Considerazioni sul tasso di richiesta e sulle prestazioni](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html).

Per ulteriori informazioni su come specificare una posizione per i dati in Amazon S3, consulta. [Specificare la posizione di una tabella in Amazon S3](tables-location-format.md)

### Altre considerazioni
<a name="creating-tables-other-considerations"></a>
+ **Le trasformazioni di dati transazionali non sono supportate**: Athena non supporta le operazioni basate su transazioni (ad esempio, quelle che si trovano in Hive o Presto) sulla tabella dei dati. Per un elenco completo di parole chiave non supportate, consulta la sezione [DDL non supportati](unsupported-ddl.md).
+ **Le operazioni sulle tabelle sono ACID**: le operazioni di creazione, aggiornamento ed eliminazione delle tabelle sono conformi ad ACID. Ad esempio, se più utenti o client tentano di creare o modificare una tabella esistente nello stesso momento, solo uno di loro potrà eseguire l'operazione.
+ **Le tabelle sono EXTERNAL**: tranne che durante la creazione di tabelle [Iceberg](querying-iceberg-creating-tables.md), utilizza sempre la parola chiave `EXTERNAL`. Se utilizzi `CREATE TABLE` senza la parola chiave `EXTERNAL` per le tabelle non Iceberg, Athena genera un errore. Quando si elimina una tabella in Athena, solo i metadati della tabella vengono rimossi, mentre i dati rimangono in Amazon S3.
+ Lunghezza **massima della stringa di query: la lunghezza** massima della stringa di query è 256 KB.
+ Se si utilizza l'operazione AWS Glue [CreateTable](https://docs.aws.amazon.com/glue/latest/webapi/API_CreateTable.html)API o il CloudFormation [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html)modello per creare una tabella da utilizzare in Athena senza specificare la `TableType` proprietà e quindi si esegue una query DDL come `SHOW CREATE TABLE` o`MSCK REPAIR TABLE`, è possibile ricevere il messaggio di errore FAILED: NullPointerException  Name is null. 

  [Per risolvere l'errore, specifica un valore per l'[TableInput](https://docs.aws.amazon.com/glue/latest/webapi/API_TableInput.html)`TableType`attributo come parte della chiamata o del modello AWS Glue`CreateTable` API.CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html) I valori possibili per `TableType` includono `EXTERNAL_TABLE` o `VIRTUAL_VIEW`.

  Questo requisito si applica solo quando si crea una tabella utilizzando l'operazione AWS Glue `CreateTable` API o il `AWS::Glue::Table` modello. Se si crea una tabella per Athena utilizzando un'istruzione DDL o un crawler AWS Glue , la proprietà `TableType` viene definita automaticamente. 

**Topics**
+ [

## Considerazioni e limitazioni
](#creating-tables-considerations-and-limitations)
+ [

# Crea tabelle utilizzando AWS Glue o la console Athena
](creating-tables-how-to.md)
+ [

# Specificare la posizione di una tabella in Amazon S3
](tables-location-format.md)
+ [

# Mostra le informazioni sulla tabella dopo la creazione
](creating-tables-showing-table-information.md)

# Crea tabelle utilizzando AWS Glue o la console Athena
<a name="creating-tables-how-to"></a>

È possibile creare tabelle in Athena utilizzando AWS Glue il modulo aggiungi tabella o eseguendo un'istruzione DDL nell'editor di query Athena.

## Per creare una tabella utilizzando il crawler AWS Glue
<a name="to-create-a-table-using-the-aws-glue-data-catalog"></a>

1. Apri la console Athena all'indirizzo [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Nell'editor di query, accanto a **Tabelle e visualizzazioni**, scegli **Crea** e quindi scegli **Crawler AWS Glue **. 

1. Nella pagina **Add crawler** (Aggiungi crawler) della console AWS Glue segui i passaggi per creare un crawler. 

   Per ulteriori informazioni, consulta [Utilizzare un crawler per aggiungere una tabella](schema-crawlers.md).

## Per creare una tabella utilizzando il modulo per la creazione di tabelle Athena
<a name="to-create-a-table-using-the-wizard"></a>

1. Apri la console Athena all'indirizzo [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Nell'editor di query, accanto a **Tables and views** (Tabelle e visualizzazioni), scegli **Create** (Crea) e quindi scegli **S3 bucket data.** (Dati del bucket S3).

1. Nel bucket **Crea tabella dai dati del bucket S3**, inserisci le informazioni per creare la tabella, quindi scegli **Crea tabella**. Per ulteriori informazioni sui campi del modulo, vedi [Usa un modulo nella console Athena per aggiungere una tabella AWS Glue](data-sources-glue-manual-table.md).

## Per creare una tabella utilizzando un’istruzione CREATE TABLE nell’editor di query Athena
<a name="to-create-a-table-using-hive-ddl"></a>

1. Dal menu **Database** scegliere il database per il quale si desidera creare una tabella. Se non si specifica un database nell'istruzione `CREATE TABLE`, la tabella viene creata nel database attualmente selezionato nell'editor di query.

1. Immettere un’istruzione come la seguente nell’editor di query, quindi scegliere **Run**.

   ```
   CREATE EXTERNAL TABLE myopencsvtable (
      firstname string,
      lastname string,
      job string,
      country string
   )
   ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
   WITH SERDEPROPERTIES (
      'separatorChar' = ',',
      'quoteChar' = '"',
      'escapeChar' = '\\'
      )
   STORED AS TEXTFILE
   LOCATION 's3://amzn-s3-demo-bucket/mycsv/';
   ```

# Specificare la posizione di una tabella in Amazon S3
<a name="tables-location-format"></a>

Quando esegui una `CREATE TABLE` query in Athena, Athena registra la tabella nel AWS Glue Data Catalog, dove Athena archivia i metadati.

Per specificare il percorso dei dati in Amazon S3, utilizzare la proprietà `LOCATION` nell’istruzione `CREATE TABLE`, come illustrato nel seguente esempio:

```
CREATE EXTERNAL TABLE `test_table`(
...
)
ROW FORMAT ...
STORED AS INPUTFORMAT ...
OUTPUTFORMAT ...
LOCATION s3://amzn-s3-demo-bucket/folder/
```
+ Per informazioni sulla denominazione dei bucket, consulta [Restrizioni e limitazioni dei bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html) nella *Guida per l'utente di Amazon Simple Storage Service*.
+ Per informazioni sull'utilizzo delle cartelle in Amazon S3, consulta [Utilizzo delle cartelle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-folders.html) nella *Guida per l'utente di Amazon Simple Storage Service.* 

La `LOCATION` in Amazon S3 specifica *tutti* i file che rappresentano la tabella. 

**Importante**  
Athena legge *tutti* i dati archiviati nella cartella Amazon S3 specificata. Se alcuni dati *non* devono essere letti da Athena, non archiviarli nella stessa cartella Amazon S3 dei dati che vuoi che Athena legga.

Quando si specifica `LOCATION` nell'istruzione `CREATE TABLE`, utilizza le seguenti linee guida:
+ Utilizzare una barra finale.
+ Puoi utilizzare un percorso di una cartella Amazon S3 o di un alias del punto di accesso Amazon S3. Per informazioni sugli alias del punto di accesso Amazon S3, consulta [Utilizzo di un alias in stile bucket per il punto di accesso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-alias.html) nella *Guida per l'utente di Amazon S3*.

 **Utilizza**:

```
s3://amzn-s3-demo-bucket/folder/
```

```
s3://amzn-s3-demo-bucket-metadata-s3alias/folder/
```

Non utilizzare uno dei seguenti elementi per specificare `LOCATION` per i propri dati.
+ Per specificare il percorso dei file, non utilizzare nomi di file, trattini bassi, caratteri jolly né modelli glob.
+ Non aggiungere la notazione HTTP completa, ad esempio `s3.amazon.com`, al percorso del bucket Amazon S3.
+ Non utilizzare cartelle vuote come `//` nel percorso, come segue: `S3://amzn-s3-demo-bucket/folder//folder/`. 
+ Non utilizzare percorsi come i seguenti:

  ```
  s3://amzn-s3-demo-bucket
  s3://amzn-s3-demo-bucket/*
  s3://amzn-s3-demo-bucket/mySpecialFile.dat
  s3://amzn-s3-demo-bucket/prefix/filename.csv
  s3://amzn-s3-demo-bucket.s3.amazon.com
  S3://amzn-s3-demo-bucket/prefix//prefix/
  arn:aws:s3:::amzn-s3-demo-bucket/prefix
  s3://arn:aws:s3:<region>:<account_id>:accesspoint/<accesspointname>
  https://<accesspointname>-<number>.s3-accesspoint.<region>.amazonaws.com
  ```

# Mostra le informazioni sulla tabella dopo la creazione
<a name="creating-tables-showing-table-information"></a>

Dopo aver creato una tabella in Athena, il nome viene visualizzato nell’elenco **Tables** (Tabelle) a sinistra. Seleziona i tre puntini verticali accanto al nome della tabella nella console Athena per visualizzare le informazioni sulla tabella e gestirla. 
+ **Anteprima tabella**: mostra le prime 10 righe di tutte le colonne eseguendo l'istruzione `SELECT * FROM "database_name"."table_name" LIMIT 10` nell'editor di query Athena.
+ **Genera tabella DDL**: genera un'istruzione DDL che è possibile utilizzare per ricreare la tabella eseguendo l'`SHOW CREATE TABLE`*table\$1name*istruzione nell'editor di query Athena.
+ **Carica partizioni**: esegue l'istruzione `MSCK REPAIR TABLE table_name` nell'editor di query Athena. Questa opzione è disponibile solo se la tabella dispone di partizioni. 
+ **Inserisci nell'editor**: inserisce il nome della tabella nell'editor di query nella posizione di modifica corrente.
+ **Elimina tabella**: visualizza una finestra di dialogo di conferma che chiede se si desidera eliminare la tabella. Se sei d'accordo, esegue l'istruzione `DROP TABLE table_name` nell'editor di query di Athena.
+ **Proprietà tabella**: mostra il nome della tabella, il nome del database, l'ora di creazione e se la tabella ha dati crittografati.