Gestion des opérations d’écriture simultanées - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog .

Gestion des opérations d’écriture simultanées

Certaines applications nécessitent non seulement une interrogation et un chargement simultanés, mais également la possibilité d’écrire sur plusieurs tables ou sur la même table simultanément. Dans ce contexte, simultanément entraîne un chevauchement, non planifié pour s’exécuter exactement au même moment. Deux transactions sont considérées comme simultanées si la seconde démarre avant que la première ne soit validée. Les opérations simultanées peuvent provenir de différentes séances contrôlées par le même utilisateur ou par différents utilisateurs.

Amazon Redshift prend en charge ces types d’applications en permettant que les tables soient lues tandis qu’elles sont chargées ou modifiées de façon incrémentielle. Les requêtes voient simplement la dernière version validée, ou instantané, des données plutôt que d’attendre la validation de la version suivante. Si vous souhaitez qu’une requête donnée attende la validation d’une autre opération d’écriture, vous devez le planifier en conséquence.

Note

Amazon Redshift prend en charge un comportement de validation automatique par défaut dans lequel chaque commande SQL exécutée séparément est validée individuellement. Si vous placez un ensemble de commandes dans un bloc de transaction (défini par les instructions BEGIN et FIN), le bloc est validé comme une seule transaction et, par conséquent, vous pouvez le restaurer si nécessaire. Les exceptions à ce comportement sont les commandes TRUNCATE et VACUUM, qui valident automatiquement toutes les modifications en attente effectuées dans la transaction actuelle.

Certains clients SQL émettent automatiquement des commandes BEGIN et COMMIT, de sorte que le client contrôle si un groupe d’instructions est exécuté en tant que transaction ou si chacune des instructions est exécutée indépendamment. Consultez la documentation relative à de l’interface que vous utilisez. Par exemple, lors de l’utilisation du pilote JDBC Amazon Redshift, un PreparedStatement JDBC avec une chaîne de requête qui contient plusieurs commandes SQL (séparées par des points-virgules) exécute toutes les instructions en tant qu’une seule transaction. En revanche, si vous utilisez SQL Workbench/J et définissez AUTO COMMIT ON, alors si vous exécutez plusieurs instructions, chaque instruction s’exécute indépendamment.

Les rubriques suivantes décrivent certains des concepts et scénarios clés qui impliquent les transactions, les instantanés de base de données, les mises à jour et le comportement simultané.