Sto tentando di eseguire un'operazione di caricamento/copia per importare dati da file JSON in un bucket S3 direttamente su Redshift. L'operazione COPY ha esito positivo e, dopo la COPIA, la tabella ha il numero corretto di righe/record, ma ogni record è NULL!Caricamento dati JSON in AWS Redshift produce valori NULL
Richiede il tempo previsto per il caricamento, il comando COPY restituisce OK, la console di Redshift segnala correttamente e nessun errore ... ma se eseguo una query semplice dalla tabella, restituisce solo valori NULL.
Il JSON è molto semplice + piatta, e formattato correttamente (secondo gli esempi che ho trovato qui: http://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html)
Fondamentalmente, è una riga per riga, formattato come:
{ "col1": "val1", "col2": "val2", ... }
{ "col1": "val1", "col2": "val2", ... }
{ "col1": "val1", "col2": "val2", ... }
Ho ha provato cose come riscrivere lo schema in base a valori e tipi di dati trovati negli oggetti JSON e anche a copiare da file non compressi. Ho pensato che forse il JSON non è stato analizzato correttamente al momento del caricamento, ma presumibilmente dovrebbe generare un errore se gli oggetti non possono essere analizzati.
mia copia sguardi comando come questo:
copy events from 's3://mybucket/json/prefix'
with credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxx'
json 'auto' gzip;
Qualsiasi orientamento sarebbe apprezzato! Grazie.
Questo è lo stesso problema che ho trovato dopo un po ' scavando. Ma mi chiedevo se esistesse documentazione/soluzione in cui si potesse dire di ignorare il caso o di convertirlo. Cambiare il formato della chiave json sarà piuttosto un problema con il volume che sto trattando. modifica: non importa, dovrai usare la soluzione jsonPaths –
Mi sono imbattuto in questo errore perché una colonna NOT NULL stava dicendo che il mio JSON non aveva alcun valore, ed era sbagliato. Una rapida ricerca su Google è atterrato qui. Direi di accettare questa risposta in quanto è stato di grande aiuto per un componente cruciale di un gasdotto su cui sto lavorando. Vedrò di inoltrare una richiesta al team di Amazon via ticket per supportare nomi di colonne insensibili alle maiuscole e minuscole (come lo sarebbe comunque lo standard SQL). –