Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

CREATE TABLE AS

Modalità Focus

In questa pagina

CREATE TABLE AS - 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à.

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 una nuova tabella popolata con i risultati di una query SELECT. Per creare una tabella vuota, usaCREATE TABLE. CREATE TABLE AScombina un'CREATE TABLEDDListruzione con un'SELECTDMListruzione e quindi tecnicamente contiene sia DDL eDML. Si noti che, sebbene siano CREATE TABLE AS raggruppate qui con altre DDL istruzioni, le CTAS interrogazioni in Athena vengono trattate come ai fini del Service DML Quotas. Per informazioni sulle Service Quotas in Athena, consulta Service Quotas (Quote di Servizio).

Nota

Per quanto riguarda CTAS le dichiarazioni, l'impostazione del proprietario del bucket previsto non si applica alla posizione della tabella di destinazione in Amazon S3. L'impostazione attesa relativa al proprietario del bucket si applica solo al percorso di output di Amazon S3 specificato per i risultati delle query di Athena. Per ulteriori informazioni, consulta Specificare la posizione dei risultati della query utilizzando la console Athena.

Per ulteriori informazioni su CREATE TABLE AS oltre all'ambito di questo argomento di riferimento, consulta Crea una tabella dai risultati della query (CTAS).

Riepilogo

CREATE TABLE table_name [ WITH ( property_name = expression [, ...] ) ] AS query [ WITH [ NO ] DATA ]

Dove:

WITH(property_name = espressione [,...])

Un elenco di proprietà opzionali della CTAS tabella, alcune delle quali sono specifiche del formato di archiviazione dei dati. Per informazioni, consulta CTASproprietà della tabella.

query

Query SELECT utilizzata per creare una nuova tabella.

Importante

Se prevedi di creare una query con partizioni, specifica i nomi delle colonne partizionate nelle ultime voci dell'elenco delle colonne nella dichiarazione SELECT.

WITH[NO]DATA]

Se si utilizza WITH NO DATA, viene creata una nuova tabella vuota con lo stesso schema della tabella originale.

Nota

Per includere le intestazioni di colonna nell'output dei risultati della query, è possibile utilizzare una semplice SELECT query anziché una CTAS query. È possibile recuperare i risultati dalla posizione dei risultati della query o scaricarli direttamente utilizzando la console Athena. Per ulteriori informazioni, consulta Utilizzare i risultati delle query e le query recenti.

CTASproprietà della tabella

Ogni CTAS tabella in Athena ha un elenco di proprietà di CTAS tabella opzionali che è possibile specificare utilizzando. WITH (property_name = expression [, ...] ) Per ulteriori informazioni sull'uso di questi parametri, consulta Esempi di CTAS domande.

WITH (property_name = expression [, ...], )
table_type = ['HIVE', 'ICEBERG']

Facoltativo. Il valore predefinito è HIVE. Specifica il tipo di tabella della tabella risultante

Esempio:

WITH (table_type ='ICEBERG')
external_location = [location]
Nota

Poiché le tabelle Iceberg non sono esterne, questa proprietà non si applica ad esse. Per definire la posizione principale di una tabella Iceberg in un'CTASistruzione, utilizzate la location proprietà descritta più avanti in questa sezione.

Facoltativo. La posizione in cui Athena salva la tua CTAS query in Amazon S3.

Esempio:

WITH (external_location ='s3://amzn-s3-demo-bucket/tables/parquet_table/')

Athena non utilizza due volte lo stesso percorso per i risultati della query. Se si specifica il percorso manualmente, verificare che il percorso Amazon S3 non contenga dei dati. Athena non tenta mai di cancellare i tuoi dati. Se desideri utilizzare nuovamente la stessa posizione, elimina manualmente i dati o la CTAS query avrà esito negativo.

Se si esegue una CTAS query che specifica una posizione external_location in un gruppo di lavoro che impone una posizione dei risultati della query, la query ha esito negativo e viene visualizzato un messaggio di errore. Per visualizzare la posizione dei risultati della query specificata per il gruppo di lavoro, vedere i dettagli del gruppo di lavoro.

Se il gruppo di lavoro sostituisce l'impostazione lato client per la posizione dei risultati della query, Athena crea la tabella nel percorso seguente:

s3://amzn-s3-demo-bucket/tables/query-id/

Se non si utilizza la proprietà external_location per specificare una posizione e il gruppo di lavoro non sostituisce le impostazioni lato client, Athena utilizza l'impostazione lato client per la posizione dei risultati della query per creare la tabella nel percorso seguente:

s3://amzn-s3-demo-bucket/Unsaved-or-query-name/year/month/date/tables/query-id/
is_external = [boolean]

Facoltativo. Indica se la tabella è una tabella esterna. Il valore predefinito è true. Per le tabelle Iceberg, questo valore deve essere impostato su false.

Esempio:

WITH (is_external = false)
location = [location]

Obbligatorio per le tabelle Iceberg. Specifica la posizione principale della tabella Iceberg da creare partendo dai risultati della query.

Esempio:

WITH (location ='s3://amzn-s3-demo-bucket/tables/iceberg_table/')
field_delimiter = [delimiter]

Facoltativo e specifiche per formati di storage dei dati basati su testo. Il delimitatore di campo a carattere singolo per i file inCSV, e i file di testo. TSV Ad esempio WITH (field_delimiter = ','). Attualmente, i delimitatori di campo con più caratteri non sono supportati per le interrogazioni. CTAS Se non si specifica un delimitatore, per impostazione predefinita viene utilizzato \001.

format = [storage_format]

Il formato di archiviazione per i risultati della CTAS query, ad esempio,,,ORC, PARQUET o. AVRO JSON ION TEXTFILE Per le tabelle Iceberg, i formati consentiti sono ORC, PARQUET e AVRO. Se omesso, per impostazione predefinita viene utilizzato PARQUET. Il nome di questo parametroformat, deve essere elencato in lettere minuscole, altrimenti la CTAS query avrà esito negativo.

Esempio:

WITH (format = 'PARQUET')
bucketed_by = ARRAY[ column_name[,…], bucket_count = [int] ]
Nota

Questa proprietà non è valida per le tabelle Iceberg. Per le tabelle Iceberg, utilizza il partizionamento con trasformazione del bucket.

Elenco matrice di bucket per periodizzare i dati. Se omesso, Athena non salva tuoi dati nel bucket in questa query.

bucket_count = [int]
Nota

Questa proprietà non è valida per le tabelle Iceberg. Per le tabelle Iceberg, utilizza il partizionamento con trasformazione del bucket.

Il numero di bucket per la periodizzazione dei dati. Se omesso, Athena non conserva i dati nel bucket. Esempio:

CREATE TABLE bucketed_table WITH ( bucketed_by = ARRAY[column_name], bucket_count = 30, format = 'PARQUET', external_location ='s3://amzn-s3-demo-bucket/tables/parquet_table/' ) AS SELECT * FROM table_name
partitioned_by = ARRAY[ col_name[,…] ]
Nota

Questa proprietà non è valida per le tabelle Iceberg. Per utilizzare le trasformazioni delle partizioni per le tabelle Iceberg, utilizza la proprietà partitioning descritta più avanti in questa sezione.

Facoltativo. Un elenco di matrici di colonne in base al quale la CTAS tabella verrà partizionata. Verificare che i nomi delle colonne partizionate siano elencate per ultimi nell'elenco delle colonne della dichiarazione SELECT.

partitioning = ARRAY[partition_transform, ...]

Facoltativo. Specifica il partizionamento della tabella Iceberg da creare. Iceberg supporta un'ampia varietà di trasformazioni ed evoluzione delle partizioni. La tabella seguente riepiloga le trasformazioni delle partizioni.

Trasformazione Descrizione
year(ts) Crea una partizione per ogni anno. Il valore della partizione è la differenza espressa con numero intero degli anni compresi tra ts e il 1° gennaio 1970.
month(ts) Crea una partizione per ogni mese di ogni anno. Il valore della partizione è la differenza espressa con numero intero dei mesi compresi tra ts e il 1° gennaio 1970.
day(ts) Crea una partizione per ogni giorno di ogni anno. Il valore della partizione è la differenza espressa con numero intero dei giorni compresi tra ts e il 1° gennaio 1970.
hour(ts) Crea una partizione per ogni ora di ogni giorno. Il valore della partizione è un timestamp con i minuti e i secondi impostati su zero.
bucket(x, nbuckets) Esegue l'hashing dei dati nel numero di bucket specificato. Il valore della partizione è un hash intero di x, con un valore compreso tra 0 e nbuckets - 1 inclusi.
truncate(s, nchars) Imposta il valore della partizione come primi nchars caratteri di s.

Esempio:

WITH (partitioning = ARRAY['month(order_date)', 'bucket(account_number, 10)', 'country']))
optimize_rewrite_min_data_file_size_bytes = [long]

Facoltativo. Configurazione specifica dell'ottimizzazione dei dati I file più piccoli del valore specificato sono inclusi per la compattazione. Il valore predefinito è 0,75 volte il valore di write_target_data_file_size_bytes. Questa proprietà si applica solo alle tabelle Iceberg. Per ulteriori informazioni, consulta Ottimizza le tabelle Iceberg.

Esempio:

WITH (optimize_rewrite_min_data_file_size_bytes = 402653184)
optimize_rewrite_max_data_file_size_bytes = [long]

Facoltativo. Configurazione specifica dell'ottimizzazione dei dati I file più grandi del valore specificato sono inclusi per la compattazione. Il valore predefinito è 1,8 volte il valore di write_target_data_file_size_bytes. Questa proprietà si applica solo alle tabelle Iceberg. Per ulteriori informazioni, consulta Ottimizza le tabelle Iceberg.

Esempio:

WITH (optimize_rewrite_max_data_file_size_bytes = 966367641)
optimize_rewrite_data_file_threshold = [int]

Facoltativo. Configurazione specifica dell'ottimizzazione dei dati Se ci sono meno file di dati che richiedono un'ottimizzazione rispetto alla soglia specificata, i file non vengono riscritti. Ciò consente l'accumulo di più file di dati per produrre file più vicini alle dimensioni di destinazione e saltare i calcoli non necessari per risparmiare sui costi. Il predefinito è 5. Questa proprietà si applica solo alle tabelle Iceberg. Per ulteriori informazioni, consulta Ottimizza le tabelle Iceberg.

Esempio:

WITH (optimize_rewrite_data_file_threshold = 5)
optimize_rewrite_delete_file_threshold = [int]

Facoltativo. Configurazione specifica dell'ottimizzazione dei dati Se a un file di dati sono associati meno file di eliminazione rispetto alla soglia, il file di dati non viene riscritto. Ciò consente l'accumulo di più file di eliminazione per ogni file di dati per risparmiare sui costi. Il valore predefinito è 2. Questa proprietà si applica solo alle tabelle Iceberg. Per ulteriori informazioni, consulta Ottimizza le tabelle Iceberg.

Esempio:

WITH (optimize_rewrite_delete_file_threshold = 2)
vacuum_min_snapshots_to_keep = [int]

Facoltativo. Configurazione specifica per il vacuum. Il numero minimo di snapshot più recenti da mantenere. Il valore di default è 1. Questa proprietà si applica solo alle tabelle Iceberg. Per ulteriori informazioni, consulta VACUUM.

Nota

La proprietà vacuum_min_snapshots_to_keep richiede la versione 3 del motore Athena.

Esempio:

WITH (vacuum_min_snapshots_to_keep = 1)
vacuum_max_snapshot_age_seconds = [long]

Facoltativo. Configurazione specifica per il vacuum. Un periodo in secondi che rappresenta l'età degli snapshot da mantenere. Il valore predefinito è 432.000 (5 giorni). Questa proprietà si applica solo alle tabelle Iceberg. Per ulteriori informazioni, consulta VACUUM.

Nota

La proprietà vacuum_max_snapshot_age_seconds richiede la versione 3 del motore Athena.

Esempio:

WITH (vacuum_max_snapshot_age_seconds = 432000)
write_compression = [compression_format]

Il tipo di compressione da utilizzare per qualsiasi formato di archiviazione che consente di specificare la compressione. Il valore compression_format specifica la compressione da utilizzare quando i dati vengono scritti nella tabella. È possibile specificare la compressione per i formati file TEXTFILE, JSON, PARQUET e ORC.

Ad esempio, se la proprietà format specifica PARQUET come formato di archiviazione, il valore per write_compression specifica il formato di compressione per Parquet. In questo caso, specificare un valore per write_compression equivale a specificare un valore per parquet_compression.

Analogamente, se la format proprietà specifica ORC come formato di archiviazione, il valore di write_compression specifica il formato di compressione per. ORC In questo caso, specificare un valore per write_compression equivale a specificare un valore per orc_compression.

Non è possibile specificare più proprietà della tabella del formato di compressione nella stessa CTAS query. Ad esempio, non è possibile specificare sia write_compression che parquet_compression nella stessa query. Lo stesso vale per write_compression e orc_compression. Per informazioni sui tipi di compressione supportati per ciascun formato di file, consultare Usa la compressione in Athena.

orc_compression = [compression_format]

Il tipo di compressione da utilizzare per il formato di file ORC quando i dati ORC vengono scritti nella tabella. Ad esempio WITH (orc_compression = 'ZLIB'). I blocchi all'interno del file ORC (eccetto il Postscript ORC) vengono compressi utilizzando la compressione specificata. Se omesso, per impostazione predefinita viene utilizzata ZLIB la compressione perORC.

Nota

Si consiglia invece di utilizzare la proprietà write_compression al posto di orc_compression. Utilizzare la proprietà format per specificare il formato di archiviazione come ORC, quindi utilizzare la proprietà write_compression per specificare il formato di compressione che sarà utilizzato da ORC.

parquet_compression = [compression_format]

Il tipo di compressione da utilizzare per il formato di file Parquet quando i dati Parquet vengono scritti nella tabella. Ad esempio WITH (parquet_compression = 'SNAPPY'). Questa compressione viene applicata ai blocchi di colonna all'interno dei file Parquet. Se omesso, GZIP la compressione viene utilizzata di default per Parquet.

Nota

Si consiglia invece di utilizzare la proprietà write_compression al posto di parquet_compression. Utilizzare la proprietà format per specificare il formato di archiviazione come PARQUET, quindi utilizzare la proprietà write_compression per specificare il formato di compressione che sarà utilizzato da PARQUET.

compression_level = [compression_level]

Il livello di compressione da utilizzare. Questa proprietà si applica solo alla ZSTD compressione. I valori possibili sono compresi tra 1 e 22. Il valore predefinito è 3. Per ulteriori informazioni, consulta Usa i livelli di ZSTD compressione.

Esempi

Per esempi di CTAS interrogazioni, consulta le seguenti risorse.

Argomento successivo:

CREATE VIEW

Argomento precedente:

CREATE TABLE
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.