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à.
CREATETABLEAS
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 epublic
è 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 intermedie, che non contengono dati critici, specifica BACKUP NO per risparmiare tempo di elaborazione durante la creazione di istantanee e il ripristino da istantanee e per ridurre lo spazio di archiviazione su Amazon Simple Storage Service. L'impostazione BACKUP NO non ha alcun effetto sulla replica automatica dei dati su altri nodi all'interno del cluster, quindi le tabelle con BACKUP NO specificato vengono ripristinate in caso di errore del nodo. L'impostazione predefinita è BACKUPYES.
- DISTSTYLE { AUTO | EVEN | KEY | ALL }
-
Parola chiave che definisce lo stile di distribuzione dei dati per l'intera tabella. Amazon Redshift distribuisce le righe di una tabella nei nodi di calcolo a seconda dello stile di distribuzione specificato per la tabella. L'impostazione predefinita è DISTSTYLEAUTO.
Lo stile di distribuzione selezionato per le tabelle influisce sulle prestazioni generali del database. Per ulteriori informazioni, consulta Distribuzione dei dati per l'ottimizzazione delle query.
-
AUTO: Amazon Redshift assegna uno stile di distribuzione ottimale basato sui dati della tabella. Per visualizzare lo stile di distribuzione applicato a una tabella, interroga la tabella del catalogo del sistema PG_CLASS. Per ulteriori informazioni, consulta Visualizzazione degli stili di distribuzione.
-
EVEN: I dati nella tabella sono distribuiti uniformemente tra i nodi di un cluster in una distribuzione round-robin. IDsLe righe vengono utilizzate per determinare la distribuzione e su ogni nodo viene distribuito all'incirca lo stesso numero di righe. Questo è metodo di distribuzione predefinito.
-
KEY: i dati vengono distribuiti in base ai valori nella DISTKEY colonna. 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 si specifica DISTSTYLEKEY, è necessario assegnare un nome a una DISTKEY colonna.
-
ALL: Una copia dell'intera tabella viene distribuita su 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. ALLla distribuzione può migliorare i tempi di esecuzione se utilizzata con determinate tabelle di dimensioni in cui KEY la distribuzione non è appropriata, ma i miglioramenti delle prestazioni devono essere valutati rispetto ai costi di manutenzione.
-
- DISTKEY(colonna)
-
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 si dichiara una colonna come DISTKEY colonna, DISTSTYLE deve essere impostata su KEY o non impostata affatto.
-
Se non dichiari una DISTKEY colonna, puoi DISTSTYLE impostarla su. EVEN
-
Se non si specifica DISTKEY oDISTSTYLE, CTAS determina lo stile di distribuzione per la nuova tabella in base al piano di query per la SELECT clausola. 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 (nome_colonna [,...])
-
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.
Facoltativamente, puoi specificare COMPOUND o ordinare lo stile. INTERLEAVED L'impostazione predefinita èCOMPOUND. Per ulteriori informazioni, consulta Chiavi di ordinamento.
È possibile definire un massimo di 400 COMPOUND SORTKEY colonne o 8 INTERLEAVED SORTKEY colonne per tabella.
Se non si specificaSORTKEY, CTAS determina le chiavi di ordinamento per la nuova tabella in base al piano di query per la SELECT clausola. 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. È possibile definire un massimo di 400 COMPOUND SORTKEY colonne 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 (SELECTdichiarazione) supportata da Amazon Redshift.