Définition du paramètre de taille d’extraction JDBC - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouveaux Python UDFs à compter du 1er novembre 2025. Si vous souhaitez utiliser Python UDFs, créez la version UDFs antérieure à cette date. Le Python existant UDFs continuera à fonctionner normalement. Pour plus d’informations, consultez le billet de blog .

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Définition du paramètre de taille d’extraction JDBC

Par défaut, le pilote Redshift JDBC utilise une mémoire tampon en anneau pour gérer efficacement la mémoire et éviter les erreurs. out-of-memory Le paramètre fetch size n'est applicable que lorsque le ring buffer est explicitement désactivé. Pour plus d'informations, consultez le lien. Dans cette configuration, vous devez définir la taille d'extraction pour contrôler le nombre de lignes extraites dans chaque lot.

Quand utiliser Fetch Size ?

Utilisez le paramètre fetch size lorsque :

  • Vous avez besoin d'un contrôle précis du traitement par lots par lignes

  • Utilisation d'applications existantes qui nécessitent un comportement de taille d'extraction traditionnel

Réglage de la taille de récupération

Lorsque la mémoire tampon en anneau est désactivée, le pilote JDBC collecte tous les résultats d'une requête en une seule fois par défaut. Les requêtes qui renvoient de grands ensembles de résultats peuvent consommer trop de mémoire. Pour récupérer les ensembles de résultats par lots au lieu de les récupérer tous en une seule fois, définissez le paramètre JDBC fetch size dans votre application.

Note

La taille de l’extraction n’est pas prise en charge pour ODBC.

Pour obtenir les meilleures performances, définissez la taille de l’extraction sur la valeur la plus élevée qui n’entraîne pas d’erreurs de mémoire. Une valeur d’extraction de taille inférieure entraîne plusieurs opérations du serveur, ce qui prolonge les temps d’exécution. Le serveur réserve des ressources, y compris l’emplacement de requête WLM et la mémoire associée, jusqu’à ce que le client récupère le jeu de résultats complet ou que la requête soit annulée. Lorsque vous ajustez la taille d’extraction de façon appropriée, ces ressources sont libérées plus rapidement, ce qui les rend disponibles pour d’autres requêtes.

Note

Si vous devez extraire de grands jeux de données, nous vous recommandons d’utiliser une instruction UNLOAD pour transférer les données vers Amazon S3. Lorsque vous utilisez UNLOAD, les nœuds de calcul fonctionnent en parallèle afin d’accélérer le transfert des données.

Pour plus d’informations sur la définition du paramètre de taille d’extraction JDBC, consultez Obtention de résultats basés sur un curseur dans la documentation de PostgreSQL.