Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog
Opzioni di mappatura di colonne
Per impostazione predefinita, COPY inserisce i valori nelle colonne della tabella di destinazione nello stesso ordine in cui i campi vengono visualizzati nei file di dati. Se l'ordine predefinito delle colonne non funziona, è possibile specificare un elenco di colonne o utilizzare delle espressioni JSONPath per mappare i campi dei dati di origine nelle colonne di destinazione.
Elenco di colonne
È possibile specificare un elenco separato da virgole di nomi di colonna per caricare i campi dati sorgente in specifiche colonne di destinazione. Le colonne possono essere in qualsiasi ordine nell'istruzione COPY, ma quando si caricano da flat file, come in un bucket Amazon S3, il loro ordine deve corrispondere all'ordine dei dati di origine.
Durante il caricamento da una tabella Amazon DynamoDB l'ordine non è importante. Il comando COPY fa corrispondere i nomi degli attributi negli elementi recuperati dalla tabella DynamoDB ai nomi di colonna nella tabella Amazon Redshift. Per ulteriori informazioni, consultare Caricamento di dati da una tabella Amazon DynamoDB
Il formato dell'elenco di colonne è il seguente.
COPY tablename (column1 [,column2, ...])
Se una colonna nella tabella di destinazione viene omessa dall'elenco delle colonne, COPY carica l'espressione DEFAULT della colonna di destinazione.
Se la colonna di destinazione non ha un valore predefinito, COPY tenta di caricare NULL.
Se COPY tenta di assegnare NULL a una colonna definita come NOT NULL, il comando COPY non viene eseguito.
Se una colonna IDENTITY è inclusa nell'elenco di colonne, allora è necessario specificare anche EXPLICIT_IDS; se viene omessa una colonna IDENTITY, allora EXPLICIT_IDS non può essere specificato. Se non è specificato un elenco di colonne, il comando si comporta come se fosse specificato un elenco completo di colonne in ordine, con le colonne IDENTITY omesse se non era specificato anche EXPLICIT_IDS.
Se una colonna è definita con GENERATED BY DEFAULT AS IDENTITY, può esser copiata. i valori vengono generati o aggiornati con i valori forniti dall'utente. L'opzione EXPLICIT_IDS non è obbligatoria. COPY non aggiorna la filigrana ad elevata identità. Per ulteriori informazioni, consulta GENERATED BY DEFAULT AS IDENTITY.
File JSONPath
Quando si carica da file di dati in formato JSON o Avro, COPY mappa automaticamente gli elementi dei dati nei dati di origine JSON o Avro alle colonne della tabella di destinazione. Lo fa associando i nomi dei campi nello schema Avro ai nomi delle colonne nella tabella di destinazione o nell'elenco delle colonne.
In alcuni casi, i nomi delle colonne e dei campi non corrispondono o è necessario mappare a livelli più profondi nella gerarchia dei dati. In questi casi, per mappare esplicitamente gli elementi di dati JSON o Avro alle colonne, è possibile utilizzare un file JSONPaths.
Per ulteriori informazioni, consulta File JSONPath.