Notas de lançamento de Snowflake Connector for Python para 2023¶
Este artigo contém as notas de versão do Snowflake Connector for Python, incluindo o seguinte, quando aplicável:
Mudanças de comportamento
Novos recursos
Correções de bugs voltados para o cliente
Snowflake usa controle de versão semântico para atualizações de Snowflake Connector for Python.
Consulte Conector Snowflake para Python para ver a documentação.
Versão 3.6.0 (07 de dezembro de 2023)¶
Novos recursos e atualizações¶
Adicionado suporte para tipos de vetores.
Adicionado suporte para os parâmetros de conexão
private_key_fileeprivate_key_file_pwd.Adicionado o novo sinalizador
expiredà classeSnowflakeConnectionque rastreia se o token mestre da conexão expirou.Alterado o pin da versão urlib3 para afetar apenas versões do Python anteriores a 3.10.
Correções de bugs¶
Corrigido um bug em que a inserção da data falhava quando o formato da data era definido e a vinculação no estilo qmark era usada.
Versão 3.5.0 (13 de novembro de 2023)¶
Novos recursos e atualizações¶
Snowflake Connector for Python agora é criado exclusivamente no projeto apache arrow-nanoarrow:
Reduziu o tamanho do wheel para ~1MB e o tamanho da instalação para ~5MB.
Removida uma dependência rígida de uma versão específica do pyarrow.
O seguinte foi descontinuado em suporte ao conversor nanoarrow:
Classe
snowflake.connector.cursor.NanoarrowUsage.Variável de ambiente
NANOARROW_USAGE.Varável do módulo
snowflake.connector.cursor.NANOARROW_USAGE.
Correções de bugs¶
Nenhum.
Versão 3.4.1 (09 de novembro de 2023)¶
Novos recursos e atualizações¶
Atualizadas as seguintes bibliotecas:
Atualizado a
urlib3própria de terceiros para a versão 1.26.18.Atualizado a
requestsprópria de terceiros para a versão 2.31.0.
Correções de bugs¶
Nenhum.
Versão 3.4.0 (03 de novembro de 2023)¶
Novos recursos e atualizações¶
Adição de suporte para
use_logical_typeemwrite_pandas.Adicionado o argumento
backoff_policyasnowflake.connector.connect, permitindo uma política de espera configurável entre novas tentativas de solicitações com falha. Veja as implementações disponíveis no módulobackoff_policies.Adicionado o argumento
socket_timeoutasnowflake.connector.connectespecificando a leitura do soquete e o tempo limite de conexão.Dependências removidas de pycryptodomex e oscrypto. Todas as conexões agora passam por OpenSSL através da biblioteca de criptografia, que já era uma dependência.
Correções de bugs¶
Comportamento
login_timeoutenetwork_timeoutcorrigido. As novas tentativas de login e solicitações de rede agora são interrompidas corretamente depois que esses tempos limite expiram.Bug corrigido para o problema urllib3/urllib3#1878 no
urllibdo fornecedor.Corrigido o problema com a ingestão de arquivos de 80 GB para S3.
Versão 3.3.1 (18 de outubro de 2023)¶
Novos recursos e atualizações¶
Para plataformas não Windows, sugestões de comando adicionadas (
chownouchmod) para permissões de arquivo insuficientes de arquivos de configuração.
Correções de bugs¶
Corrigido um problema em que o diagnóstico de conexão falhava ao concluir as verificações de certificado.
Corrigido um problema em que o iterador de seta causava
ImportErrorquando as extensões C não eram compiladas.
Versão 3.3.0 (12 de outubro de 2023)¶
Novos recursos e atualizações¶
Atualizado para o projeto Apache arrow-nanoarrow para conversão de dados arrow de resultado.
Introduzida a variável de ambiente
NANOARROW_USAGEpara permitir alternar entre o conversor nanoarrow e o conversor arrow. Os valores válidos incluem:FOLLOW_SESSION_PARAMETER, que utiliza o conversor configurado no servidor.DISABLE_NANOARROW, que usa o conversor arrow, substituindo a configuração do servidor.ENABLE_NANOARROW, que usa o conversor nanoarrow, substituindo a configuração do servidor.
Introduzida a enumeração
snowflake.connector.cursor.NanoarrowUsage, cujos membros incluem:NanoarrowUsage.FOLLOW_SESSION_PARAMETER, que utiliza o conversor configurado no servidor.NanoarrowUsage.DISABLE_NANOARROW, que usa o conversor arrow, substituindo a configuração do servidor.NanoarrowUsage.ENABLE_NANOARROW, que usa o conversor nanoarrow, substituindo a configuração do servidor.
Introduzida a variável do módulo
snowflake.connector.cursor.NANOARROW_USAGEpara permitir a alternância entre o conversor nanoarrow e o conversor arrow. Funciona em conjunto com a enumeraçãosnowflake.connector.cursor.NanoarrowUsage.
Nota
A variável de ambiente, enumeração e variável de módulo recém-introduzidas são temporárias. Elas serão removidas em uma versão futura quando a mudança de arrow para nanoarrow para conversão de dados for concluída.
Correções de bugs¶
Nenhum.
Versão 3.2.1 (3 de outubro de 2023)¶
Novos recursos e atualizações¶
Adicionada segurança de thread em telemetria ao instanciar múltiplas conexões simultaneamente.
Robustez aprimorada no tratamento de alterações de autenticação.
Removido o aviso de suspensão de
urllib3.contrib.pyopensslda bibliotecaurllib3.Atualizada a dependência
platformdirspara as versões 2.6.0 a 4.0.0 das versões 2.6.0 a 3.9.0.
Correções de bugs¶
Corrigido um bug onde URL, porta e caminho eram ignorados em novas tentativas do AWS PrivateLink OCSP.
Versão 3.2.0 (7 de setembro de 2023)¶
Novos recursos e atualizações¶
Tornou a renomeação de
parser -> managermais consistente no módulosnowflake.connector.config_manager.Adicionado suporte para valores padrão para
ConfigOptions.Adicionado
default_connection_nameao arquivoconfig.toml.
Correções de bugs¶
Nenhum.
Versão 3.1.1 (28 de agosto de 2023)¶
Novos recursos e atualizações¶
Adicionado suporte para RSAPublicKey ao construir
AuthByKeyPairalém de bytes brutos.
Correções de bugs¶
Corrigido um bug na lógica de nova tentativa de autenticação OKTA para atualizar o token.
Corrigido um bug onde o atributo
proxy_headerestava faltando emSOCKSProxyManagerao conectar pelo proxy SOCKS5.
Versão 3.1.0 (31 de julho de 2023)¶
Novos recursos e atualizações¶
Adicionado um recurso que permite adicionar definições de conexão ao arquivo de configuração
connections.toml. Uma definição de conexão refere-se a uma coleção de parâmetros de conexão, por exemplo, se você quiser definir uma conexão chamada «prod»:[prod] account = "my_account" user = "my_user" password = "my_password"
Por padrão, procuramos o arquivo
connections.tomlno local especificado na variável de ambienteSNOWFLAKE_HOME(padrão:~/.snowflake). Se esta pasta não existir, o conector Python procurará o arquivo no localplatformdirs, da seguinte maneira:No Linux:
~/.config/snowflake/, mas segue as configurações de XDGNo Mac:
~/Library/Application Support/snowflake/No Windows:
%USERPROFILE%\AppData\Local\snowflake\
Você pode determinar qual arquivo será usado executando o seguinte comando:
python -c "from snowflake.connector.constants import CONNECTIONS_FILE; print(str(CONNECTIONS_FILE))"
Dependência de criptografia aumentada de <41.0.0,>=3.1.0 para >=3.1.0,<42.0.0.
Cache de resposta OCSP aprimorado para remover arquivos de cache tmp no Windows
Cache de resposta OCSP aprimorado para reduzir os tempos de gravação em disco.
Adicionado um parâmetro
server_session_keep_aliveemSnowflakeConnectionque ignora a exclusão da sessão quando a conexão do cliente é fechada.Melhoramos nossa fixação de
platformdirspara evitar que seus novos lançamentos quebrem novas versões do conector.Permitiu que você passasse
type_mapperparafetch_pandas_batches()efetch_pandas_all().Lógica de nova tentativa aprimorada para autenticação okta para atualizar o token se a autenticação for limitada.
Adicionados motivos de repetição para consultas repetidas pelo cliente.
Remoção do suporte para Python 3.7.
Tratamento de erros aprimorado de erro de redefinição de conexão.
Correções de bugs¶
Corrigido um bug em que
SFPlatformDirsacrescentava incorretamente nome_do_aplicativo/versão ao seu caminho.Corrigido um bug em que
write_pandasfalha quando o usuário não tem o privilégio para criar um estágio ou formato de arquivo no esquema de destino, mas tem o privilégio correto para o esquema atual.Resolvido um segfault que às vezes ocorria durante a serialização do cache em cenários multithread.
Corrigido um bug sobre a exclusão de arquivos temporários ao executar o comando PUT.
Corrigido um bug em que
pickle.dumpfalhava durante a serialização do cache em cenários multithread.
Versão 3.0.4 (25 de maio de 2023)¶
Novos recursos e atualizações¶
Adicionado o parâmetro de conexão
json_result_force_utf8_decodingpara forçar a decodificação do conteúdo JSON em utf-8 quando o formato do resultado for JSON.Biblioteca própria de terceiros atualizada de urllib3 para 1.26.15
Solicitações de biblioteca própria de terceiros atualizadas para 2.29.0
Dependência de pandas atualizada de <1.6.0,>=1.0.0 para >=1.0.0,<2.1.0
Adição de suporte para tipos de geometria.
Correções de bugs¶
Corrigido um bug no qual
cursor.execute()poderia modificar o objeto de dicionário do argumentostatement_paramsao executar uma consulta com múltiplas instruções.Corrigido um bug que impedia a chamada de
SnowflakeCursor.nextsetantes de buscar o resultado da primeira consulta se o cursor executasse uma consulta assíncrona com múltiplas instruções.Corrigido um bug quando
_prefetch_hook()não era chamado antes de produzir resultados deexecute_async().Corrigido um bug onde alguns campos
ResultMetadataeram marcados como obrigatórios quando eram opcionais.Corrigido um bug onde a inserção em massa converte a data incorretamente.
Versão 3.0.3 (20 de abril de 2023)¶
Novos recursos e atualizações¶
Adicionado um parâmetro que permite aos usuários ignorar o carregamento de arquivos para o estágio se o arquivo existir no estágio e o conteúdo do arquivo for correspondente.
Dica de tipo aprimorada do método
SnowflakeCursor.execute.Registro GET aprimorado para avisar ao baixar vários arquivos com o mesmo nome.
Correções de bugs¶
Corrigido um bug que imprime erro nos logs do comando GET em GCS.
Adicionado um parâmetro que permite aos usuários ignorar o carregamento de arquivos para o estágio se o arquivo existir no estágio e o conteúdo do arquivo for correspondente.
Corrigido um bug que ocorria ao escrever um Pandas DataFrame com nomes de colunas contendo aspas duplas em
snowflake.connector.pandas_tool.write_pandas.Corrigido um bug que ocorria ao escrever um Pandas DataFrame com dados binários em
snowflake.connector.pandas_tool.write_pandas.
Versão 3.0.2 (23 de março de 2023)¶
Novos recursos e atualizações¶
Nenhum.
Correções de bugs¶
Corrigido um bug de dicas de tipo incorretas de
SnowflakeCursor.fetch_arrow_alleSnowflakeCursor.fetchall.Registro em log aprimorado para mascarar tokens em caso de erros.
Corrigido um bug onde
snowflake.connector.util_text.split_statementsengolia a quebra de linha final no caso quando não havia espaço entre as linhas.Corrigido um vazamento de memória no módulo de registro da extensão Cython.
Corrigido um bug onde o comando
putem AWS gerava umAttributeErrorao carregar um arquivo composto de múltiplas partes.Corrigido um bug onde o comando
putem AWS gerava umAttributeErrorpara tamanhos de arquivo maiores que 200MB.
Versão 3.0.1 (01 de março de 2023)¶
Novos recursos e atualizações¶
Robustez aprimorada do cache de resposta OCSP para lidar com erros em casos de serialização e desserialização.
Substituída a dependência de
setuptoolsem favor do empacotamento.Cadeia de documentos do método
async_executesatualizada.Os erros gerados agora possuem um campo de consulta que contém a consulta SQL que os causou, quando disponível.
Correções de bugs¶
Corrigido um bug onde
AuthByKeyPair.handle_timeoutdeveria passar argumentos de palavras-chave em vez de argumentos posicionais ao chamarAuthByKeyPair.prepare.Corrigido um bug em que o cache de token MFA se recusava a funcionar até ser reiniciado em vez de autenticar novamente.
Versão 3.0.0 (27 de janeiro de 2023)¶
Mudança do BCR (versão da mudança de comportamento)¶
Corrigido um bug onde write_pandas não usava esquemas e bancos de dados especificados pelo usuário para criar objetos intermediários.
Anteriormente, a função write_pandas criava objetos temporários no banco de dados e esquema usados atualmente e colocava apenas a tabela final (que foi criada ou anexada) no banco de dados e esquema especificados pelo usuário. Com esta versão, se os parâmetros do banco de dados ou do esquema para
write_pandasforem diferentes do selecionado atualmente, você precisará garantir que o usuário que está executandowrite_pandastenha acesso para criar/descartar estágios temporários, formatos de arquivo e tabelas com o esquema referenciado pela funçãowrite_pandas.Snowflake recomenda que você teste qualquer nova versão de driver em ambientes de pré-produção antes de implantar em ambientes de produção. Com esta mudança de comportamento, você deve dar atenção especial ao(s) cenário(s) listado(s) acima (ou seja,
write_pandascom parâmetros de banco de dados ou esquemas diferentes do contexto atual).
Novos recursos e atualizações¶
Dependência de pyarrow aumentada de >=8.0.0,<8.1.0 para >=10.0.1,<10.1.0
Dependência pyOpenSSL aumentada de <23.0.0 para <24.0.0
Durante a autenticação baseada no navegador, o URL SSO agora é impresso antes de abri-lo no navegador
Aumentou o nível de um registro de log para quando ArrowResult não puder ser importado
Adicionada uma verificação de versão mínima de MacOS ao compilar extensões C
Correções de bugs¶
Corrigido um bug onde
write_pandasnão usava esquema e banco de dados especificados pelo usuário para criar objetos intermediáriosCorrigido um bug onde o código de resposta HTTP de 429 não era repetido
Corrigido um bug onde o cache de token MFA não funcionava