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 CREATE EXTERNAL TABLE comando, 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, puoi creare una tabella esterna basata sulla definizione di colonna di 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, consultaNote per l'utilizzo.
Puoi interrogare una tabella esterna utilizzando la stessa SELECT sintassi che usi con altre tabelle Amazon Redshift. Puoi anche utilizzare la INSERT sintassi 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 SCHEMA BINDING clausola WITH NO nell'istruzione. CREATE VIEW
Non puoi eseguire una transazione 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, usa 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. Concedi o revoca invece 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 di AS. CREATE EXTERNAL TABLE
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. È possibile utilizzare UTF -8 caratteri multibyte 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. È possibile utilizzare UTF -8 caratteri multibyte 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é le colonne derivano dalla query.
- data_type
-
Sono supportate le seguenti Tipi di dati:
-
SMALLINT (INT2)
-
INTEGER (INT, INT4)
-
BIGINT (INT8)
-
DECIMAL (NUMERIC)
-
REAL (FLOAT4)
-
DOUBLE PRECISION (FLOAT8)
-
BOOLEAN (BOOL)
-
CHAR (CHARACTER)
-
VARCHAR (CHARACTER VARYING)
-
VARBYTE(CHARACTERVARYING) — può essere utilizzato con Parquet e file di ORC dati e solo con tabelle non partizionate.
-
DATE— può essere utilizzato solo con file di testo, Parquet o di ORC dati o come colonna di partizione.
-
TIMESTAMP
InfattiDATE, è 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 VARCHAR colonna è definita in byte, non in 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 trovare la dimensione massima in byte per i valori in una colonna, utilizzare 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 -
- PARTITIONEDBY (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, modificatela utilizzando un'ADDPARTITIONistruzioneALTER TABLE... 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 ALTER TABLE comando seguente 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 ALTERTABLE... ADDPARTITION. 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.
- ROWFORMATDELIMITEDformato di riga
-
Clausola che specifica il formato dei dati sottostanti. I valori possibili di rowformat sono indicati di seguito:
-
LINESTERMINATEDDI 'delimiter'
-
FIELDSTERMINATEDDA 'delimiter'
Specificare un singolo ASCII carattere per 'delimiter'. È possibile specificare ASCII caratteri non stampabili utilizzando l'ottale, nel formato in
'\
ddd
'
cuid
è una cifra ottale (0—7) fino a '\ 177'. L'esempio seguente specifica il carattere (bell) utilizzando l'ottale. BELROW FORMAT DELIMITED FIELDS TERMINATED BY '\007'
Se ROW FORMAT viene omesso, il formato predefinito è DELIMITED FIELDS TERMINATED BY '\ A' (inizio del titolo) e LINES TERMINATED BY'\n'(nuova riga).
-
- ROWFORMATSERDE'nome_server'
- [WITHSERDEPROPERTIES('property_name' = 'property_value' [,...])]
-
Una clausola che specifica il formato dei dati sottostanti. SERDE
- 'serde_name'
-
Il nome di. SerDe È possibile specificare utilizzando i seguenti formati.
-
org.apache.hadoop.hive.serde2. RegexSerDe
-
com.amazonaws.glue.serde. GrokSerDe
-
org.apache.hadoop.hive.Serde2.o penCSVSerde
Questo parametro supporta la seguente proprietà per O: SerDe penCSVSerde
'wholeFile' = 'true'
Imposta la
wholeFile
proprietà sutrue
per analizzare correttamente i nuovi caratteri di riga (\n) all'interno delle stringhe tra virgolette per le richieste Open. CSV -
org.openx.data.jsonserde. JsonSerDe
-
Supporta JSON SERDE anche i file Ion.
-
JSONDevono essere ben formati.
-
I timestamp sono in Ion e JSON devono utilizzare ISO86 il formato 01.
-
Questo parametro supporta la seguente SerDe proprietà per: JsonSerDe
'strip.outer.array'='true'
Elabora JSON file Ion/ contenenti un array molto grande racchiuso tra parentesi esterne ([...]) come se contenesse più JSON record all'interno dell'array.
-
-
com.amazon.ionhiveserde. IonHiveSerDe
Il ION formato Amazon fornisce formati di testo e binari, oltre ai tipi di dati. Per una tabella esterna che fa riferimento ai dati in ION formato, mappi ogni colonna della tabella esterna all'elemento corrispondente nei dati di ION formato. Per ulteriori dettagli, consultare Amazon Ion
. È inoltre necessario specificare i formati di input e di output.
-
- WITHSERDEPROPERTIES('property_name' = 'property_value' [,...])]
-
Facoltativamente, specifica i nomi e i valori delle proprietà, separati da virgole.
Se ROW FORMAT viene omesso, il formato predefinito è DELIMITED FIELDS TERMINATED BY '\ A' (inizio del titolo) e LINES TERMINATED BY'\n'(nuova riga).
- STOREDAS 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 JSON i file).
-
ORC
-
AVRO
-
INPUTFORMAT'input_format_classname' 'output_format_classname' OUTPUTFORMAT
Il CREATE EXTERNAL TABLE comando AS supporta solo due formati di file e. TEXTFILE PARQUET
Per INPUTFORMAT eOUTPUTFORMAT, specificate un nome di classe, come illustrato nell'esempio seguente.
'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 AWS regioni supportate, consulta. 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 manifesto è un file URL di testo in JSON formato che elenca ogni file da caricare da Amazon S3 e la dimensione del file, in byte. URLInclude 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 codice di un manifesto 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'SELECTistruzione 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 l'opzione JSON per un manifesto con l'mandatory
opzione 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 utilizzandoUNLOAD, è possibile utilizzare il manifesto creato utilizzando UNLOAD il MANIFEST parametro. Il file manifest è compatibile con un file manifest per COPYda Amazon S3, ma usa chiavi diverse. Le chiavi non utilizzate vengono ignorate.
- TABLEPROPERTIES('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'
-
Speciifica l'azione da eseguire quando i risultati della query contengono valori di -8 caratteri non validi. UTF È possibile specificare le seguenti operazioni:
- DISABLED
Non esegue la gestione dei caratteri non validi.
- FAIL
Annulla le interrogazioni che restituiscono dati contenenti -8 valori non validi. UTF
- SET_PER_ NULL
Sostituisce UTF -8 valori 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'
-
Speciifica l'azione da eseguire quando ORC i dati contengono un numero intero (ad esempio, BIGINT o int64) più grande della definizione della colonna (ad esempio, o int16). SMALLINT È possibile specificare le seguenti operazioni:
- DISABLED
La gestione dei caratteri non validi è disattivata.
- FAIL
Se i dati includono caratteri non validi annullare la query.
- SET_PER_ NULL
Impostare i caratteri non validi su null.
- DROP_ROW
Impostare ogni valore della riga su null.
- 'surplus_bytes_handling'='value'
-
Speciifica 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_PER_ NULL
Sostituisce i dati che superano la larghezza della colonna con null.
- DISABLED
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'
-
Speciifica come gestire i dati caricati che superano la lunghezza del tipo di dati definito per le colonne contenenti VARCHAR o stringhe di dati. CHAR 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_PER_ NULL
Sostituisce i dati che superano la larghezza della colonna con null.
- DISABLED
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:
- DISABLED
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_PER_ NULL
Riempi 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'
-
Una proprietà che imposta il numRows valore per la definizione della tabella. Per aggiornare in modo esplicito le statistiche di una tabella esterna, imposta la numRows proprietà in modo che indichi la dimensione 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 delle colonne per le tabelle che utilizzano il formato ORC dei dati. 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 esterne della tabella alle colonne ORC.
Nota
Il COPY comando esegue la mappatura ai file di ORC dati solo in base alla posizione. La proprietà della tabella orc.schema.resolution non ha alcun effetto sul comportamento dei comandi. COPY
-
- 'write.parallel'='on / off'
-
Una 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 su più file, in base al numero di slice nel cluster. L'opzione predefinita è "attiva". Quando 'write.parallel' è impostato su off, CREATE EXTERNAL TABLE AS scrive serialmente su uno o più file di dati su Amazon S3. Questa proprietà della tabella si applica anche a qualsiasi INSERT istruzione 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 INSERT istruzione successiva nella stessa tabella esterna.
- 'write.kms.key.id'='valore'
-
Puoi specificare una AWS Key Management Service chiave per abilitare Server—Side Encryption (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.