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 EXTERNAL TABLE
Crea una nuova tabella esterna nello schema specificato. Tutte le tabelle esterne devono essere create in uno schema esterno. Il percorso di ricerca non è supportato per schemi esterni e tabelle esterne. Per ulteriori informazioni, consulta CREATE EXTERNAL SCHEMA.
Oltre alle tabelle esterne create utilizzando il comando CREATE EXTERNAL TABLE, Amazon Redshift può fare riferimento a tabelle esterne definite in un AWS Lake Formation catalogo AWS Glue or o in un metastore Apache Hive. Utilizzare il comando CREATE EXTERNAL SCHEMA per registrare un database esterno definito nel catalogo esterno e rendere disponibili le tabelle esterne per l'uso in Amazon Redshift. Se la tabella esterna esiste in un AWS Lake Formation catalogo AWS Glue o in un metastore Hive, non è necessario creare la tabella utilizzando CREATE EXTERNAL TABLE. Per visualizzare le tabelle esterne, eseguire una query sulla vista di sistema SVV_EXTERNAL_TABLES.
Eseguendo il comando CREATE EXTERNAL TABLE AS, è possibile creare una tabella esterna basata sulla definizione di colonna da una query e scrivere i risultati di tale query in Amazon S3. I risultati sono in formato Apache Parquet o testo delimitato. Se la tabella esterna dispone di una o più chiavi di partizione, Amazon Redshift partiziona i nuovi file in base a tali chiavi di partizione e registra automaticamente le nuove partizioni nel catalogo esterno. Per ulteriori informazioni su CREATE EXTERNAL TABLE AS, consultare Note per l'utilizzo.
È possibile eseguire query su una tabella esterna utilizzando la stessa sintassi SELECT utilizzata con altre tabelle Amazon Redshift. È inoltre possibile utilizzare la sintassi INSERT per scrivere nuovi file nella posizione della tabella esterna su Amazon S3. Per ulteriori informazioni, consulta INSERT (tabella esterna).
Per creare una vista con una tabella esterna, includi la clausola WITH NO SCHEMA BINDING nell'istruzione CREATE VIEW.
Non è possibile eseguire CREATE EXTERNAL TABLE all'interno di una transazione (BEGIN ... END). Per ulteriori informazioni sulle transazioni, consultare Isolamento serializzabile.
Privilegi richiesti
Per creare tabelle esterne, devi essere il proprietario dello schema esterno o un utente con privilegi avanzati. Per trasferire la proprietà di uno schema esterno, utilizza ALTER SCHEMA per cambiare il proprietario. L'accesso alle tabelle esterne è controllato dall'accesso allo schema esterno. Non puoi GRANT o REVOKE autorizzazioni per una tabella esterna. Puoi invece concedere o revocare USAGE sullo schema esterno.
Note per l'utilizzo dispone di informazioni aggiuntive sulle autorizzazioni specifiche per le tabelle esterne.
Sintassi
CREATE EXTERNAL TABLE external_schema.table_name (column_name data_type [, …] ) [ PARTITIONED BY (col_name data_type [, … ] )] [ { ROW FORMAT DELIMITED row_format | ROW FORMAT SERDE 'serde_name' [ WITH SERDEPROPERTIES ( 'property_name' = 'property_value' [, ...] ) ] } ] STORED AS file_format LOCATION { 's3://bucket/folder/' | 's3://bucket/manifest_file' } [ TABLE PROPERTIES ( 'property_name'='property_value' [, ...] ) ]
Di seguito è riportata la sintassi per CREATE EXTERNAL TABLE AS.
CREATE EXTERNAL TABLE external_schema.table_name [ PARTITIONED BY (col_name [, … ] ) ] [ ROW FORMAT DELIMITED row_format ] STORED AS file_format LOCATION { 's3://bucket/folder/' } [ TABLE PROPERTIES ( 'property_name'='property_value' [, ...] ) ] AS { select_statement }
Parametri
- external_schema.table_name
-
Nome della tabella da creare, qualificato da un nome di schema esterno. Le tabelle esterne devono essere create in uno schema esterno. Per ulteriori informazioni, consulta CREATE EXTERNAL SCHEMA.
La lunghezza massima per il nome della tabella è 127 byte; i nomi più lunghi vengono troncati a 127 byte. Puoi utilizzare caratteri multibyte UTF-8 fino a un massimo di quattro byte. Amazon Redshift applica un limite di 9.900 tabelle per cluster, comprese le tabelle temporanee definite dall'utente e le tabelle temporanee create da Amazon Redshift durante l'elaborazione delle query o la manutenzione del sistema. Facoltativamente, puoi qualificare il nome della tabella con il nome del database. Nell'esempio seguente, il nome del database è
spectrum_db
, il nome dello schema esterno èspectrum_schema
e il nome della tabella ètest
.create external table spectrum_db.spectrum_schema.test (c1 int) stored as parquet location 's3://amzn-s3-demo-bucket/myfolder/';
Se il database o lo schema specificato non esiste, la tabella non viene creata e l'istruzione restituisce un errore. Non è possibile creare tabelle o viste nei database di sistema
template0
,template1
,padb_harvest
osys:internal
.Il nome della tabella deve essere un nome univoco per lo schema specificato.
Per ulteriori informazioni sui nomi validi, consultare Nomi e identificatori.
- ( column_name data_type )
-
Il nome e il tipo di dati di ciascuna colonna creata.
La lunghezza massima per il nome della colonna è 127 byte; i nomi più lunghi vengono troncati a 127 byte. Puoi utilizzare caratteri multibyte UTF-8 fino a un massimo di quattro byte. Non puoi specificare i nomi di colonna
"$path"
o"$size"
. Per ulteriori informazioni sui nomi validi, consultare Nomi e identificatori.Per impostazione predefinita, Amazon Redshift crea tabelle esterne con le pseudocolonne
$path
e$size
. Puoi disabilitare la creazione di pseudocolonne per una sessione impostando il parametro di configurazionespectrum_enable_pseudo_columns
sufalse
. Per ulteriori informazioni, consulta Pseudocolonne .Se le pseudocolonne sono abilitate, il numero massimo di colonne che è possibile definire in una singola tabella è 1.598. Se le pseudocolonne non sono abilitate, il numero massimo di colonne che puoi definire in una singola tabella è 1.600.
Se stai creando una "tabella di grandi dimensioni", assicurati che il tuo elenco di colonne non superi i limiti della larghezza delle righe per i risultati intermedi durante i carichi e l'elaborazione delle query. Per ulteriori informazioni, consulta Note per l'utilizzo.
Per un comando CREATE EXTERNAL TABLE AS., non è necessario un elenco di colonne, poiché queste derivano dalla query.
- data_type
-
Sono supportate le seguenti Tipi di dati:
-
SMALLINT () INT2
-
NUMERO INTERO (INT,) INT4
-
BIG INT () INT8
-
DECIMAL (NUMERIC)
-
REALE () FLOAT4
-
DOPPIA PRECISIONE (FLOAT8)
-
BOOLEAN (BOOL)
-
CHAR (CHARACTER)
-
VARCHAR (CHARACTER VARYING)
-
VARBYTE (CHARACTER VARYING): può essere utilizzato con file di dati Parquet e ORC e solo con colonne non partizionate.
-
DATE: può essere utilizzato solo con i file di testo, Parquet o file di dati ORC oppure come colonna di partizione.
-
TIMESTAMP
Per DATE, è possibile utilizzare i formati come descritto di seguito. Per i valori mensili rappresentati tramite cifre, sono supportati i seguenti formati:
-
mm-dd-yyyy
, ad esempio,05-01-2017
. Questa è l'impostazione predefinita. -
yyyy-mm-dd
, dove l'anno è rappresentato da più di 2 cifre. Ad esempio2017-05-01
.
Per i valori mensili rappresentati tramite l'abbreviazione di tre lettere, sono supportati i seguenti formati:
-
mmm-dd-yyyy
, ad esempio,may-01-2017
. Questa è l'impostazione predefinita. -
dd-mmm-yyyy
, dove l'anno è rappresentato da più di 2 cifre. Ad esempio01-may-2017
. -
yyyy-mmm-dd
, dove l'anno è rappresentato da più di 2 cifre. Ad esempio2017-may-01
.
Per i valori dell'anno che sono costantemente inferiori a 100, l'anno viene calcolato nel modo seguente:
-
Se l'anno è inferiore a 70, l'anno viene calcolato come anno più 2000. Ad esempio, la data 05-01-17 nel formato
mm-dd-yyyy
viene convertito in05-01-2017
. -
Se l'anno è inferiore a 100 ma superiore a 69, l'anno viene calcolato come anno più 1900. Ad esempio, la data 05-01-89 nel formato
mm-dd-yyyy
viene convertito in05-01-1989
. -
Per i valori dell'anno rappresentati da due cifre, aggiungi zeri iniziali per rappresentare l'anno in 4 cifre.
I valori di timestamp nei file di testo devono essere nel formato
yyyy-mm-dd HH:mm:ss.SSSSSS
, come il seguente valore di timestamp2017-05-01 11:30:59.000000
.La lunghezza di una colonna VARCHAR è definita in termini di byte, non caratteri. Ad esempio, una colonna VARCHAR(12) può contenere 12 caratteri a byte singolo o 6 caratteri a due byte. Quando invii una query a una tabella esterna, i risultati sono troncati in modo da essere compatibili con le dimensioni definite della colonna senza restituire un errore. Per ulteriori informazioni, consulta Storage e intervalli.
Per garantire le prestazioni migliori, consigliamo di specificare le dimensioni della colonna più piccole compatibili con i dati. Per individuare le dimensioni massime in byte per i valori di una colonna, utilizza la funzione OCTET_LENGTH. Nell'esempio seguente viene restituita la dimensione massima dei valori nella colonna dell'e-mail.
select max(octet_length(email)) from users;
max --- 62 -
- PARTITIONED BY (col_name data_type [, … ] )
-
Una clausola che definisce una tabella partizionata con una o più colonne di partizione. Viene utilizzata una directory di dati separata per ciascuna combinazione specificata, che può migliorare le prestazioni della query in alcune circostanze. Le colonne partizionate non esistono all'interno dei dati della tabella stessa. Se usi un valore per col_name uguale a una colonna della tabella, viene restituito un errore.
Dopo aver creato una tabella partizionata, modificare la tabella utilizzando un'istruzione ALTER TABLE ... ADD PARTITION per registrare nuove partizioni nel catalogo esterno. Quando si aggiunge una partizione, si definisce la posizione della sottocartella su Amazon S3 contenenti i dati della partizione.
Ad esempio, se la tabella
spectrum.lineitem_part
è definita conPARTITIONED BY (l_shipdate date)
, esegui il seguente comando ALTER TABLE per aggiungere una partizione.ALTER TABLE spectrum.lineitem_part ADD PARTITION (l_shipdate='1992-01-29') LOCATION 's3://spectrum-public/lineitem_partition/l_shipdate=1992-01-29';
Se utilizzi CREATE EXTERNAL TABLE AS, non è necessario eseguire ALTER TABLE…ADD PARTITION. Amazon Redshift registra automaticamente le nuove partizioni nel catalogo esterno. Amazon Redshift scrive inoltre automaticamente i dati corrispondenti nelle partizioni Amazon S3 in base alla chiave o alle chiavi di partizione definite nella tabella.
Per visualizzare le partizioni, eseguire una query sulla vista di sistema SVV_EXTERNAL_PARTITIONS.
Nota
Per un comando CREATE EXTERNAL TABLE AS, non è necessario specificare il tipo di dati della colonna di partizione perché questa colonna è derivata dalla query.
- ROW FORMAT DELIMITED rowformat
-
Clausola che specifica il formato dei dati sottostanti. I valori possibili di rowformat sono indicati di seguito:
-
LINES TERMINATED BY 'delimiter'
-
FIELDS TERMINATED BY 'delimiter'
Specifica un singolo carattere ASCII per 'delimiter'. È possibile specificare caratteri ASCII non stampabili utilizzando un ottale, nel formato
'\
ddd
'
doved
è una cifra ottale (0-7) fino a '\177'. L'esempio seguente specifica il carattere BEL (bell) usando l'ottale.ROW FORMAT DELIMITED FIELDS TERMINATED BY '\007'
Se ROW FORMAT è omesso, il formato predefinito è DELIMITED FIELDS TERMINATED BY '\A' (inizio dell'intestazione) e LINES TERMINATED BY '\n' (newline).
-
- ROW FORMAT SERDE 'serde_name'
- [WITH SERDEPROPERTIES ( 'property_name' = 'property_value' [, ...] ) ]
-
Clausola che specifica il formato SERDE dei dati sottostanti.
- 'serde_name'
-
Nome della SerDe. È possibile specificare utilizzando i seguenti formati.
-
org.apache.hadoop.hive.serde2. RegexSerDe
-
com.amazonaws.glue.serde. GrokSerDe
-
org.apache.hadoop.hive.serde 2.open CSVSerde
Questo parametro supporta la seguente proprietà per Open: SerDe CSVSerde
'wholeFile' = 'true'
Impostare la proprietà
wholeFile
a proprietàtrue
per analizzare correttamente i nuovi caratteri di riga (\ n) all'interno di stringhe virgolate per le richieste OpenCSV. -
org.openx.data.jsonserde. JsonSerDe
-
Il JSON SERDE supporta anche i file Ion.
-
Il JSON deve essere ben formato.
-
I timestamp in Ion e JSON devono utilizzare ISO86 il formato 01.
-
Questo parametro supporta la seguente proprietà per: SerDe JsonSerDe
'strip.outer.array'='true'
Elabora i file Ion/JSON che contengono un array molto grande racchiuso tra parentesi esterne ( [ … ] ) come se contenesse diversi record JSON all'interno dell'array.
-
-
com.amazon.ionhiveserde. IonHiveSerDe
Il formato Amazon ION fornisce formati di testo e binari, oltre ai tipi di dati. Per una tabella esterna che fa riferimento ai dati in formato ION, devi mappare ogni colonna della tabella verso l'elemento corrispondente nei dati di formato ION. Per ulteriori dettagli, consultare Amazon Ion
. È inoltre necessario specificare i formati di input e di output.
-
- WITH SERDEPROPERTIES ( 'property_name' = 'property_value' [, ...] ) ]
-
Facoltativamente, specifica i nomi e i valori delle proprietà, separati da virgole.
Se ROW FORMAT è omesso, il formato predefinito è DELIMITED FIELDS TERMINATED BY '\A' (inizio dell'intestazione) e LINES TERMINATED BY '\n' (newline).
- STORED AS file_format
-
Il formato per i file di dati.
I formati validi sono:
-
PARQUET
-
RCFILE ( ColumnarSerDe solo per uso di dati, non) LazyBinaryColumnarSerDe
-
SEQUENCEFILE
-
TEXTFILE (per file di testo, inclusi i file JSON)
-
ORC
-
AVRO
-
INPUTFORMAT 'input_format_classname' OUTPUTFORMAT 'output_format_classname'
Il comando CREATE EXTERNAL TABLE AS supporta solo due formati di file, TEXTFILE e PARQUET.
Per INPUTFORMAT e OUTPUTFORMAT, specifica un nome di classe, come illustrato nel seguente esempio.
'org.apache.hadoop.mapred.TextInputFormat'
-
- LOCATION { 's3://bucket/folder/' | 's3://bucket/manifest_file'}
-
Il percorso della cartella o del bucket Amazon S3 con i file di dati o un file manifest che contiene un elenco di percorsi di oggetti Amazon S3. I bucket devono trovarsi nella stessa AWS regione del cluster Amazon Redshift. Per un elenco delle regioni AWS supportate, consultare Limitazioni di Amazon Redshift Spectrum.
Se il percorso specifica un bucket o una cartella, ad esempio
's3://amzn-s3-demo-bucket/custdata/'
, Redshift Spectrum esegue la scansione dei file nel bucket o nella cartella specificati e in qualsiasi sottocartella. Redshift Spectrum ignora i file e i file nascosti che iniziano con un punto o un trattino basso.Se il percorso specifica un file manifest, l'argomento
's3://bucket/manifest_file'
deve fare riferimento esplicitamente a un singolo file, ad esempio's3://amzn-s3-demo-bucket/manifest.txt'
. Non può fare riferimento a un prefisso della chiave.Il manifest è un file di testo in formato JSON che elenca l'URL di ciascun file che deve essere caricato da Amazon S3 e la dimensione del file, in byte. L'URL include il nome del bucket e il percorso completo dell'oggetto per il file. I file specificati nel manifesto possono trovarsi in diversi bucket, ma tutti i bucket devono trovarsi nella stessa AWS regione del cluster Amazon Redshift. Se un file viene elencato due volte, viene caricato due volte. L'esempio seguente mostra il JSON per un manifest che carica tre file.
{ "entries": [ {"url":"s3://amzn-s3-demo-bucket1/custdata.1", "meta": { "content_length": 5956875 } }, {"url":"s3://amzn-s3-demo-bucket1/custdata.2", "meta": { "content_length": 5997091 } }, {"url":"s3://amzn-s3-demo-bucket2/custdata.1", "meta": { "content_length": 5978675 } } ] }
È possibile rendere obbligatoria l'inclusione di un particolare file. A tale scopo, includere un'opzione
mandatory
a livello di file nel manifest. Quando si esegue una query su una tabella esterna con un file obbligatorio mancante, l'istruzione SELECT ha esito negativo. Assicurarsi che tutti i file inclusi nella definizione della tabella esterna siano presenti. Se non sono tutti presenti, viene visualizzato un errore che mostra il primo file obbligatorio che non viene trovato. L'esempio seguente mostra il JSON per un manifest con l' opzionemandatory
impostata sutrue
.{ "entries": [ {"url":"s3://amzn-s3-demo-bucket1/custdata.1", "mandatory":true, "meta": { "content_length": 5956875 } }, {"url":"s3://amzn-s3-demo-bucket1/custdata.2", "mandatory":false, "meta": { "content_length": 5997091 } }, {"url":"s3://amzn-s3-demo-bucket2/custdata.1", "meta": { "content_length": 5978675 } } ] }
Per fare riferimento ai file creati utilizzando UNLOAD, puoi utilizzare il manifest creato utilizzando UNLOAD con il parametro MANIFEST. Il file manifest è compatibile con un file manifest per COPY da Amazon S3, ma usa chiavi diverse. Le chiavi non utilizzate vengono ignorate.
- TABLE PROPERTIES ( 'property_name'='property_value' [, ...] )
-
Clausola che imposta la definizione della tabella delle proprietà della tabella.
Nota
Le proprietà della tabella rispettano la distinzione tra maiuscole e minuscole.
- 'compression_type'='value'
-
Proprietà che imposta il tipo di compressione da utilizzare se il nome file non contiene un'estensione. Se imposti questa proprietà e c'è un'estensione di file, l'estensione viene ignorata e viene utilizzato il valore impostato dalla proprietà. I valori validi per il tipo di compressione sono i seguenti:
-
bzip2
-
gzip
-
nessuno
-
snappy
-
- 'data_cleansing_enabled'='true / false'
-
Questa proprietà imposta se la gestione dei dati è attiva per la tabella. Se 'data_cleansing_enabled' è impostata su true, la gestione dei dati è attiva per la tabella. Se 'data_cleansing_enabled' è impostata su false, la gestione dei dati non è attiva per la tabella. Di seguito è riportato l'elenco delle proprietà di gestione dei dati a livello di tabella controllate da questa proprietà:
-
column_count_mismatch_handling
-
invalid_char_handling
-
numeric_overflow_handling
-
replacement_char
-
surplus_char_handling
Per alcuni esempi, consulta Esempi di gestione dei dati.
-
- 'invalid_char_handling'='valore'
-
Specifica l'azione da eseguire quando i risultati della query contengono valori di caratteri UTF-8 non validi. È possibile specificare le seguenti operazioni:
- DISABILITATO
-
Non esegue la gestione dei caratteri non validi.
- FAIL
-
Annulla le query che restituiscono dati contenenti valori UTF-8 non validi.
- SET_TO_NULL
-
Sostituisce valori UTF-8 non validi con null.
- DROP_ROW
-
Sostituisce ogni valore della riga con null.
- REPLACE
-
Sostituisce il carattere non valido con il carattere sostitutivo specificato tramite
replacement_char
.
- 'replacement_char'='carattere'
-
Specifica il carattere sostitutivo da utilizzare quando si imposta
invalid_char_handling
suREPLACE
. - 'numeric_overflow_handling'='value'
-
Specifica l'azione da eseguire quando i dati ORC contengono un numero intero (ad esempio BIGINT o int64) maggiore della definizione di colonna (ad esempio SMALLINT o int16). È possibile specificare le seguenti operazioni:
- DISABILITATO
-
La gestione dei caratteri non validi è disattivata.
- FAIL
-
Se i dati includono caratteri non validi annullare la query.
- SET_TO_NULL
-
Impostare i caratteri non validi su null.
- DROP_ROW
-
Impostare ogni valore della riga su null.
- 'surplus_bytes_handling'='value'
-
Specifica come gestire i dati caricati che superano la lunghezza del tipo di dati definito per le colonne contenenti dati VARBYTE. Per impostazione predefinita, Redshift Spectrum imposta il valore su null per i dati che superano la larghezza della colonna.
È possibile specificare le seguenti operazioni da eseguire quando la query restituisce dati che superano la larghezza del tipo di dati:
- SET_TO_NULL
-
Sostituisce i dati che superano la larghezza della colonna con null.
- DISABILITATO
-
Non esegue la gestione dei byte in eccedenza.
- FAIL
-
Annulla le query che restituiscono dati che superano la larghezza della colonna.
- DROP_ROW
-
Elimina tutte le righe contenenti dati che superano la larghezza della colonna.
- TRUNCATE
-
Rimuove i caratteri che superano il numero massimo di caratteri definito per la colonna.
- 'surplus_char_handling'='valore'
-
Specifica come gestire i dati caricati che superano la lunghezza del tipo di dati definito per le colonne contenenti dati VARCHAR, CHAR o stringa. Per impostazione predefinita, Redshift Spectrum imposta il valore su null per i dati che superano la larghezza della colonna.
È possibile specificare le seguenti operazioni da eseguire quando la query restituisce dati che superano la larghezza della colonna:
- SET_TO_NULL
-
Sostituisce i dati che superano la larghezza della colonna con null.
- DISABILITATO
-
Non esegue la gestione dei caratteri in eccedenza.
- FAIL
-
Annulla le query che restituiscono dati che superano la larghezza della colonna.
- DROP_ROW
-
Sostituisce ogni valore della riga con null.
- TRUNCATE
-
Rimuove i caratteri che superano il numero massimo di caratteri definito per la colonna.
- 'column_count_mismatch_handling'='valore’
-
Determina se il file contiene più o meno valori in una riga rispetto al numero di colonne specificato nella definizione della tabella esterna. Questa proprietà è disponibile solo per il formato di file di testo non compresso. È possibile specificare le seguenti operazioni:
- DISABILITATO
-
La gestione della mancata corrispondenza del conteggio di colonne è disattivata.
- FAIL
-
La query ha esito negativo se viene rilevata una mancata corrispondenza del conteggio delle colonne.
- SET_TO_NULL
-
Compila i valori mancanti con NULL e ignora i valori aggiuntivi in ogni riga.
- DROP_ROW
-
Elimina tutte le righe che contengono errori relativi alla mancata corrispondenza del conteggio delle colonne dalla scansione.
- 'numRows'='row_count'
-
Proprietà che imposta il valore numRows per la definizione della tabella. Per aggiornare in modo esplicito le statistiche di una tabella esterna, imposta la proprietà numRows in modo da indicare le dimensioni della tabella. Amazon Redshift non analizza le tabelle esterne per generare le statistiche delle tabelle che l'ottimizzatore di query utilizza per generare un piano di query. Se le statistiche delle tabelle non sono impostate per una tabella esterna, Amazon Redshift genera un piano di esecuzione delle query basato sul presupposto che le tabelle esterne sono le tabelle più grandi e quelle locali le più piccole.
- 'skip.header.line.count'='line_count'
-
Proprietà che imposta il numero di righe da saltare all'inizio di ogni file sorgente.
- 'serialization.null.format'=' '
-
Proprietà che specifica che Spectrum deve restituire un valore
NULL
quando esiste una corrispondenza esatta con il testo fornito in un campo. - 'orc.schema.resolution'='mapping_type'
-
Una proprietà che imposta il tipo di mappatura della colonna per le tabelle che utilizzano il formato di dati ORC. La proprietà viene ignorata per tutti gli altri formati di dati.
I valori validi per il tipo di mappatura della colonna sono i seguenti:
-
nome
-
position
Se la proprietà orc.schema.resolution viene omessa, le colonne vengono mappate in base al nome per impostazione predefinita. Se orc.schema.resolution è impostata su un valore diverso da 'name' o 'position', le colonne vengono mappate in base alla posizione. Per ulteriori informazioni sulla mappatura delle colonne, consulta Mappatura delle colonne di una tabella esterna alle colonne ORC.
Nota
Il comando COPY mappa sui file di dati ORC soltanto in base alla posizione. La proprietà della tabella orc.schema.resolution non ha effetto sul comportamento del comando COPY.
-
- 'write.parallel'='on / off'
-
Proprietà che imposta se CREATE EXTERNAL TABLE AS deve scrivere dati in parallelo. Per impostazione predefinita, CREATE EXTERNAL TABLE AS scrive i dati in parallelo in più file, in base al numero di sezioni nel cluster. L'opzione predefinita è "attiva". Quando 'write.parallel' è impostato su off, CREATE EXTERNAL TABLE AS scrive su uno o più file di dati in serie su Amazon S3. Questa proprietà della tabella si applica anche a qualsiasi istruzione INSERT successiva nella stessa tabella esterna.
- ‘write.maxfilesize.mb'=‘size'
-
Una proprietà che imposta la dimensione massima (in MB) di ogni file scritto su Amazon S3 da CREATE EXTERNAL TABLE AS. La dimensione deve essere un numero intero valido compreso tra 5 e 6200. La dimensione massima predefinita del file è 6.200 MB. Questa proprietà della tabella si applica anche a qualsiasi istruzione INSERT successiva nella stessa tabella esterna.
- 'write.kms.key.id'='valore'
-
Puoi specificare una AWS Key Management Service chiave per abilitare la crittografia lato server (SSE) per oggetti Amazon S3, dove il valore è uno dei seguenti:
-
auto
per utilizzare la AWS KMS chiave predefinita memorizzata nel bucket Amazon S3. -
kms-key che si specifica per crittografare i dati.
-
- select_statement
-
Istruzione che inserisce una o più righe nella tabella esterna definendo qualsiasi query. Tutte le righe prodotte dalla query vengono scritte in Amazon S3 in formato testo o Parquet in base alla definizione della tabella.
Esempi
Una raccolta di esempi è disponibile all'indirizzo Esempi.