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
Gestione delle operazioni di scrittura simultanee
Alcune applicazioni richiedono non solo query e caricamento simultanei, ma anche la possibilità di scrivere simultaneamente su più tabelle o sulla stessa tabella. In questo contesto, simultaneamente significa una sovrapposizione non pianificata per l'esecuzione simultanea. Due transazioni sono considerate simultanee se la seconda inizia prima del primo commit. Le operazioni simultanee possono provenire da sessioni diverse controllate dallo stesso utente o da utenti diversi.
Amazon Redshift supporta questi tipi di applicazioni consentendo la lettura delle tabelle mentre vengono modificate o caricate in modo incrementale. Le query visualizzano semplicemente l'ultima versione di cui è stato eseguito il commit o la snapshot dei dati, invece di attendere che venga eseguito il commit della successiva versione. Se desideri che una determinata query attenda il commit da un'altra operazione di scrittura, è necessario pianificarla di conseguenza.
Nota
Amazon Redshift supporta un comportamento di commit automatico di default in cui viene eseguito singolarmente il commit di ogni comando SQL eseguito separatamente. Se si racchiude un set di comandi in un blocco di transazione (definito dalle istruzioni BEGIN e END), viene eseguito il commit del blocco come una transazione, quindi è possibile eseguirne il rollback se necessario. Eccezioni a questo comportamento sono i comandi TRUNCATE e VACUUM, che eseguono automaticamente il commit di tutte le modifiche in sospeso apportate nella transazione corrente.
Alcuni client SQL eseguono automaticamente i comandi BEGIN e COMMIT, pertanto il client controlla se un gruppo di istruzioni viene eseguito come transazione o se ogni singola istruzione viene eseguita come transazione propria. Controlla la documentazione per l'interfaccia che stai utilizzando. Ad esempio, quando si utilizza il driver JDBC di Amazon Redshift, un'istruzione JDBC PreparedStatement con una stringa di query che contiene più comandi SQL (separati da punto e virgola) esegue tutte le istruzioni come una singola transazione. Al contrario, se si utilizza SQL Workbench/J e si imposta AUTO COMMIT ON, quindi se si eseguono più istruzioni, ogni istruzione viene eseguita come transazione propria.
I seguenti argomenti descrivono alcuni concetti chiave e casi d'uso che riguardano transazioni, snapshot del database, aggiornamenti e comportamento simultaneo.