Parametri di conversione dei dati - 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à.

Parametri di conversione dei dati

Durante il caricamento della tabella, COPY tenta di convertire implicitamente le stringhe nei dati di origine nel tipo di dati della colonna di destinazione. Se hai necessità di specificare una conversione diversa dal comportamento predefinito o se la conversione predefinita dà luogo a errori, è possibile gestire le conversioni dei dati specificando i seguenti parametri. Per ulteriori informazioni sulla sintassi di questi parametri, vedete syntax. COPY

Parametri di conversione dei dati
ACCEPTANYDATE

Consente il caricamento di qualsiasi formato di data, compresi i formati non validi come 00/00/00 00:00:00 senza generare un errore. Questo parametro si applica solo alle colonne TIMESTAMP eDATE. Usalo sempre ACCEPTANYDATE con il DATEFORMAT parametro. Se il formato della data per i dati non corrisponde alla DATEFORMAT specifica, Amazon Redshift inserisce un NULL valore in quel campo.

ACCEPTINVCHARS[AS] ['replacement_char']

Consente il caricamento dei dati in VARCHAR colonne anche se i dati contengono -8 caratteri non validi. UTF Quando ACCEPTINVCHARS viene specificato, COPY sostituisce ogni UTF -8 carattere non valido con una stringa di uguale lunghezza composta dal carattere specificato da replacement_char. Ad esempio, se il carattere sostitutivo è "^", un carattere a tre byte non valido verrà sostituito con "^^^".

Il carattere sostitutivo può essere qualsiasi carattere tranne. ASCII NULL Il valore predefinito è un punto interrogativo ( ? ). ). Per informazioni sugli UTF -8 caratteri non validi, vedereErrori di caricamento di caratteri multibyte.

COPYrestituisce il numero di righe che contenevano UTF -8 caratteri non validi e aggiunge una voce alla tabella di STL_REPLACEMENTS sistema per ogni riga interessata, fino a un massimo di 100 righe per ogni sezione di nodo. Vengono inoltre sostituiti altri UTF -8 caratteri non validi, ma tali eventi sostitutivi non vengono registrati.

Se ACCEPTINVCHARS non è specificato, COPY restituisce un errore ogni volta che incontra un carattere -8 non validoUTF.

ACCEPTINVCHARSè valido solo per le colonne. VARCHAR

BLANKSASNULL

Carica campi vuoti, composti solo da caratteri di spazio bianco, comeNULL. Questa opzione si applica solo alle VARCHAR colonne CHAR e. I campi vuoti per altri tipi di dati, ad esempioINT, vengono sempre caricati conNULL. Ad esempio, una stringa che contiene tre caratteri di spazio in successione (e nessun altro carattere) viene caricata come unNULL. Il comportamento predefinito, senza questa opzione, è di caricare i caratteri spazio così come sono.

DATEFORMAT[IT] {'dateformat_string' | 'auto'}

Se non DATEFORMAT è specificato no, il formato predefinito è. 'YYYY-MM-DD' Ad esempio, un formato valido alternativo è 'MM-DD-YYYY'.

Se il COPY comando non riconosce il formato dei valori di data e ora o se i valori di data e ora utilizzano formati diversi, utilizzate l''auto'argomento con il TIMEFORMAT parametro DATEFORMAT or. L''auto'argomento riconosce diversi formati che non sono supportati quando si utilizza una TIMEFORMAT stringa DATEFORMAT and. La parola chiave 'auto'' prevede una distinzione tra lettere maiuscole e minuscole. Per ulteriori informazioni, consulta Utilizzo del riconoscimento automatico con DATEFORMAT e TIMEFORMAT.

Il formato della data può includere informazioni sull'ora (ore, minuti, secondi), ma tali informazioni vengono ignorate. La parola chiave AS è facoltativa. Per ulteriori informazioni, consulta DATEFORMATe stringhe TIMEFORMAT.

EMPTYASNULL

Indica che Amazon Redshift deve caricare VARCHAR campi vuoti CHAR e come. NULL I campi vuoti per altri tipi di dati, ad esempioINT, vengono sempre caricati conNULL. I campi vuoti si hanno quando i dati contengono due delimitatori in successione senza caratteri tra i delimitatori. EMPTYASNULLe NULL AS "(stringa vuota) producono lo stesso comportamento.

ENCODING[AS] file_encoding

Specifica il tipo di codifica dei dati di caricamento. Il COPY comando converte i dati dalla codifica specificata in -8 durante il caricamento. UTF

I valori validi per file_encoding sono i seguenti:

  • UTF8

  • UTF16

  • UTF16LE

  • UTF16BE

  • ISO88591

Il valore predefinito è UTF8.

I nomi dei file di origine devono utilizzare la codifica UTF -8.

I seguenti file devono utilizzare la codifica UTF -8, anche se viene specificata una codifica diversa per i dati di caricamento:

  • File manifesto

  • JSONPathsfile

Le stringhe di argomenti fornite con i seguenti parametri devono utilizzare UTF -8:

  • FIXEDWIDTH'fixedwidth_spec '

  • ACCEPTINVCHARS'carattere_sostitutivo'

  • DATEFORMAT'data_format_string'

  • TIMEFORMAT'timeformat_string'

  • NULLAS 'null_string'

I file di dati a larghezza fissa devono utilizzare la codifica -8. UTF Le larghezze dei campi si basano sul numero di caratteri, non sul numero di byte.

Tutti i dati di caricamento devono utilizzare la codifica specificata. Se COPY rileva una codifica diversa, ignora il file e restituisce un errore.

Se lo specifichiUTF16, i tuoi dati devono avere un segno di ordine dei byte (). BOM Se sai se i tuoi dati UTF -16 sono little-endian (LE) o big-endian (BE), puoi usare UTF16LE oUTF16BE, indipendentemente dalla presenza di un. BOM

ISOPer ISO88591 usare la codifica -8859-1, specificare. Per ulteriori informazioni, vedere ISO/IEC8859-1 in Wikipedia.

ESCAPE

Quando si specifica questo parametro, il carattere di barra rovesciata (\) nei dati di input viene trattato come un carattere di escape. Il carattere che segue immediatamente il carattere di barra rovesciata viene caricato nella tabella come parte del valore corrente della colonna, anche se è un carattere che normalmente ha uno scopo particolare. Ad esempio, è possibile utilizzare questo parametro per creare una sequenza di escape con il carattere delimitatore, un punto interrogativo, un carattere newline incorporato o il carattere di escape stesso quando uno di questi caratteri è una parte lecita di un valore di colonna.

Se si specifica il ESCAPE parametro in combinazione con il REMOVEQUOTES parametro, è possibile eliminare e conservare le virgolette ('o") che altrimenti potrebbero essere rimosse. La stringa nulla predefinita, \N, funziona così com'è, ma è possibile anche creare una sequenza di escape nei dati di input come \\N. Purché non si specifichi una stringa nulla alternativa con il parametro NULL AS \N e si ottengano gli stessi \\N risultati.

Nota

Il carattere di controllo 0x00 (NUL) non può essere eliminato e deve essere rimosso dai dati di input o convertito. Questo carattere viene considerato come un indicatore di fine record (EOR), causando il tronco del resto del record.

Non è possibile utilizzare il ESCAPE parametro per i FIXEDWIDTH caricamenti e non è possibile specificare il carattere di escape stesso; il carattere di escape è sempre il carattere barra rovesciata. Inoltre, devi assicurarti che i dati di input contengano il carattere di escape nei punti appropriati.

Di seguito sono riportati alcuni esempi di dati di input e dei dati caricati risultanti quando viene ESCAPE specificato il parametro. Il risultato per la riga 4 presuppone che venga specificato anche il REMOVEQUOTES parametro. I dati di input sono costituiti da due campi delimitati da pipe:

1|The quick brown fox\[newline] jumped over the lazy dog. 2| A\\B\\C 3| A \| B \| C 4| 'A Midsummer Night\'s Dream'

I dati caricati nella colonna 2 assomigliano a questi:

The quick brown fox jumped over the lazy dog. A\B\C A|B|C A Midsummer Night's Dream
Nota

L'applicazione del carattere di escape ai dati di input per un caricamento è responsabilità dell'utente. Un'eccezione a questo requisito si verifica quando si ricaricano dati precedentemente scaricati con il parametro. ESCAPE In questo caso, i dati conterranno già i caratteri di escape necessari.

Il ESCAPE parametro non interpreta la notazione ottale, esadecimale, Unicode o altre sequenze di escape. Ad esempio, se i dati di origine contengono il valore del feed della linea ottale (\012) e provi a caricare questi dati con il ESCAPE parametro, Amazon Redshift carica il 012 valore nella tabella e non lo interpreta come un feed di linea a cui sfugge.

Per inserire in una sequenza di escape i caratteri newline nei dati che provengono dalle piattaforme Microsoft Windows, potresti dover utilizzare due caratteri di escape: uno per il ritorno a capo e uno per l'avanzamento di linea. In alternativa, è possibile rimuovere il ritorno a capo prima di caricare il file (ad esempio, utilizzando l'utilità dos2unix).

EXPLICIT_IDS

Usa EXPLICIT _ IDS con tabelle con IDENTITY colonne se desideri sovrascrivere i valori generati automaticamente con valori espliciti dai file di dati di origine per le tabelle. Se il comando include un elenco di colonne, tale elenco deve includere le IDENTITY colonne per utilizzare questo parametro. Il formato dei dati per IDS i valori EXPLICIT _ deve corrispondere al IDENTITY formato specificato dalla CREATE TABLE definizione.

Quando esegui un COPY comando su una tabella con l'IDSopzione EXPLICIT _, Amazon Redshift non verifica l'unicità delle IDENTITY colonne nella tabella.

Se una colonna è definita con GENERATED BY DEFAULT ASIDENTITY, può essere copiata. i valori vengono generati o aggiornati con i valori forniti dall'utente. L'IDSopzione EXPLICIT _ non è obbligatoria. COPYnon aggiorna la filigrana Identity High.

Per un esempio di COPY comando che utilizza EXPLICIT _IDS, vediCaricamento VENUE con valori espliciti per una colonna IDENTITY.

FILLRECORD

Consente di caricare file di dati quando mancano colonne contigue alla fine di alcuni record. Le colonne mancanti vengono caricate comeNULLs. Per il testo e CSV i formati, se la colonna mancante è una VARCHAR colonna, al posto di vengono caricate stringhe di lunghezza zero. NULLs NULLsPer caricare in VARCHAR colonne dal testo eCSV, specificate la parola chiave. EMPTYASNULL NULLla sostituzione funziona solo se la definizione della colonna lo consente. NULLs

Ad esempio, se la definizione della tabella contiene quattro CHAR colonne annullabili e un record contiene i valoriapple, orange, banana, mango, il COPY comando può caricare e compilare un record che contiene solo i valori. apple, orange I CHAR valori mancanti verrebbero caricati come NULL valori.

IGNOREBLANKLINES

Ignora le righe vuote che contengono solo un avanzamento di linea in un file di dati e non tenta di caricarle.

IGNOREHEADER[AS] number_rows

Tratta il number_rows specificato come intestazione del file e non carica le righe. Si usa IGNOREHEADER per saltare le intestazioni dei file in tutti i file in un caricamento parallelo.

NULLAS 'null_string'

Carica i campi che corrispondono a null_string asNULL, dove null_string può essere qualsiasi stringa. Se i dati includono un terminatore nullo, noto anche come NUL (UTF-8 0000) o zero binario (0x000), lo considerano come qualsiasi altro carattere. COPY Ad esempio, un record contenente '1' || NUL || '2' viene copiato come stringa di lunghezza 3 byte. Se un campo contiene soloNUL, è possibile utilizzare NULL AS per sostituire il terminatore nullo con NULL specificando o, ad esempio '\0' o'\000'. NULL AS '\0' NULL AS '\000' Se un campo contiene una stringa che termina con NUL e viene specificato NULL AS, la stringa viene inserita con NUL alla fine. Non utilizzare '\n' (newline) per il valore null_string. Amazon Redshift riserva '\n' per l'utilizzo come delimitatore di linea. La null_string predefinita è '\N'.

Nota

Se si tenta di caricare valori null in una colonna definita come NOTNULL, il COPY comando avrà esito negativo.

REMOVEQUOTES

Rimuove le virgolette intorno alle stringhe nei dati in entrata. Tutti i caratteri compresi tra le virgolette, inclusi i delimitatori, vengono mantenuti. Se una stringa ha un punto iniziale tra virgolette singole o doppie ma non un segno finale corrispondente, il COPY comando non riesce a caricare quella riga e restituisce un errore. La seguente tabella mostra alcuni semplici esempi di stringhe che contengono virgolette e i valori caricati risultanti.

Stringa di input Valore caricato con opzione REMOVEQUOTES
"Il delimitatore è un carattere pipe (|)" Il delimitatore è un carattere pipe (|)
'Nero' Nero
"Bianco" Bianco
Blu' Blu'
'Blu Valore non caricato: condizione di errore
"Blu Valore non caricato: condizione di errore
' ' 'Nero' ' ' ' 'Nero' '
' ' <white space>
ROUNDEC

Arrotonda i valori numerici quando la scala del valore di input è maggiore della scala della colonna. Per impostazione predefinita, COPY tronca i valori quando necessario per adattarli alla scala della colonna. Ad esempio, se 20.259 viene caricato un valore di in una colonna DECIMAL (8,2), COPY tronca il valore a per impostazione predefinita. 20.25 Se ROUNDEC è specificato, COPY arrotonda il valore a. 20.26 Il INSERT comando arrotonda sempre i valori quando necessario in modo che corrispondano alla scala della colonna, quindi un COPY comando con il ROUNDEC parametro si comporta come un comando. INSERT

TIMEFORMAT[AS] {'timeformat_string' | 'auto' | 'epochsecs' | 'epochmillisecs'}

Specifica il formato dell'ora. Se non TIMEFORMAT viene specificato no, il formato predefinito è per le TIMESTAMP colonne o YYYY-MM-DD HH:MI:SS YYYY-MM-DD HH:MI:SSOF per TIMESTAMPTZ le colonne, dov'è l'offset dal Coordinated Universal Time (). OF UTC Non è possibile includere uno specificatore di fuso orario in timeformat_string. Per caricare TIMESTAMPTZ dati in un formato diverso dal formato predefinito, specificare 'auto'; per ulteriori informazioni, vedereUtilizzo del riconoscimento automatico con DATEFORMAT e TIMEFORMAT. Per maggiori informazioni su timeformat_string, consultare DATEFORMATe stringhe TIMEFORMAT.

L''auto'argomento riconosce diversi formati che non sono supportati quando si utilizza una TIMEFORMAT stringa DATEFORMAT and. Se il COPY comando non riconosce il formato dei valori di data e ora o se i valori di data e ora utilizzano formati diversi l'uno dall'altro, utilizzate l''auto'argomento con il TIMEFORMAT parametro DATEFORMAT or. Per ulteriori informazioni, consulta Utilizzo del riconoscimento automatico con DATEFORMAT e TIMEFORMAT.

Se i dati di origine sono rappresentati come ora epocale, ovvero il numero di secondi o millisecondi dal 1° gennaio 1970, UTC 00:00:00, specifica o. 'epochsecs' 'epochmillisecs'

Le parole chiave 'auto', 'epochsecs' e 'epochmillisecs' prevedono una distinzione tra lettere maiuscole e minuscole.

La parola chiave AS è facoltativa.

TRIMBLANKS

Rimuove gli spazi vuoti finali da una stringa. VARCHAR Questo parametro si applica solo alle colonne con un tipo di VARCHAR dati.

TRUNCATECOLUMNS

Tronca i dati nelle colonne al numero appropriato di caratteri in modo che corrispondano alle specifiche della colonna. Si applica solo alle colonne con un tipo di CHAR dati VARCHAR o e alle righe di dimensioni pari o inferiori a 4 MB.