Migrando do driver JDBC 3.x para o driver JDBC 4.x¶
O driver JDBC 4.x implementa vários recursos novos e melhorias em relação ao driver JDBC 3.x. Este tópico apresenta uma visão geral da mudanças na API pública e dos novos recursos, além de fornecer informações sobre como migrar do driver JDBC 3.x para driver JDBC 4.x.
Visão geral da API pública¶
A API pública do driver JDBC do Snowflake está localizada no pacote net.snowflake.client.api (consulte a referência da API). As mudanças na API pública entre o driver JDBC 3.x e o driver JDBC 4.x estão listadas na tabela a seguir:
Pacote |
Descrição |
|---|---|
Ponto de entrada e registro do driver JDBC |
|
Interfaces de conexão e metadados de banco de dados específicas do Snowflake, configuração de transferência de fluxo |
|
Implementação do DataSource para criar e gerenciar conexões |
|
Fonte de dados do pool de conexões para aplicativos que exigem conexões em pool |
|
Interfaces de conjunto de resultados, metadados de campo, tipos de dados do Snowflake e status de consulta assíncrona |
|
Definições do método de autenticação |
|
API de carregamento de dados em massa para ingestão de alto volume com retornos de chamada do progresso |
Além disso, o driver inclui classes no pacote net.snowflake.client.internal que não fazem parte da API pública. Essas classes são usadas internamente pelo driver e não são destinadas ao uso por desenvolvedores de aplicativos. Use as APIs internas por sua conta e risco: elas estão sujeitos a alterações sem aviso prévio e sem garantia de compatibilidade com versões anteriores.
Mudanças no código do driver JDBC 3.x para o driver JDBC 4.x¶
Alterações no nome da classe do driver¶
O nome da classe do driver foi alterado.
Antes (3.x) |
Depois (4.x) |
|---|---|
|
|
Alterações na criação da fonte de dados¶
SnowflakeDataSource e SnowflakeConnectionPoolDataSource agora são interfaces. Use classes de fábrica em vez de instanciação direta.
Componente |
Método de fábrica |
|---|---|
|
|
|
|
Alterações no tipo de autenticação¶
O tipo de autenticação mudou de SNOWFLAKE para SNOWFLAKE_JDBC.
Antes (3.x) |
Depois (4.x) |
|---|---|
|
|
Outros tipos de autenticação incluem:
SNOWFLAKEOKTAEXTERNAL_BROWSEROAUTHSNOWFLAKE_JWTID_TOKENUSERNAME_PASSWORD_MFAOAUTH_AUTHORIZATION_CODEOAUTH_CLIENT_CREDENTIALSPROGRAMMATIC_ACCESS_TOKENWORKLOAD_IDENTITY
Alterações no carregamento e no download de fluxos¶
A interface SnowflakeConnection simplificou as sobrecargas das operações de fluxo:
Carregamento:
uploadStream(stageName, destFileName, inputStream)uploadStream(stageName, destFileName, inputStream, UploadStreamConfig)Opções de
UploadStreamConfig:destPrefix,compressData(padrão:true)
Download:
downloadStream(stageName, sourceFileName)downloadStream(stageName, sourceFileName, DownloadStreamConfig)Opções de
DownloadStreamConfig:decompress(padrão:false)
Alterações em SnowflakeType¶
O enum SnowflakeType foi removido. Os valores de tipo permanecem os mesmos, mas o enum não é mais compatível.
Alterações em QueryStatus e SnowflakeAsyncResultSet¶
A versão 4.0.0 fez as seguintes alterações em relação a consultas e conjuntos de resultados:
O enum
QueryStatusfoi substituído por DTO (antes conhecido comoQueryStatusV2). Ele carrega os mesmos dados, mas de maneira thread-safe. Para recuperar o status da consulta, desencapsule o conjunto de resultados comoSnowflakeAsyncResultSete chamegetStatus.O
getQueryErrorMessageem um conjunto de resultados é removido, mas pode ser recuperado diretamente degetErrorMessageemQueryStatus.
Se você precisa de um valor de enumeração representando o status, chame getStatus em QueryStatus.