Migration depuis le pilote JDBC 3.x vers le pilote JDBC 4.x¶
Le pilote JDBC 4.x introduit plusieurs nouvelles fonctionnalités et améliorations par rapport au pilote JDBC 3.x. Cette rubrique donne un aperçu des modifications et nouvelles fonctionnalités de l’API publique, et fournit également des informations sur la manière de migrer depuis le pilote JDBC 3.x vers le pilote JDBC 4.x.
Vue d’ensemble de l’API publique¶
L’API publique du pilote JDBC de Snowflake se trouve sous le paquet net.snowflake.client.api (consultez la référence de l’API). Les modifications apportées à l’API publique entre le pilote JDBC 3.x et le pilote JDBC 4.x sont répertoriées dans le tableau suivant :
Paquet |
Description |
|---|---|
Enregistrement et point d’entrée du pilote JDBC |
|
Interfaces de métadonnées de bases de données et de connexions spécifiques à Snowflake, configuration de transferts de flux |
|
Mise en œuvre de DataSource pour la création et la gestion des connexions |
|
Source de données du pool de connexions pour les applications nécessitant des connexions groupées |
|
Interfaces de jeux de résultats, métadonnées de champs, types de données Snowflake et état des requêtes asynchrones |
|
Définitions des méthodes d’authentification |
|
API de chargement de données en masse pour l’ingestion de volumes importants avec rappels de progression |
De plus, le pilote inclut des classes dans le paquet net.snowflake.client.internal qui ne font pas partie de l’API publique. Ces classes sont utilisées en interne par le pilote et ne sont pas destinées à être utilisées par les développeurs d’applications. Utilisez les APIs internes à vos propres risques : Elles sont susceptibles d’être modifiées sans préavis et sans garanties de rétrocompatibilité.
Modifications du code depuis le pilote JDBC 3.x vers le pilote JDBC 4.x¶
Modifications du nom de classe du pilote¶
Le nom de classe du pilote a changé.
Avant (3.x) |
Après (4.x) |
|---|---|
|
|
Modifications apportées à la création de sources de données¶
:codenowrap :SnowflakeDataSource et SnowflakeConnectionPoolDataSource sont maintenant des interfaces. Utilisez des classes d’usine au lieu de l’instanciation directe.
Composant |
Méthode d’usine |
|---|---|
|
|
|
|
Modifications du type d’authentification¶
Le type d’authentification a changé de SNOWFLAKE en SNOWFLAKE_JDBC.
Avant (3.x) |
Après (4.x) |
|---|---|
:codenowrap : |
|
Les autres types d’authentification sont les suivants :
SNOWFLAKEOKTAEXTERNAL_BROWSEROAUTHSNOWFLAKE_JWTID_TOKENUSERNAME_PASSWORD_MFAOAUTH_AUTHORIZATION_CODEOAUTH_CLIENT_CREDENTIALSPROGRAMMATIC_ACCESS_TOKENWORKLOAD_IDENTITY
Modifications du chargement et du téléchargement de flux¶
Les surcharges simplifiées par l’interface SnowflakeConnection pour les opérations de flux :
Chargement :
uploadStream(stageName, destFileName, inputStream)uploadStream(stageName, destFileName, inputStream, UploadStreamConfig)Options
UploadStreamConfig:destPrefix,compressData(par défaut :true)
Téléchargement :
downloadStream(stageName, sourceFileName)downloadStream(stageName, sourceFileName, DownloadStreamConfig)Options
DownloadStreamConfig:decompress(par défaut :false)
Modifications de SnowflakeType¶
L’énumération SnowflakeType a été supprimée. Les valeurs de type restent les mêmes, mais l’énumération n’est plus prise en charge.
Modifications de QueryStatus et SnowflakeAsyncResultSet¶
La version 4.0.0 a apporté les modifications suivantes concernant les requêtes et les jeux de résultats :
L’énumération
QueryStatusa été remplacée par DTO (précédemment connu sous le nom deQueryStatusV2). Il transmet les mêmes données, mais de manière thread-safe. Pour récupérer l’état de la requête, désencapsulez votre jeu de résultats enSnowflakeAsyncResultSetet appelergetStatus.Le
getQueryErrorMessagesur un jeu de résultats est supprimé, mais il peut être récupéré directement à partir degetErrorMessagesurQueryStatus.
Si vous avez besoin d’une valeur d’énumération représentant l’état, appelez getStatus sur QueryStatus.