Notes de version de Snowflake Connector for Python pour 2023¶
Cet article contient les notes de version Snowflake Connector for Python, y compris les éléments suivants, le cas échéant :
Changements de comportement
Nouvelles fonctionnalités
Corrections de bogues pour les clients
Snowflake utilise la version sémantique pour les mises à jour Snowflake Connector for Python.
Version 3.6.0 (07 décembre 2023)¶
Nouvelles fonctions et mises à jour¶
Ajout de la prise en charge des types de vecteur.
Ajout de la prise en charge des paramètres de connexion
private_key_file
etprivate_key_file_pwd
.Ajout du nouvel indicateur
expired
à la classeSnowflakeConnection
qui permet de savoir si le jeton maître de la connexion a expiré.Modification de l’épinglage de version urlib3 pour n’affecter que les versions de Python inférieures à 3.10.
Corrections de bogues¶
Correction d’un bogue selon lequel l’insertion de la date échouait lorsque le format de date était défini et que la liaison de style qmark était utilisée.
Version 3.5.0 (13 novembre 2023)¶
Nouvelles fonctions et mises à jour¶
Snowflake Connector for Python est maintenant basé uniquement sur le projet apache arrow-nanoarrow :
Réduction de la taille des roues à ~1MB et de la taille de l’installation à ~5MB.
Suppression d’une dépendance forte sur une version spécifique de pyarrow.
Les éléments suivants ont été abandonnés au profit du convertisseur nanoarrow :
classe
snowflake.connector.cursor.NanoarrowUsage
.Variable d’environnement
NANOARROW_USAGE
.Variable du module
snowflake.connector.cursor.NANOARROW_USAGE
.
Corrections de bogues¶
Aucun.
Version 3.4.1 (09 novembre 2023)¶
Nouvelles fonctions et mises à jour¶
Mise à niveau des bibliothèques suivantes :
Mise à jour de
urlib3
vers la version 1.26.18.Mise à jour des
requests
liées vers la version 2.31.0.
Corrections de bogues¶
Aucun.
Version 3.4.0 (03 novembre 2023)¶
Nouvelles fonctions et mises à jour¶
Ajout de la prise en charge de
use_logical_type
danswrite_pandas
.Ajout de l’argument
backoff_policy
àsnowflake.connector.connect
permettant une politique d’interruption configurable entre les tentatives de requêtes ayant échoué. Voir les implémentations disponibles dans le modulebackoff_policies
.Ajout de l’argument
socket_timeout
àsnowflake.connector.connect
spécifiant le délai d’expiration de lecture et de connexion du socket.Suppression des dépendances sur pycryptodomex et oscrypto. Toutes les connexions passent désormais par OpenSSL via la bibliothèque de cryptographie, qui était déjà une dépendance.
Corrections de bogues¶
Correction du comportement de
login_timeout
etnetwork_timeout
. Les tentatives de connexion et les requêtes réseau sont désormais correctement interrompues après l’expiration de ces délais.Correction d’un bogue pour le problème urllib3/urllib3#1878 dans le fournisseur
urllib
.Correction d’un problème d’ingestion de fichiers entre 80 GB dans S3.
Version 3.3.1 (18 octobre 2023)¶
Nouvelles fonctions et mises à jour¶
Pour les plates-formes non Windows, ajout de suggestions de commandes (
chown
ouchmod
) pour les autorisations insuffisantes des fichiers de configuration.
Corrections de bogues¶
Correction d’un problème où les diagnostics de connexion ne parvenaient pas à terminer les vérifications de certificat.
Correction d’un problème où l’itérateur Arrow provoquait
ImportError
lorsque les extensions C n’étaient pas compilées.
Version 3.3.0 (12 octobre 2023)¶
Nouvelles fonctions et mises à jour¶
Mise à jour du projet Apache arrow-nanoarrow pour la conversion des données de flèche de résultat.
Introduction de la variable d’environnement
NANOARROW_USAGE
pour permettre la commutation entre le convertisseur nanoarrow et le convertisseur arrow. Les valeurs valides incluent :FOLLOW_SESSION_PARAMETER
, qui utilise le convertisseur configuré sur le serveur.DISABLE_NANOARROW
, qui utilise le convertisseur Arrow, remplaçant le paramètre du serveur.ENABLE_NANOARROW
, qui utilise le convertisseur Nanoarrow, remplaçant les paramètres du serveur.
Introduction de l’énumération
snowflake.connector.cursor.NanoarrowUsage
, dont les membres incluent :NanoarrowUsage.FOLLOW_SESSION_PARAMETER
, qui utilise le convertisseur configuré sur le serveur.NanoarrowUsage.DISABLE_NANOARROW
, qui utilise le convertisseur Arrow, remplaçant le paramètre du serveur.NanoarrowUsage.ENABLE_NANOARROW
, qui utilise le convertisseur Nanoarrow, remplaçant les paramètres du serveur.
Introduction de la variable de module
snowflake.connector.cursor.NANOARROW_USAGE
pour permettre la commutation entre le convertisseur nanoarrow et le convertisseur Arrow. Cela fonctionne en conjonction avec l’énumérationsnowflake.connector.cursor.NanoarrowUsage
.
Note
La variable d’environnement, l’énumération et la variable de module nouvellement introduites sont temporaires. Ils seront supprimés dans une prochaine version lorsque le passage de Arrow à nanoarrow pour la conversion des données sera terminé.
Corrections de bogues¶
Aucun.
Version 3.2.1 (3 octobre 2023)¶
Nouvelles fonctions et mises à jour¶
Ajout d’une sécurité de niveau « thread safety » dans la télémétrie lors de l’instanciation simultanée de plusieurs connexions.
Amélioration de la robustesse dans la gestion des changements d’authentification.
Suppression de l’avertissement de dépréciation
urllib3.contrib.pyopenssl
de la bibliothèqueurllib3
.Mise à jour de la dépendance
platformdirs
pour les versions 2.6.0 à 4.0.0 à partir des versions 2.6.0 à 3.9.0.
Corrections de bogues¶
Correction d’un bogue où un URL, un port et un chemin étaient ignorés dans les nouvelles tentatives de AWS PrivateLink OCSP.
Version 3.2.0 (7 septembre 2023)¶
Nouvelles fonctions et mises à jour¶
Rendre plus cohérent le renommage de
parser -> manager
dans le modulesnowflake.connector.config_manager
.Ajout de la prise en charge des valeurs par défaut pour
ConfigOptions
.Ajout du
default_connection_name
au fichierconfig.toml
.
Corrections de bogues¶
Aucun.
Version 3.1.1 (28 août 2023)¶
Nouvelles fonctions et mises à jour¶
Ajout de la prise en charge de RSAPublicKey lors de la construction de
AuthByKeyPair
en plus des octets bruts.
Corrections de bogues¶
Correction d’un bogue dans la logique de nouvelles tentatives de l’authentification OKTA pour actualiser le jeton.
Correction d’un bogue où l’attribut
proxy_header
est manquant dansSOCKSProxyManager
lors d’une connexion via le proxy SOCKS5.
Version 3.1.0 (31 juillet 2023)¶
Nouvelles fonctions et mises à jour¶
Ajout d’une fonction qui vous permet d’ajouter des définitions de connexion au fichier de configuration
connections.toml
. Une définition de connexion fait référence à un ensemble de paramètres de connexion. Par exemple, si vous vouliez définir une connexion nommée « prod »:[prod] account = "my_account" user = "my_user" password = "my_password"
Par défaut, nous recherchons le fichier
connections.toml
à l’emplacement spécifié dans la variable d’environnementSNOWFLAKE_HOME
(par défaut :~/.snowflake
). Si ce dossier n’existe pas, le connecteur Python recherche le fichier à l’emplacementplatformdirs
, comme suit :Sous Linux :
~/.config/snowflake/
, mais suit les paramètres XDGSur Mac :
~/Library/Application Support/snowflake/
Sur Windows :
%USERPROFILE%\AppData\Local\snowflake\
Vous pouvez déterminer quel fichier est utilisé en exécutant la commande suivante :
python -c "from snowflake.connector.constants import CONNECTIONS_FILE; print(str(CONNECTIONS_FILE))"
La dépendance de la cryptographie est passée de <41.0.0,>=3.1.0 à >=3.1.0,<42.0.0.
Amélioration de la mise en cache des réponses OCSP pour supprimer les fichiers de cache tmp sous Windows
Amélioration de la mise en cache des réponses OCSP afin de réduire les temps d’écriture sur le disque.
Ajout d’un paramètre
server_session_keep_alive
dansSnowflakeConnection
qui permet d’éviter la suppression de la session lors de la fermeture de la connexion du client.Nous avons resserré nos liens avec
platformdirs
, afin d’éviter que leurs nouvelles versions ne compromettent les nouvelles versions du connecteur.Possibilité de transmettre
type_mapper
àfetch_pandas_batches()
etfetch_pandas_all()
.Amélioration de la logique de nouvelles tentatives pour l’authentification okta afin d’actualiser le jeton si l’authentification est bloquée.
Ajout de motifs de relance pour les requêtes qui font l’objet de nouvelles tentatives par le client.
Suppression de la prise en charge de Python 3.7.
Amélioration de la gestion de l’erreur de réinitialisation de la connexion.
Corrections de bogues¶
Correction d’un bogue à cause duquel
SFPlatformDirs
ajoutait incorrectement le nom/la version de l’application à son chemin.Correction d’un bogue où
write_pandas
échoue lorsque l’utilisateur n’a pas le privilège de créer une zone de préparation ou un format de fichier dans le schéma cible, mais qu’il a le bon privilège pour le schéma actuel.Correction d’un erreur de segmentation qui se produisait parfois lors de la sérialisation du cache dans des scénarios multithreads.
Correction d’un bogue concernant la suppression des fichiers temporaires lors de l’exécution d’une commande PUT.
Correction d’un bogue qui provoquait une erreur de segmentation de
pickle.dump
lors de la sérialisation du cache dans des scénarios multithreads.
Version 3.0.4 (25 mai 2023)¶
Nouvelles fonctions et mises à jour¶
Ajout du paramètre de connexion
json_result_force_utf8_decoding
pour forcer le décodage du contenu JSON en utf-8 lorsque le format de résultat est JSON.Passage de la bibliothèque liée à la copie de paquets tiers urllib3 à la version 1.26.15
Passage des requêtes de la bibliothèque liée à la copie de paquets tiers à la version 2.29.0
La dépendance de pandas est passée de <1.6.0,>=1.0.0 à >=1.0.0,<2.1.0
Ajout de la prise en charge des types de géométrie.
Corrections de bogues¶
Correction d’un bogue dans lequel
cursor.execute()
pouvait modifier l’objet dictionnairestatement_params
de l’argument lors de l’exécution d’une requête à plusieurs instructions.Correction d’un bogue empêchant d’appeler
SnowflakeCursor.nextset
avant de récupérer le résultat de la première requête si le curseur exécute une requête asynchrone à plusieurs instructions.Correction d’un bogue lorsque
_prefetch_hook()
n’était pas appelé avant d’obtenir les résultats deexecute_async()
.Correction d’un bogue où certains champs
ResultMetadata
étaient marqués comme obligatoires alors qu’ils étaient facultatifs.Correction d’un bogue où l’insertion en masse convertit la date de manière incorrecte.
Version 3.0.3 (20 avril 2023)¶
Nouvelles fonctions et mises à jour¶
Ajout d’un paramètre permettant aux utilisateurs d’ignorer les chargements de fichiers vers une zone de préparation si le fichier existe sur la zone de préparation et si le contenu du fichier correspond.
Amélioration de l’indication de type de la méthode
SnowflakeCursor.execute
.Amélioration de la journalisation de GET pour avertir du téléchargement de plusieurs fichiers portant le même nom.
Corrections de bogues¶
Correction d’un bogue entraînant l’affichage d’une erreur dans les journaux pour la commande GET sur GCS.
Ajout d’un paramètre permettant aux utilisateurs d’ignorer les chargements de fichiers vers une zone de préparation si le fichier existe sur la zone de préparation et si le contenu du fichier correspond.
Correction d’un bogue qui survenait lors de l’écriture d’un DataFrame Pandas avec des noms de colonnes contenant des guillemets doubles dans
snowflake.connector.pandas_tool.write_pandas
.Correction d’un bogue survenant lors de l’écriture d’un DataFrame Pandas avec des données binaires dans
snowflake.connector.pandas_tool.write_pandas
.
Version 3.0.2 (23 mars 2023)¶
Nouvelles fonctions et mises à jour¶
Aucun.
Corrections de bogues¶
Correction d’un bogue concernant les indications de type incorrectes pour
SnowflakeCursor.fetch_arrow_all
etSnowflakeCursor.fetchall
.Amélioration de la journalisation pour masquer les jetons en cas d’erreur.
Correction d’un bogue où
snowflake.connector.util_text.split_statements
mangeait le saut de ligne final dans le cas où il n’y a pas d’espace entre les lignes.Correction d’une fuite de mémoire dans le module de journalisation de l’extension Cython.
Correction d’un bogue où la commande
put
sur AWS générait unAttributeError
lors du chargement d’un fichier composé de plusieurs parties.Correction d’un bogue où la commande
put
sur AWS provoquait une erreurAttributeError
pour les fichiers dont la taille était supérieure à 200MB.
Version 3.0.1 (01 mars 2023)¶
Nouvelles fonctions et mises à jour¶
Amélioration de la robustesse de la mise en cache des réponses OCSP pour gérer les erreurs dans les cas de sérialisation et de désérialisation.
Remplacement de la dépendance sur
setuptools
en faveur de l’empaquetage.Mise à jour de la chaîne de documentation de la méthode
async_executes
.Les erreurs levées ont désormais un champ de requête qui contient la requête SQL qui les a provoquées lorsqu’elle est disponible.
Corrections de bogues¶
Correction d’un bogue qui faisait que
AuthByKeyPair.handle_timeout
devait transmettre des arguments de type mot-clé au lieu d’arguments de position lors de l’appel deAuthByKeyPair.prepare
.Correction d’un bogue où la mise en cache du jeton MFA refusait de fonctionner jusqu’au redémarrage au lieu de la réauthentification.
Version 3.0.0 (27 janvier 2023)¶
Changement BCR (version de changement de comportement)¶
Correction d’un bogue où write_pandas n’utilisait pas les schémas et bases de données spécifiés par l’utilisateur pour créer des objets intermédiaires.
Auparavant, la fonction write_pandas créait des objets temporaires dans la base de données et le schéma utilisés et ne plaçait la table finale (créée ou ajoutée) que dans la base de données et le schéma spécifiés par l’utilisateur. Avec cette version, si les paramètres de base de données ou de schéma pour
write_pandas
sont différents de ceux actuellement sélectionnés, vous devez vous assurer que l’utilisateur qui exécutewrite_pandas
a accès à la création/suppression de zones de préparation temporaires, de formats de fichiers et de tables avec le schéma référencé par la fonctionwrite_pandas
.Snowflake vous recommande de tester toute nouvelle version de pilote dans des environnements de préproduction avant de la déployer dans des environnements de production. Dans le cadre de ce changement de comportement, vous devez accorder une attention particulière au(x) scénario(s) annoncé(s) ci-dessus (c’est-à-dire
write_pandas
avec des paramètres de base de données ou de schémas différents du contexte actuel).
Nouvelles fonctions et mises à jour¶
La dépendance de pyarrow est passée de >=8.0.0,<8.1.0 à >=10.0.1,<10.1.0
La dépendance de pyOpenSSL est passée de <23.0.0 à <24.0.0
Lors d’une authentification par navigateur, l’URL SSO est désormais affichée avant ouverture dans le navigateur
Augmentation du niveau de journalisation lorsque l’importation de ArrowResult est impossible
Ajout d’une vérification de la version minimale de MacOS lors de la compilation des extensions C
Corrections de bogues¶
Correction d’un bogue où
write_pandas
n’utilisait pas le schéma et la base de données spécifiés par l’utilisateur pour créer des objets intermédiairesCorrection d’un bogue où le code de réponse HTTP 429 ne faisait pas l’objet de nouvelles tentatives
Correction d’un bogue où la mise en cache des jetons MFA ne fonctionnait pas