Crea tabelle in Athena - Amazon Athena

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

Per creare tabelle, puoi eseguire DDL istruzioni nella console Athena, utilizzare il modulo Athena Create table o utilizzare un driver o unJDBC. 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

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 nel AWS Glue Data Catalog e lo usa per leggere i dati quando si interroga la tabella utilizzandoSQL. Questo schema-on-readapproccio, 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:

  • 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 Controlla l'accesso ad Amazon S3 da Athena.

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

  • Puoi usare Athena per interrogare gli oggetti ripristinati dalle classi di storage S3 Glacier Flexible Retrieval (precedentemente Glacier) e S3 Glacier Deep Archive Amazon S3, ma devi abilitare la funzionalità per tabella. Se non abiliti la funzionalità su una tabella prima di eseguire una query, Athena salta tutti gli oggetti S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive della tabella. Per ulteriori informazioni, consulta Interroga oggetti Amazon S3 Glacier ripristinati.

    Per informazioni sulle classi di storage, consulta Classi di archiviazione, Modifica della classe di archiviazione di un oggetto in Amazon S3, Transizione alla classe di storage (GLACIERarchiviazione degli oggetti) e Bucket Requester Pays 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.

Per ulteriori informazioni su come specificare una posizione per i dati in Amazon S3, consulta. Specificare la posizione di una tabella in Amazon S3

Altre considerazioni

  • Trasformazioni dei dati transazionali non supportate: Athena non supporta le operazioni basate sulle transazioni (come quelle presenti in Hive o Presto) sui dati delle tabelle. Per un elenco completo delle parole chiave non supportate, consulta Non supportate. DDL

  • Le operazioni sulle tabelle sono ACID: quando si creano, si aggiornano o si eliminano tabelle, tali operazioni sono garantite conformiACID. 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 quando crei tabelle Iceberg, usa 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 utilizzi il plugin AWS Glue CreateTableAPIoperazione o AWS CloudFormation AWS::Glue::Tablemodello per creare una tabella da utilizzare in Athena senza specificare la TableType proprietà e quindi eseguire una DDL query come SHOW CREATE TABLE oppureMSCK REPAIR TABLE, è possibile ricevere il messaggio di errore FAILED: NullPointerException Name is null.

    Per risolvere l'errore, specifica un valore per l'TableInputTableTypeattributo come parte di AWS Glue CreateTableAPIchiama o AWS CloudFormation modello. I valori possibili per TableType includono EXTERNAL_TABLE o VIRTUAL_VIEW.

    Questo requisito si applica solo quando si crea una tabella utilizzando AWS Glue CreateTableAPIoperazione o AWS::Glue::Table modello. Se si crea una tabella per Athena utilizzando un'DDListruzione o un AWS Glue crawler, la TableType proprietà viene definita automaticamente.