Notes de version de .NET Driver pour 2024¶
Cet article contient les notes de version .NET Driver, 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 .NET Driver.
Voir Pilote .NET pour la documentation.
Version 4.1.0 (05 août 2024)¶
Nouvelles fonctionnalités et améliorations¶
Ajout de messages de journal concernant la destination du domaine à laquelle le pilote se connecte.
DbCommand.Prepare()
mise à jour pour ne rien faire au lieu de lever une exception.
Corrections de bogues¶
Correction d’un problème où une exception d’annulation était perdue lors de l’annulation d’une opération
OpenAsync
.
Version 4.0.0 (08 juillet 2024)¶
Changements BCR (Version de changement de comportement)¶
À partir de la version 4.0.0, le pilote .NET a introduit les modifications de rupture suivantes :
Modifications du comportement du pool de connexions :
Le pilote utilise désormais des pools distincts pour chaque chaîne de connexion unique. Auparavant, le pilote n’utilisait qu’un seul pool pour toutes les chaînes de connexion.
Le paramètre
maxPoolSize
change :Auparavant, il représentait le nombre de connexions à stocker dans le pool. Il définit désormais le nombre maximal de connexions autorisées à s’ouvrir pour un pool donné (pour chaque chaîne de connexion unique, il existe un pool différent, vous pouvez donc le définir différemment pour chacun d’eux).
Si
maxPoolSize
est atteint, le thread demandant une nouvelle connexion attend qu’une connexion du pool soit disponible pour être réutilisée sans dépasser la limite. Une exception est levée en cas de dépassement de délai.Vous pouvez configurer le temps d’attente dans la chaîne de connexion en définissant la propriété
waitingForIdleSessionTimeout
. La valeur par défaut du délai d’attente est de 30 secondes. Vous pouvez la remplacer par 0 pour désactiver l’attente.La valeur par défaut pour
maxPoolSize
est 10. Assurez-vous que votre valeurmaxPoolSize
est correctement définie en fonction de vos besoins pour éviter de bloquer vos threads ou de faire expirer des exceptions.La propriété
maxPoolSize
devrait être supérieure ou égale àminPoolSize
.
Ajout d’un nouveau paramètre
minPoolSize
avec une valeur par défaut de 2 qui oblige le pilote à ouvrir deux connexions (la seconde en arrière-plan) lorsque vous ouvrez la première connexion pour une chaîne de connexion donnée. Vous pouvez définir cette valeur sur 0 dans la chaîne de connexion si vous souhaitez désactiver la fonctionnalitéminPoolSize
.La configuration du pool a été modifiée pour adopter une approche pilotée par chaîne de connexion. Toutes les propriétés qui contrôlent le comportement du pool de connexions peuvent désormais être transmises dans la chaîne de connexion. Il n’est plus possible de définir les propriétés du pool de connexion à l’aide de setters
SnowflakeDbConnectionPool
tels queSnowflakeDbConnectionPool.SetTimeout
,SetPooling
, ouSetMaxPoolSize
. L’utilisation de settersSnowflakeDbConnectionPool
génère désormais des exceptions.Auparavant, les connexions qui modifiaient les paramètres de base de données, de schéma, de rôle ou d’entrepôt (par exemple, en exécutant la commande ALTER SESSION SET) ont été regroupés. Le nouveau comportement par défaut pour de tels cas modifie les connexions modifiées lorsque la fermeture ne les renvoie pas au pool. Si vous souhaitez utiliser des connexions modifiées dans le pool, vous devez ajouter
ChangedSession=OriginalPool
à votre chaîne de connexion.Connexions avec authentification de navigateur externe ou, dans certains cas d’authentification par jeton KeyPair/JWT, ne sont plus stockées dans le pool par défaut. Pour activer le regroupement de ces connexions, vous devez ajouter
poolingEnabled=true
à la chaîne de connexion. Pour les autres méthodes d’authentification, le pooling est activé par défaut.Pour plus d’informations sur l’utilisation du pool de connexions, voir Utilisation des pools de connexion.
Changement de comportement du paramètre
NONPOXYHOSTS
:Le comportement pour le paramètre
NONPROXYHOSTS
a changé. Auparavant, un hôte n’était pas proxy si son nom contenait la valeur spécifiée dans ce paramètre. Désormais, l’hôte n’est pas proxy lorsqu’il s’agit exactement de la valeur spécifiée dans le paramètre. Par exemple, auparavantNONPROXYHOSTS=c
correspondait également à tout hôte contenant « c », tel que « votre-compte.snowflakecomputing.com ». Après le changement, vous devez spécifier l’hôte entier, par exempleNONPROXYHOSTS=votre-compte.snowflakecomputing.com
, pour le rendre non proxy.
Nouvelles fonctionnalités et améliorations¶
Comportement du pool de connexions modifié avec plusieurs pools (un pour chaque chaîne de connexion unique) et configuration pilotée par chaîne de connexion. Pour plus d’informations sur l’utilisation du pool de connexions, voir Utilisation des pools de connexion.
Ciblage vers .netstandard 2.0.
Ajout d’une signature de nom fort à l’assemblage du pilote.
Ajout de la possibilité de définir le paramètre
QueryTag
dans la chaîne de connexion et sur l’objetSnowflakeDbCommand
pour marquer la connexion et les requêtes de commande avec une balise.Modification de la dépendance
BouncyCastle.Cryptography
.Modification de la dépendance
Google.Cloud.Storage.V1
.Introduit un nouveau paramètre
DISABLE_SAML_URL_CHECK
qui désactive la vérification si l’URL postback SAML correspond à l’URL de l’hôte lors de l’authentification avec Okta.
Corrections de bogues¶
Correction de la gestion des valeurs de date et d’heure transmises avec des liaisons pour les requêtes avec une très grande quantité de liaisons (plus de
CLIENT_STAGE_ARRAY_BINDING_THRESHOLD
).Correction de l’envoi des requêtes SQL au serveur en transmettant les requêtes d’origine au lieu des requêtes tronquées, ce qui entraînait des erreurs pour les requêtes se terminant par des commentaires.
Mise en œuvre d’un moyen plus fiable de fournir des hôtes dans le paramètre
NONPROXYHOSTS
.Correction de la prise en charge fixe des guillemets doubles dans les paramètres de chaîne de connexion DB, SCHEMA, WAREHOUSE, ROLE.
Correction de clients S3 fixes en ajoutant « https:// » à
ServiceUrl
si manquant.Mise à jour du détecteur de secrets pour mieux masquer les secrets lors de la connexion.
Ajout de la configuration d’une valeur
SnowflakeDbParameter.DbType
appropriée.Correction de la logique de raccourcissement de
connectionTimeout
parretryTimeout
en cas de valeurretryTimeout
infinie.Appliqué la logique de l’augmentation
maxHttpRetries
à la valeur par défaut pour les clients HTTP. Auparavant, cela s’appliquait uniquement à l’authentification Okta.
Version 3.1.0 (27 mars 2024)¶
Nouvelles fonctionnalités et améliorations¶
Ajout de la prise en charge de l’exécution de requêtes asynchrones.
Corrections de bogues¶
Amélioration des exceptions générées par l’authentificateur Okta.
Correction d’un problème de validation des noms de comptes très courts (1 à 2 caractères).
Correction d’un problème lié à la récupération de la propriété
WAREHOUSE
à partir d’une chaîne de connexion dont le contenu est entre guillemets, telle que"WAREHOUSE=\"two words\""
.
Version 3.0.0 (29 février 2024)¶
Changements BCR (Version de changement de comportement)¶
Pour améliorer la sécurité, le pilote ne recherche plus de répertoire temporaire pour faciliter les configurations d’enregistrement. En outre, le pilote exige désormais que le fichier de configuration de la journalisation sur les systèmes de type Unix limite les autorisations de fichiers afin que seul le propriétaire du fichier puisse modifier les fichiers (par exemple
chmod 0600
,chmod 0644
).Le pilote lance désormais un
SnowflakeDbException
avec unQueryID
pour les échecs PUT/GET. Auparavant, le pilote renvoyait différents types d’exceptions, tels queFileNotFound
etDirectoryNotFound
. Si votre application a vérifié l’une de ces exceptions, vous devez mettre à jour votre code pour ne traiter queSnowflakeDbException
pour les échecs PUT/GET.Le pilote ne prend plus en charge les anciennes versions, telles que V1 et V2, de l’analyseur/téléchargeur de morceaux. Dans le cadre de la mise à niveau vers la version V3, le pilote ne prend plus en charge les options de configuration
SFConfiguration.UseV2JsonParser
ouSFConfiguration.UseV2ChunkDownloader
. Si vous avez utilisé des commandes similaires aux suivantes, vous devez les supprimer :SFConfiguration.Instance().ChunkParserVersion = 1;
ouSFConfiguration.Instance().ChunkParserVersion = 2;
SFConfiguration.Instance().ChunkDownloaderVersion = 1;
ouSFConfiguration.Instance().ChunkDownloaderVersion = 2;
SFConfiguration.Instance().UseV2JsonParser
SFConfiguration.Instance().UseV2ChunkDownloader
Nouvelles fonctionnalités et améliorations¶
Ajout de la prise en charge de plusieurs intégrations SAML.
Corrections de bogues¶
Amélioration de la sécurité de la fonction d’enregistrement facile, notamment :
Utilisation d’une méthode plus fiable pour déterminer le répertoire des pilotes à utiliser lors de la recherche des fichiers de configuration du client.
Plus d’utilisation d’un répertoire temporaire pour la recherche de configuration.
Mise en œuvre de contrôles supplémentaires des autorisations de fichiers sous Unix pour une sécurité accrue.
Ajout d’une journalisation plus verbeuse.
Correction d’un problème de réessai d’Okta pour les points de terminaison SSO/SAML.
Ajout d’un échec rapide pour les commandes sans exécution de texte.
Correction des exceptions générées par l’échec des exécutions PUT/GET pour qu’elles contiennent
QueryId
si possible.Remplacement de la bibliothèque
Portable.BouncyCastle
parBouncyCastle.Cryptography
.
Version 2.2.0 (17 janvier 2024)¶
Changements BCR (Version de changement de comportement)¶
À partir de la version 2.2.0, le pilote .NET remplace automatiquement les traits de soulignement (
_
) dans les noms de comptes par des traits d’union (-
) lors de la construction d’un nom d’hôte basé sur un nom de compte. Ce changement a un impact sur les clients PrivateLink dont les noms de compte contiennent des caractères de soulignement. Dans cette situation, vous devez remplacer la valeur par défaut en donnant àallowUnderscoresInHost
la valeurtrue
. Vous pouvez ignorer ce comportement en plaçantallowUnderscoresInHost=true
dansConnectionString
.Cette modification a été apportée pour corriger les erreurs de résolution DNS qui se produisaient lors de la connexion via le lien public avec des comptes Snowflake dont les noms de compte comportaient des traits de soulignement.
Nouvelles fonctions et mises à jour¶
Amélioration des performances Arrow
Remplace automatiquement les traits de soulignement (
_
) dans les noms de compte par des traits d’union (-
) lors de la construction d’un nom d’hôte basé sur un nom de compte.Ajout d’un paramètre de configuration
allowUnderscoresInHost
pour permettre aux traits de soulignement (_) dans les noms de comptes d’être maintenus dans le nom d’hôte construit. Ce paramètre vous permet d’ignorer le changement de comportement associé à cette version.
Corrections de bogues¶
Afin de résoudre un problème lié aux délais d’expiration de connexion, le pilote ferme désormais les sessions expirées de manière asynchrone lors de la connexion.