Creazione di tabelle in Athena - Amazon Athena

Creazione di tabelle in Athena

È possibile eseguire le istruzioni DDL nella console Athena tramite un driver JDBC oppure ODBC o tramite la procedura Create table form (Crea tabella da). 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 serializzatore-deserializzatore (SerDe) per la creazione di tabelle per formati di dati specifici. Per un elenco delle librerie SerDE supportate, consulta Scegliere una SerDe per i propri dati.

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 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 approccio basato sullo schema in lettura, che proietta uno schema sui dati quando si esegue una query, elimina la necessità di caricare o trasformare i dati.

Considerazioni e limitazioni

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

Considerazioni su Amazon S3

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:

Per ulteriori informazioni sulla definizione di una posizione per i dati in Amazon S3, consulta. Specificare la posizione di una tabella in Amazon S3

Altre considerazioni

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

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

  • Tranne che durante la creazione di tabelle Iceberg, utilizza sempre la parola chiave . 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 utilizzi l'operazione dell'API AWS Glue CreateTable o il modello CloudFormation AWS::Glue::Tableper creare una tabella da utilizzare in Athena senza specificare la proprietà TableType e quindi esegui una query DDL come SHOW CREATE TABLE o MSCK REPAIR TABLE, potresti ricevere il messaggio di errore FAILED: NullPointerException Name is null.

    Per risolvere l'errore, specificare un valore per l'attributo TableType TableInput come parte della chiamata API AWS Glue CreateTable o del modello CloudFormation. I valori possibili per TableType includono EXTERNAL_TABLE o VIRTUAL_VIEW.

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