Nomi di tabelle, database e colonne - Amazon Athena

Nomi di tabelle, database e colonne

Utilizza questi suggerimenti per la denominazione di colonne, tabelle e database in .

Requisiti database, tabella e colonne

  • I caratteri consentiti per i nomi di database, tabella e colonne AWS Glue devono essere una stringa UTF-8 e devono essere lettere minuscole. Tieni presente che Athena riduce automaticamente tutti i nomi maiuscoli nelle query DDL quando crea database, tabelle o colonne. key Stringa UTF-8, non inferiore a 1 o superiore a 128 byte di lunghezza.

  • Attualmente è possibile inserire spazi iniziali all'inizio dei nomi. Poiché questi spazi iniziali possono essere difficili da rilevare e possono causare problemi di usabilità dopo la creazione, evitate di creare inavvertitamente nomi di oggetti con spazi iniziali.

  • Se utilizzi un modello CloudFormation AWS::Glue::Database per creare un database AWS Glue e non specifichi un nome del database, AWS Glue genera automaticamente un nome del database nel formato resource_name—random_string non compatibile con Athena.

  • È possibile utilizzare AWS Glue Catalog Manager per rinominare le colonne, ma non tabelle o database. Per ovviare a questa limitazione, è necessario utilizzare una definizione del vecchio database per creare un database con il nuovo nome. Quindi si utilizzano le definizioni delle tabelle del vecchio database per ricreare le tabelle nel nuovo database. A tal fine, puoi utilizzare l'SDK AWS CLI o AWS Glue. Per conoscere le fasi della , consulta Utilizzare AWS CLI per ricreare un database AWS Glue e le relative tabelle.

Utilizzare lettere minuscole per i nomi delle tabelle e delle colonne in Athena

Athena accetta maiuscole e minuscole nelle query DDL e DML, ma scrive i nomi in minuscolo quando esegue la query. Per questo motivo, evitare di usare maiuscole e minuscole per i nomi delle tabelle o delle colonne e non fare affidamento sul solo contenitore di Athena per distinguere tali nomi. Ad esempio, se utilizzi un'istruzione DDL per creare una colonna denominata Castle, la colonna creata verrà scritta in minuscolo come castle. Se si specifica quindi il nome della colonna in una query DML come Castle o CASTLE, Athena scriverà in minuscolo il nome per l'esecuzione della query, ma mostrerà l'intestazione della colonna utilizzando la struttura scelta nella query.

I nomi di database, tabelle e colonne devono contenere un massimo di 255 caratteri.

Nomi che iniziano con un trattino basso

Quando crei tabelle, utilizza i backtick per racchiudere i nomi di tabelle, viste o colonne che iniziano con un trattino basso. Ad esempio:

CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`( `_id` string, `_index` string) LOCATION 's3://amzn-s3-demo-bucket/'

Nomi di tabelle, viste o colonne che iniziano con i numeri

Quando si eseguono le query SELECT, CTAS o VIEW inserire le virgolette attorno a identificatori come nomi di tabelle, viste o colonne che iniziano con una cifra. Ad esempio:

CREATE OR REPLACE VIEW "123view" AS SELECT "123columnone", "123columntwo" FROM "234table"

Nomi di colonna e tipi complessi

Per i tipi complessi, nei nomi delle colonne sono consentiti solo caratteri alfanumerici, il trattino basso (_) e il punto (.). Per creare una tabella e una mappatura per le chiavi con caratteri limitati, è possibile utilizzare un'istruzione DDL personalizzata. Per ulteriori informazioni, consulta l'articolo Creare tabelle in Amazon Athena da JSON nifìdificati e mappature tramite JSONSerDe nel blog AWS Big Data.

Parole riservate

Alcune parole riservate in Athena devono avere il carattere escape. Per impostare il carattere escape di parole chiave riservate in istruzioni DDL, occorre racchiuderle tra apici retroversi (`). Per impostare il carattere escape di parole chiave riservate in istruzioni SQL SELECT e nelle query su viste, occorre racchiuderle tra doppie virgolette ('').

Per ulteriori informazioni, consulta Impostare il carattere escape di parole chiave riservate nelle query.

Altre risorse

Per la sintassi completa per la creazione di database e tabelle, vedere le pagine seguenti.

Per ulteriori informazioni su database e tabelle inAWS Glue, consulta Databases and Tables nella Developer Guide. AWS Glue