Amazon Redshift non supporterà più l'uso delle UDF Python dopo il 30 giugno 2026. Inizieremo ad applicarlo per fasi. Per ulteriori informazioni sulla fine del ciclo di vita e sulle opzioni di migrazione di Python, consulta il post del
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à.
Creare un’integrazione di eventi S3 per copiare automaticamente i file dai bucket Amazon S3
Nota
La versione di anteprima per la copia automatica è terminata. Di conseguenza i cluster di anteprima vengono rimossi automaticamente 30 giorni dopo il termine del periodo di anteprima. Se intendi continuare a utilizzare la copia automatica, consigliamo di ricreare i processi di copia automatica esistenti in un altro cluster Amazon Redshift. Non è supportato l’aggiornamento di un cluster di anteprima alla versione più recente di Amazon Redshift.
Puoi utilizzare un processo di copia automatica per caricare i dati nelle tabelle Amazon Redshift dai file archiviati in Amazon S3. Amazon Redshift rileva quando vengono aggiunti nuovi file Amazon S3 al percorso specificato nel comando COPY ed esegue automaticamente un comando COPY senza che sia necessario creare una pipeline di importazione dei dati esterna. Amazon Redshift consente di tenere traccia in modo semplice dei file caricati. Amazon Redshift stabilisce il numero di file raggruppati per comando COPY. È possibile visualizzare i comandi COPY risultanti nelle viste di sistema.
La prima fase per creare un processo COPY JOB automatico consiste nel creare un’integrazione di eventi S3. Quando viene visualizzato un nuovo file nel bucket di origine Amazon S3, Amazon Redshift gestisce il caricamento dei file nel database utilizzando il comando COPY.
Prerequisiti per la creazione di un’integrazione di eventi S3
Per configurare l’integrazione di eventi S3, verifica che siano soddisfatti i prerequisiti seguenti.
Il bucket Amazon S3 deve avere una policy di bucket che concede diverse autorizzazioni Amazon S3. Ad esempio, la seguente politica di esempio consente le autorizzazioni per il bucket di risorse ospitato
amzn-s3-demo-bucketin.us-east-1Il bucket Amazon S3 e l’integrazione sono nella stessa Regione AWS.Il cluster con provisioning Amazon Redshift o il namespace Redshift serverless di destinazione deve disporre dell’autorizzazione per accedere al bucket. Verifica che un ruolo IAM collegato al cluster o al namespace serverless disponga di una policy IAM che concede le autorizzazioni appropriate. La policy deve consentire sia
s3:GetObjectper una risorsa bucket comesiaamzn-s3-demo-buckets3:ListBucketper una risorsa bucket e il relativo contenuto, ad esempio.amzn-s3-demo-bucket/*Per aggiungere la policy a un ruolo IAM che ha una relazione di attendibilità per il ruolo, segui la procedura descritta.
Se il data warehouse di destinazione è un cluster con provisioning, puoi associare un ruolo IAM al cluster con provisioning utilizzando la scheda Autorizzazioni del cluster nei dettagli del cluster sulla console Amazon Redshift. Per informazioni su come collegare un ruolo al cluster con provisioning, consulta Associazione di ruoli IAM ai cluster nella Guida alla gestione di Amazon Redshift.
Se il data warehouse di destinazione è Redshift serverless, puoi collegare un ruolo IAM al namespace serverless utilizzando la scheda Sicurezza e crittografia nei dettagli del namespace sulla console Redshift serverless. Per informazioni su come collegare un ruolo al namespace serverless, consulta Concessione delle autorizzazioni ad Amazon Redshift serverless nella Guida alla gestione di Amazon Redshift.
Il data warehouse Amazon Redshift deve inoltre disporre di una policy delle risorse che consenta il bucket Amazon S3. Se utilizzi la console Amazon Redshift, quando crei l’integrazione di eventi S3, Amazon Redshift fornisce l’opzione Correggi per me per aggiungere questa policy al data warehouse Amazon Redshift. Per aggiornare una policy delle risorse, puoi utilizzare il comando AWS CLI put-resource-policy. Ad esempio, per allegare una policy sulle risorse al cluster con provisioning di Amazon Redshift per l'integrazione di un evento S3 con un bucket Amazon S3, esegui un AWS CLI comando simile al seguente. L'esempio seguente mostra una policy per uno spazio dei nomi di cluster a cui è stato assegnato un provisioning nell'account utente for.
us-east-1Regione AWS123456789012Il bucket è denominato.amzn-s3-demo-bucketaws redshift put-resource-policy \ --policy file://rs-rp.json \ --resource-arn "arn:aws:redshift:us-east-1:123456789012:namespace/cc4ffe56-ad2c-4fd1-a5a2-f29124a56433"Dove
rs-rp.jsoncontiene:Per allegare una policy sulle risorse al tuo namespace Redshift Serverless per l'integrazione di un evento S3 con un bucket Amazon S3, esegui un comando simile al seguente. AWS CLI L'esempio seguente mostra una policy per uno spazio dei nomi serverless nell'account utente for.
us-east-1Regione AWS123456789012Il bucket è denominato.amzn-s3-demo-bucketaws redshift put-resource-policy \ --policy file://rs-rp.json \ --resource-arn "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/namespace-1"Dove
rs-rp.jsoncontiene:
Creare un’integrazione di eventi Amazon S3
Per configurare il processo di copia, devi dapprima definire un’integrazione di eventi S3.
Amazon Redshift crea quindi un’integrazione di eventi S3 con l’origine e la destinazione associate, lo stato e le informazioni sullo stato di un processo di copia automatica associato. Puoi visualizzare le informazioni su un’integrazione di eventi S3 sulla console Amazon Redshift scegliendo Integrazioni di eventi S3 e selezionando l’integrazione per visualizzarne i dettagli. Le integrazioni sono separate da quelle create Nel mio account e Da altri account. Nell’elenco Nel mio account sono visualizzate le integrazioni in cui l’origine e la destinazione si trovano nello stesso account. Nell’elenco Da altri account sono visualizzate le integrazioni in cui l’origine è di proprietà di un altro account.
Se elimini un'integrazione di eventi S3, lo stato COPY JOB corrispondente cambia da 1 (attivo) a 0 (inactive/pending). Tuttavia il processo COPY JOB corrispondente non viene rimosso automaticamente. Se in seguito tenti di creare un processo COPY JOB con lo stesso nome, potrebbe verificarsi un conflitto.
Creare e monitorare un processo COPY JOB
Dopo avere creato l’integrazione, nella pagina Dettagli sull’integrazione di eventi S3 relativa all’integrazione che hai creato, scegli Crea un processo di copia automatica per accedere ad Amazon Redshift Query Editor V2 dove puoi creare il processo di copia automatica per l’integrazione. Amazon Redshift abbina il bucket della clausola FROM dell’istruzione COPY JOB CREATE al bucket utilizzato nell’integrazione di eventi S3. Per informazioni su come utilizzare Amazon Redshift Query Editor V2, consulta Esecuzione di query su un database con Amazon Redshift Query Editor V2 nella Guida alla gestione di Amazon Redshift. Ad esempio, esegui il comando COPY seguente in Query Editor V2 per creare un processo COPY JOB automatico che abbina il bucket Amazon S3 s3://amzn-s3-demo-bucket/staging-folder a un’integrazione di eventi Amazon S3.
COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' JOB CREATE my_copy_job_name AUTO ON;
È necessario definire un processo COPY JOB una sola volta, in quanto gli stessi parametri verranno utilizzati per le esecuzioni future.
Per definire e gestire un processo COPY JOB, devi disporre dell’autorizzazione. Per informazioni sulla concessione e sulla revoca dell’autorizzazione per un processo COPY JOB, consulta GRANT e REVOKE. Per ulteriori informazioni sulla concessione e sulla revoca delle autorizzazioni con ambito per un processo COPY JOB, consulta Assegnazione delle autorizzazioni con ambito e Revoca delle autorizzazioni con ambito.
È possibile gestire le operazioni di caricamento utilizzando le opzioni CREATE, LIST, SHOW, DROP, ALTER e RUN relative ai processi. Per ulteriori informazioni, consulta COPY JOB.
È possibile eseguire query sulle viste di sistema per vedere lo stato e l'avanzamento del processo COPY JOB. Le viste disponibili sono le seguenti:
SYS_COPY_JOB – include una riga per ogni processo COPY JOB definito.
SYS_COPY_JOB_DETAIL: include i dettagli sui file in sospeso, con errore e importati per ciascun processo COPY JOB.
SYS_COPY_JOB_INFO: contiene i messaggi registrati relativi a un processo COPY JOB.
SYS_LOAD_HISTORY – include i dettagli sui comandi COPY.
SYS_LOAD_ERROR_DETAIL – include i dettagli sugli errori relativi al comando COPY.
SVV_COPY_JOB_INTEGRATIONS: include i dettagli sulle integrazioni di eventi S3.
STL_LOAD_ERRORS – include gli errori relativi ai comandi COPY.
STL_LOAD_COMMITS – include le informazioni utilizzate per risolvere i problemi di caricamento dei dati relativi al comando COPY.
Per ulteriori informazioni sulla correzione degli errori relativi all’integrazione di eventi S3, consulta Risoluzione dei problemi di integrazione degli eventi S3 e degli errori del processo COPY JOB.
Per ottenere l'elenco dei file caricati da un COPY JOB, esegui il seguente SQL, ma prima <job_id> sostituiscili:
SELECT job_id, job_name, data_source, copy_query, filename, status, curtime FROM sys_copy_job copyjob JOIN stl_load_commits loadcommit ON copyjob.job_id = loadcommit.copy_job_id WHERE job_id =<job_id>;
Considerazioni sulla creazione dell’integrazione di eventi S3 per la copia automatica
Considera quanto segue quando utilizzi la copia automatica.
Puoi creare un massimo di 200 processi COPY JOB per ogni cluster o gruppo di lavoro in un Account AWS.
Puoi creare un massimo di 50 integrazioni di eventi S3 per ogni destinazione Amazon Redshift.
Non puoi creare un’integrazione di eventi S3 con un bucket Amazon S3 di origine che ha un punto (.) nel nome del bucket.
Puoi creare solo un’integrazione di eventi S3 tra la stessa origine e la stessa destinazione. In altre parole può esserci una sola integrazione di eventi S3 tra un bucket Amazon S3 e un data warehouse Amazon Redshift alla volta.
Non puoi avere notifiche di eventi esistenti per il tipo di evento
S3_OBJECT_CREATEDdefinito nel bucket Amazon S3 di origine. Tuttavia, dopo aver creato l'integrazione di un evento S3, puoi aggiornare la notifica dell'evento del bucket Amazon S3 prefix/suffix con un ambito più ristretto. In questo modo, puoi ancheS3_OBJECT_CREATEDconfigurarne un altro prefix/suffix con altri obiettivi ed evitare un conflitto con l'integrazione degli eventi S3. Se riscontri problemi dovuti al fatto che la copia automatica non è stata eseguita come previsto, prepara il AWS CloudTrail registro dell's3:PutBucketNotificationConfigurationazione sul bucket S3 per l'intervallo di tempo in questione al momento del contatto. Supporto AWS
Regioni supportate
Di seguito sono elencate le Regioni disponibili per la copia automatica.
| Region | Auto-copy |
|---|---|
| Africa (Città del Capo) | Disponibilità |
| Asia Pacifico (Hong Kong) | Disponibilità |
| Asia Pacifico (Taipei) | Disponibilità |
| Asia Pacifico (Tokyo) | Disponibilità |
| Asia Pacifico (Seul) | Disponibilità |
| Asia Pacifico (Osaka) | Disponibilità |
| Asia Pacifico (Mumbai) | Disponibilità |
| Asia Pacifico (Hyderabad) | Disponibilità |
| Asia Pacifico (Singapore) | Disponibilità |
| Asia Pacifico (Sydney) | Disponibilità |
| Asia Pacifico (Giacarta) | Disponibilità |
| Asia Pacifico (Melbourne) | Disponibilità |
| Asia Pacifico (Malesia) | Disponibilità |
| Asia Pacifico (Nuova Zelanda) | Non disponibile |
| Asia Pacifico (Thailandia) | Disponibilità |
| Canada (Centrale) | Disponibilità |
| Canada occidentale (Calgary) | Disponibilità |
| Cina (Pechino) | Disponibilità |
| Cina (Ningxia) | Disponibilità |
| Europa (Francoforte) | Disponibilità |
| Europa (Zurigo) | Disponibilità |
| Europa (Stoccolma) | Disponibilità |
| Europa (Milano) | Disponibilità |
| Europa (Spagna) | Disponibilità |
| Europa (Irlanda) | Disponibilità |
| Europa (Londra) | Disponibilità |
| Europa (Parigi) | Disponibilità |
| Israele (Tel Aviv) | Disponibilità |
| Medio Oriente (Emirati Arabi Uniti) | Disponibilità |
| Medio Oriente (Bahrein) | Disponibilità |
| Messico (centrale) | Disponibilità |
| Sud America (San Paolo) | Disponibilità |
| Stati Uniti orientali (Virginia settentrionale) | Disponibilità |
| Stati Uniti orientali (Ohio) | Disponibilità |
| Stati Uniti occidentali (California settentrionale) | Disponibilità |
| Stati Uniti occidentali (Oregon) | Disponibilità |
| AWS GovCloud (US-East) | Disponibilità |
| AWS GovCloud (US-West) | Disponibilità |
Considerazioni relative al ripristino di un obiettivo di integrazione di un evento S3
Quando ripristini uno spazio dei nomi Serverless di Amazon Redshift da un'istantanea o da un punto di ripristino allo stesso spazio dei nomi serverless, le integrazioni degli eventi S3 e i COPY JOB associati vengono mantenuti automaticamente. Tieni presente le seguenti considerazioni:
-
Il ripristino di un'istantanea in un namespace diverso non mantiene le integrazioni degli eventi S3.
-
Dopo il ripristino, Amazon Redshift identifica automaticamente i file che sono stati caricati nel bucket Amazon S3 di origine dopo l'acquisizione dello snapshot. Tutti i file presenti in Amazon S3 che non sono stati ancora caricati vengono inseriti automaticamente. Durante questo processo, l'inserimento di nuovi file dalle notifiche degli eventi S3 continua a funzionare in parallelo.
Nota
Dopo il ripristino, solo i file presenti nel bucket Amazon S3 sono idonei all'inserimento. I file caricati dopo l'acquisizione dell'istantanea e successivamente eliminati prima del completamento del ripristino non vengono inseriti.
-
Se è stata creata un'integrazione con un evento S3 dopo l'acquisizione dell'istantanea, l'integrazione entra nello stato dopo il ripristino.
NEEDS_ATTENTIONPer risolvere questo problema, puoi eseguire il ripristino da un'istantanea più recente che include l'integrazione o eliminare l'integrazione. -
Se l'integrazione di un evento S3 è stata eliminata dopo l'acquisizione dell'istantanea, l'integrazione non viene ripristinata. Lo stato COPY JOB corrispondente cambia in.
PENDINGPuoi creare una nuova integrazione nello stesso bucket Amazon S3 e ricreare il COPY JOB. I file aggiunti a S3 tra il momento dello snapshot e il momento in cui i COPY JOB sono stati ricreati non possono essere recuperati o reinseriti. Per identificare questi file, controllate l'ora dell'istantanea nella console e l'ora di eliminazione dell'integrazione. I file arrivati nel CloudTrail bucket S3 tra questi orari sono quelli mancanti. -
Se i COPY JOB sono stati modificati dopo l'acquisizione dell'istantanea, lo spazio dei nomi ripristinato utilizza i COPY JOB dell'istantanea. Amazon Redshift riconcilia eventuali differenze e aggiorna l'integrazione per riflettere la configurazione di COPY JOB ripristinata.
-
Per disattivare il mantenimento delle integrazioni degli eventi S3 durante un ripristino, deseleziona la casella Mantieni integrazioni nella pagina di ripristino in, o se stai utilizzando il parametro Console di gestione AWS, imposta il
--no-maintain-integrationparametro quando chiami l'operazione API restore-from-snapshot o AWS CLI restore-from-recovery-point. https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_RestoreFromSnapshot.html https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_RestoreFromRecoveryPoint.html Quando effettui la disattivazione, le integrazioni entrano nello stato successivo al ripristino.FAILED -
Questa funzionalità si applica ad Amazon Redshift Serverless solo se ripristinata nello stesso namespace serverless. I ripristini istantanei su cluster predisposti non mantengono le integrazioni degli eventi S3.