CREATE TABLE AS - Amazon Redshift

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

CREATE TABLE AS

Crea una nuova tabella in base a una query. Il proprietario di questa tabella è l'utente che invia il comando.

La nuova tabella viene caricata con i dati definiti dalla query nel comando. Le colonne della tabella hanno nomi e tipi di dati associati alle colonne di output della query. Il comando CREATE TABLE AS (CTAS) crea una nuova tabella e valuta la query per caricare la nuova tabella.

Sintassi

CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name [ ( column_name [, ... ] ) ] [ BACKUP { YES | NO } ] [ table_attributes ] AS query where table_attributes are: [ DISTSTYLE { AUTO | EVEN | ALL | KEY } ] [ DISTKEY( distkey_identifier ) ] [ [ COMPOUND | INTERLEAVED ] SORTKEY( column_name [, ...] ) ]

Parametri

LOCAL

Sebbene questa parola chiave opzionale sia accettata nell'istruzione, non ha alcun effetto in Amazon Redshift.

TEMPORARY | TEMP

Crea una tabella temporanea. La tabella temporanea viene automaticamente eliminata alla fine della sessione in cui è stata creata.

table_name

Nome della tabella da creare.

Importante

Se specifichi un nome di tabella che inizia con "#", la tabella viene creata come tabella temporanea. Ad esempio:

create table #newtable (id) as select * from oldtable;

La lunghezza massima per il nome della tabella è 127 byte; i nomi più lunghi vengono troncati a 127 byte. Amazon Redshift applica una quota del numero di tabelle per cluster per tipo di nodo. Il nome della tabella può essere qualificato con il nome del database e dello schema, come mostra la tabella seguente.

create table tickit.public.test (c1) as select * from oldtable;

Nell'esempio seguente, tickit è il nome del database e public è il nome dello schema. Se il database o lo schema non esiste, l'istruzione restituisce un errore.

Se viene specificato un nome dello schema, la nuova tabella viene creata in quello schema (presupponendo che il creatore abbia accesso allo schema). Il nome della tabella deve essere un nome univoco per lo schema. Se non viene specificato alcuno schema, la tabella viene creata utilizzando lo schema del database corrente. Se stai creando una tabella temporanea, non puoi specificare un nome schema perché le tabelle temporanee esistono in uno schema speciale.

Più tabelle temporanee con lo stesso nome possono esistere contemporaneamente nello stesso database se vengono create in sessioni separate. Queste tabelle sono assegnate a schemi diversi.

column_name

Nome di una colonna nella nuova tabella. Se non vengono forniti nomi di colonne, i nomi delle colonne vengono presi dai nomi delle colonne di output della query. I nomi di colonna predefiniti vengono utilizzati per le espressioni. Per ulteriori informazioni sui nomi validi, consultare Nomi e identificatori.

BACKUP { YES | NO }

Clausola che specifica se la tabella deve essere inclusa negli snapshot di cluster automatizzati e manuali. Per le tabelle come le tabelle di gestione temporanea che non contengono dati critici, specificare BACKUP NO per risparmiare tempo di elaborazione durante la creazione di snapshot e il ripristino da snapshot e per ridurre lo spazio di archiviazione in Amazon Simple Storage Service. L'impostazione BACKUP NO non ha alcun effetto sulla replica automatica dei dati in altri nodi all'interno del cluster, pertanto le tabelle con BACKUP NO specificato vengono ripristinate in caso di errore del nodo. L'impostazione predefinita è BACKUP YES.

DISTSTYLE { AUTO | EVEN | KEY | ALL }

Definisce lo stile di distribuzione dei dati per l'intera tabella. Amazon Redshift distribuisce le righe di una tabella ai nodi di calcolo in base allo stile di distribuzione specificato per la tabella. Il valore di default è DISTSTYLE AUTO.

Lo stile di distribuzione selezionato per le tabelle influisce sulle prestazioni generali del database. Per ulteriori informazioni, consulta Utilizzo degli stili di distribuzione dati.

  • AUTO: Amazon Redshift assegna uno stile di distribuzione ottimale basato sui dati della tabella. Per visualizzare lo stile di distribuzione applicato a una tabella, eseguire una query sulla tabella del catalogo di sistema PG_CLASS. Per ulteriori informazioni, consulta Visualizzazione degli stili di distribuzione.

  • EVEN: i dati della tabella sono distribuiti uniformemente tra i nodi di un cluster in una distribuzione round robin. Gli ID riga vengono utilizzati per determinare la distribuzione e approssimativamente lo stesso numero di righe viene distribuito a ciascun nodo. Questo è metodo di distribuzione predefinito.

  • KEY: i dati sono distribuiti dai valori nella colonna DISTKEY. Quando imposti le colonne di unione delle tabelle di unione come chiavi di distribuzione, le righe di unione di entrambe le tabelle sono collocate nei nodi di calcolo. Quando i dati sono collocati, l'ottimizzatore può eseguire i join in modo più efficiente. Se specifichi DISTSTYLE KEY, devi nominare una colonna DISTKEY.

  • ALL: copia dell'intera tabella viene distribuita a ogni nodo. Questo stile di distribuzione garantisce che tutte le righe richieste per ogni join siano disponibili su ogni nodo, ma moltiplica i requisiti di storage e aumenta i tempi di caricamento e manutenzione per la tabella. La distribuzione ALL può migliorare i tempi di esecuzione quando viene utilizzata con determinate tabelle di dimensioni in cui la distribuzione KEY non è appropriata, ma i miglioramenti delle prestazioni devono essere confrontati con i costi di manutenzione.

DISTKEY (column)

Specifica un nome di colonna o un numero di posizione per la chiave di distribuzione. Utilizza il nome specificato nell'elenco delle colonne facoltativo per la tabella o l'elenco di selezione della query. In alternativa, utilizzare un numero di posizione, in cui la prima colonna selezionata è 1, la seconda è 2 e così via. Solo una colonna in una tabella può essere la chiave di distribuzione:

  • Se dichiari una colonna come colonna DISTKEY, DISTSTYLE deve essere impostato su KEY o non impostato affatto.

  • Se non dichiari una colonna DISTKEY, puoi impostare DISTSTYLE su EVEN.

  • Se non specifichi DISTKEY o DISTSTYLE, CTAS determina lo stile di distribuzione per la nuova tabella in base al piano di query per la clausola SELECT. Per ulteriori informazioni, consulta Ereditarietà di attributi di colonna e tabella.

Puoi definire la stessa colonna della chiave di distribuzione e della chiave di ordinamento. Questo approccio tende ad accelerare i join quando la colonna in questione è una colonna di join nella query.

[ COMPOUND | INTERLEAVED ] SORTKEY ( column_name [, ... ] )

Specifica una o più chiavi di ordinamento per la tabella. Quando vengono caricati nella tabella, i dati vengono ordinati in base alle colonne designate come chiavi di ordinamento.

È possibile specificare facoltativamente lo stile di ordinamento COMPOUND o INTERLEAVED. L'impostazione predefinita è COMPOUND. Per ulteriori informazioni, consulta Utilizzo delle chiavi di ordinamento.

È possibile definire un massimo di 400 colonne COMPOUND SORTKEY o 8 colonne INTERLEAVED SORTKEY per tabella.

Se non specifichi SORTKEY, CTAS determina le chiavi di ordinamento per la nuova tabella in base al piano di query per la clausola SELECT. Per ulteriori informazioni, consulta Ereditarietà di attributi di colonna e tabella.

COMPOUND

Specifica che i dati sono ordinati utilizzando una chiave composta costituita da tutte le colonne elencate, nell'ordine in cui sono elencate. Una chiave di ordinamento composta è più utile quando una query esegue la scansione delle righe in base all'ordine delle colonne di ordinamento. I vantaggi in termini di prestazioni dell'ordinamento con una chiave composta diminuiscono quando le query si basano su colonne di ordinamento secondarie. Puoi definire un massimo di 400 colonne COMPOUND SORTKEY per tabella.

INTERLEAVED

Specifica che i dati sono ordinati utilizzando una chiave di ordinamento "interlacciato". È possibile specificare un massimo di otto colonne per una chiave di ordinamento "interlacciato".

L'ordinamento "interlacciato" fornisce uguale peso a ciascuna colonna, o sottoinsieme di colonne, nella chiave di ordinamento, quindi le query non dipendono dall'ordine delle colonne nella chiave di ordinamento. Quando una query utilizza una o più colonne di ordinamento secondarie, l'ordinamento "interlacciato" migliora in modo significativo le prestazioni delle query. L'ordinamento "interlacciato" comporta un piccolo costo generale per il caricamento dei dati e le operazioni di vacuum.

AS query

Qualsiasi query (istruzione SELECT) supportata da Amazon Redshift.