Notas de lançamento de Snowflake Connector for Spark para 2022

Este artigo contém as notas de versão do Snowflake Connector for Spark, 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 Spark.

Versão 2.11.1 (13 de dezembro de 2022)

Novos recursos

  • Adicionado suporte para implantações AWS VPCE adicionando o parâmetro de configuração S3_STAGE_VPCE_DNS_NAME para especificar o nome VPCE DNS no nível da sessão.

  • Adicionada uma nova opção de configuração treat_decimal_as_long para permitir que o conector Spark retorne valores longos em vez de valores BigDecimal, se a consulta retornar Decimal(<any_precision>, 0). WARNING: se o valor for maior que o valor máximo de Long, um erro será gerado.

  • Adicionada uma nova opção protocolo_proxy para especificar o protocolo de proxy (http ou https) com implantações de AWS. (A opção não tem efeito nas implantações do Azure e GCP.).

  • Adicionado suporte para contagem de linhas em uma tabela onde a contagem de linhas é maior que o valor máximo de inteiro.

  • Atualizado o conector para usar o driver Snowflake JDBC 3.13.24.

Correções de bugs

  • Atualizado o conector para fechar conexões JDBC para evitar vazamento de conexão.

  • Corrigido um problema NullPointerException ao enviar mensagens de telemetria.

Versão 2.11.0 (2 de setembro de 2022)

Versão do driver JDBC compatível: 3.13.22

  • Adicionado suporte para Spark 3.3 e corrigidos alguns bugs:

    • Atualizada a versão do driver PostgreSQL JDBC do qual os testes dependem para evitar a vulnerabilidade de segurança CVE-2022-31197.

    • Atualizado o conector para usar o driver Snowflake JDBC 3.13.22 e o Snowflake Ingest SDK 0.10.8.

Nota

  • A partir da versão 2.11.0, o conector Snowflake para Spark oferece suporte ao Spark 3.1, 3.2 e 3.3. A versão 2.11.0 do conector Snowflake para Spark não oferece suporte para Spark 3.0. Observe que as versões anteriores do conector continuam oferecendo suporte para Spark 3.0.

  • Para contas Snowflake GCP, as versões do driver Snowflake JDBC 3.13.16 a 3.13.21 não funcionam com o conector Spark.

Versão 2.10.1 (15 de agosto de 2022)

Versão do driver JDBC compatível: 3.13.14

Correções de bugs

  • Foram removidas dependências desnecessárias de bibliotecas para evitar vulnerabilidades de segurança CVE-2020-8908 e CVE-2018-10237.

  • Adicionado suporte para usar o tipo de dados JDBC TIMESTAMP_WITH_TIMEZONE ao ler dados do Snowflake.

  • Alterada a lógica para verificar a existência de uma tabela antes de salvar um DataFrame no Snowflake:

    • O conector agora reutiliza a conexão existente (em vez de criar uma nova conexão) para evitar possíveis problemas com a expiração do token.

    • Se o nome da tabela não for totalmente qualificado (ou seja, não incluir o nome do esquema), o conector agora verificará a tabela no esquema especificado por sfSchema, em vez do esquema que está atualmente em uso na sessão.

      Nota

      Se você precisar salvar um DataFrame em uma tabela em um esquema diferente de sfSchema, especifique o esquema como parte do nome completo da tabela, em vez de executar USE SCHEMA para alterar o esquema atual.

  • Desempenho aprimorado, evitando chamadas de parse_json() desnecessárias no comando COPY INTO TABLE ao gravar um DataFrame com colunas ArrayType, MapType ou StructType no Snowflake.

  • Adicionados os métodos getLastSelectQueryId e getLastCopyLoadQueryId à classe Utils. Esses métodos retornam a ID de consulta da última consulta que leu dados do Snowflake e a última instrução COPY INTO TABLE que foi executada (respectivamente).

Versão 2.10.0 (17 de fevereiro de 2022)

Versão do driver JDBC compatível: 3.13.14

Mudança de comportamento

  • Adicionado suporte para Spark, versão 3.2. A partir desta versão, o conector Snowflake para Spark oferece suporte apenas para Spark 3.0, 3.1 e 3.2. A versão do Spark 2.4 não é mais suportada.

Correção de erros

  • Corrigido um problema em que a cadeia de caracteres “nulo” era considerada do tipo NULL.