Compartilhar via


Notas sobre a versão da computação sem servidor

Este artigo explica as características e comportamentos atualmente disponíveis e futuros na computação sem servidor para notebooks e trabalhos.

Para obter mais informações sobre computação sem servidor, consulte Conectar-se à computação sem servidor.

O Azure Databricks lança periodicamente atualizações para computação sem servidor, atualizando automaticamente o runtime de computação sem servidor para dar suporte a aprimoramentos e atualizações para a plataforma. Todos os usuários recebem as mesmas atualizações, distribuídas por um curto período de tempo.

Imagens de cliente sem servidor

A computação sem servidor do Databricks para notebooks e trabalhos apresenta uma arquitetura baseada no Spark Connect, permitindo atualizações independentes do mecanismo sem afetar o aplicativo. Para garantir a compatibilidade do aplicativo, as cargas de trabalho sem servidor usam uma API com versão, conhecida como imagem do cliente ou cliente, que permanece compatível com as versões mais recentes do servidor.

A imagem do cliente mais recente continua a receber atualizações até que uma nova imagem do cliente seja lançada. Os usuários podem selecionar qualquer uma das seguintes imagens de cliente suportadas:

Notas de versão

Esta seção inclui notas sobre a versão da computação sem servidor. As notas sobre a versão são organizadas por ano e semana do ano. A computação sem servidor sempre é executada usando a versão lançada mais recentemente listada aqui.

Versão 2024.43

28 de outubro de 2024

Essa versão de computação sem servidor corresponde aproximadamente ao Databricks Runtime 15.4

Novos recursos

  • Funções de validação UTF-8: esta versão apresenta as seguintes funções para validar strings UTF-8:
    • is_valid_utf8 verificou se uma cadeia de caracteres é uma UTF-8 válida.
    • make_valid_utf8 converte uma cadeia de caracteres UTF-8 potencialmente inválida em uma cadeia de caracteres UTF-8 válida usando caracteres de substituição.
    • validate_utf8 gerará um erro se a entrada não for uma string UTF-8 válida.
    • try_validate_utf8 retornará NULL se a entrada não for uma string UTF-8 válida.
  • Habilitar o UniForm Iceberg usando ALTER TABLE: Agora você pode habilitar o UniForm Iceberg em tabelas existentes sem reescrever arquivos de dados. Consulte Habilitar alterando uma tabela existente.
  • try_url_decode função: esta versão apresenta a função try_url_decode , que decodifica uma string codificada por URL. Se a cadeia de caracteres não estiver no formato correto, a função retornará NULL em vez de gerar um erro.
  • Opcionalmente, permita que o otimizador conte com restrições de chave estrangeira não impostas: para melhorar o desempenho da consulta, agora você pode especificar a RELY palavra-chave em FOREIGN KEY restrições ao CREATE ou ALTER uma tabela.
  • Execuções de trabalho paralelizadas para substituições seletivas: substituições seletivas usando replaceWhere agora executam trabalhos que excluem dados e inserem novos dados em paralelo, melhorando o desempenho da consulta e a utilização do cluster.
  • Desempenho aprimorado para feed de dados de alteração com substituições seletivas: substituições seletivas usando replaceWhere tabelas com feed de dados de alteração não gravam mais arquivos de dados de alteração separados para dados inseridos. Essas operações usam uma coluna oculta _change_type presente nos arquivos de dados Parquet subjacentes para registrar alterações sem amplificação de gravação.
  • Latência de consulta aprimorada para o COPY INTO comando: esta versão inclui uma alteração que melhora a latência de consulta para o COPY INTO comando. Essa melhoria é implementada ao tornarmos o carregamento de estado pelo repositório de estado do RocksDB assíncrono. Com essa alteração, você deverá visualizar uma melhoria nos tempos de início para consultas com estados grandes, como consultas com um grande número de arquivos já ingeridos.
  • Suporte para descartar o recurso de tabela de restrições de verificação: agora você pode descartar o checkConstraints recurso de tabela de uma tabela Delta usando ALTER TABLE table_name DROP FEATURE checkConstraints. Consulte Desabilitar restrições de verificação.

Alterações de comportamento

  • Alteração de associação de esquema para exibições: quando os tipos de dados na consulta subjacente de uma exibição são alterados daqueles usados quando a exibição foi criada pela primeira vez, o Databricks não gera mais erros para referências à exibição quando nenhuma conversão segura pode ser executada.

    Em vez disso, a exibição compensa usando regras de conversão regulares sempre que possível. Essa alteração permite que o Databricks tolere as alterações de esquema de tabela mais facilmente.

  • Não permitir tolerância de sintaxe não documentada ! para NOT lógica booliana externa: o Databricks não tolerará mais o uso de ! como sinônimo de NOT lógica booliana externa. Essa alteração reduz a confusão, alinha-se com o padrão SQL e torna o SQL mais portátil. Por exemplo:

    CREATE ... IF ! EXISTS, IS ! NULL, propriedade de campo ou coluna ! NULL, ! IN e ! BETWEEN precisam ser substituídos por:

    CREATE ... IF NOT EXISTS, IS NOT NULL, propriedade de campo ou coluna NOT NULL, NOT IN e NOT BETWEEN.

    O operador de prefixo booliano ! (por exemplo, !is_mgr ou !(true AND false)) não é afetado por essa alteração.

  • Não permitir partes não documentadas e não processadas da sintaxe de definição de coluna em exibições: o Databricks dá suporte a CREATE VIEW com colunas nomeadas e comentários de coluna.

    A especificação de tipos de coluna, restrições NOT NULL ou DEFAULT foi tolerada na sintaxe sem ter nenhum efeito. O Databricks removerá essa tolerância à sintaxe. Isso reduz a confusão, alinha-se com o padrão SQL e permite aprimoramentos futuros.

  • Tratamento consistente de erros para decodificação Base64 no Spark e no Photon: esta versão altera a forma como o Photon lida com erros de decodificação Base64 para corresponder ao tratamento desses erros do Spark. Antes dessas alterações, o caminho de geração de código do Photon e do Spark às vezes não gerava exceções de análise, enquanto a execução interpretada do Spark gerava corretamente IllegalArgumentException ou ConversionInvalidInputError. Essa atualização garante que o Photon gere consistentemente as mesmas exceções que o Spark durante erros de decodificação Base64, fornecendo um tratamento de erros mais previsível e confiável.

  • Adicionar uma CHECK restrição em uma coluna inválida agora retorna o UNRESOLVED_COLUMN. WITH_SUGGESTION classe de erro: para fornecer mensagens de erro mais úteis, no Databricks Runtime 15.3 e superior, uma ALTER TABLE ADD CONSTRAINT instrução que inclui uma CHECK restrição que faz referência a um nome de coluna inválido retorna o UNRESOLVED_COLUMN. WITH_SUGGESTION classe de erro. Anteriormente, era retornado um INTERNAL_ERROR.

O JDK é atualizado do JDK 8 para o JDK 17

15 de agosto de 2024

A computação sem servidor para notebooks e fluxos de trabalho migrou do Java Development Kit (JDK) 8 para o JDK 17 no lado do servidor. Essa atualização inclui as seguintes alterações de comportamento:

Correções de bug

Análise correta de padrões regex com negação no agrupamento de caracteres aninhado: com essa atualização, o Azure Databricks agora dá suporte à análise correta de padrões regex com negação no agrupamento de caracteres aninhados. Por exemplo, [^[abc]] será analisado como "qualquer caractere que NÃO seja um de 'abc'".

Além disso, o comportamento do Photon era inconsistente com o Spark para classes de caracteres aninhados. Os padrões Regex contendo classes de caracteres aninhados não usarão mais o Photon e, em vez disso, usarão o Spark. Uma classe de caracteres aninhada é qualquer padrão que contenha colchetes entre colchetes, como [[a-c][1-3]].

Versão 15.1

23 de julho de 2024

Essa versão de computação sem servidor corresponde aproximadamente ao Databricks Runtime 15.1

Novos recursos

Suporte para a sintaxe de asterisco (*) na cláusula WHERE: agora você pode usar a sintaxe de asterisco (*) na cláusula WHERE para referenciar todas as colunas da lista SELECT.

Por exemplo, SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*).

Alterações

Recuperação de erro aprimorada para análise JSON: o analisador JSON usado para from_json() e expressões de caminho JSON agora se recupera mais rapidamente da sintaxe malformada, resultando em menos perda de dados.

Ao encontrar uma sintaxe JSON malformada em um campo de struct, um valor de matriz, uma chave de mapa ou um valor de mapa, o analisador JSON retornará NULL somente para o campo, chave ou elemento ilegível. Os campos, chaves ou elementos subsequentes serão analisados corretamente. Antes dessa alteração, o analisador JSON abandonou a análise da matriz, do struct ou do mapa e retornou NULL para o conteúdo restante.

Versão 14.3

15 de abril de 2024

Essa é a versão inicial da computação sem servidor. Essa versão corresponde aproximadamente ao Databricks Runtime 14.3 com algumas modificações que removem o suporte para alguns recursos herdados e não sem servidor.

Parâmetros de configuração do Spark com suporte

Para automatizar a configuração do Spark na computação sem servidor, o Azure Databricks removeu o suporte para definir manualmente a maioria das configurações do Spark. Você pode definir manualmente apenas os seguintes parâmetros de configuração do Spark:

  • spark.sql.legacy.timeParserPolicy (O valor padrão é CORRECTED)
  • spark.sql.session.timeZone (O valor padrão é Etc/UTC)
  • spark.sql.shuffle.partitions (O valor padrão é auto)
  • spark.sql.ansi.enabled (O valor padrão é true)

A execução de trabalhos em computação sem servidor falhará se você definir uma configuração do Spark que não esteja nessa lista.

Para obter mais informações sobre como configurar propriedades do Spark, consulte Definir propriedades de configuração do Spark no Azure Databricks.

As funções input_file foram preteridas

As funções input_file_name(), input_file_block_length() e input_file_block_start() foram preteridas. O uso dessas funções é altamente desencorajado.

Em vez disso, use a coluna de metadados do arquivo para recuperar informações de metadados do arquivo.

Mudanças comportamentais

A versão da computação sem servidor 2024.15 inclui as seguintes alterações de comportamento:

  • Correção de bug unhex(hexStr): ao usar a função unhex(hexStr), hexStr sempre é preenchido à esquerda até um byte inteiro. Anteriormente, a função unhex ignorava o primeiro meio byte. Por exemplo: unhex('ABC') agora produz x'0ABC' em vez de x'BC'.
  • Os aliases de coluna gerados automaticamente agora estão estáveis: quando o resultado de uma expressão é referenciado sem um alias de coluna especificado pelo usuário, esse alias gerado automaticamente agora será estável. O novo algoritmo pode resultar em uma alteração nos nomes gerados automaticamente anteriormente usados em recursos como exibições materializadas.
  • As verificações de tabela com campos de tipo CHAR agora são sempre preenchidas: tabelas Delta, determinadas tabelas JDBC e fontes de dados externas armazenam dados CHAR em forma não preenchida. Ao ler, o Azure Databricks agora preencherá os dados com espaços até o comprimento declarado para garantir a semântica correta.
  • As conversões de BIGINT/DECIMAL para TIMESTAMP geram uma exceção para valores estourados: o Azure Databricks permite a conversão de BIGINT e DECIMAL para TIMESTAMP tratando o valor como o número de segundos da época do Unix. Anteriormente, o Azure Databricks retornava valores estourados, mas agora gera uma exceção em casos de estouro. Use try_cast para retornar NULL em vez de uma exceção.
  • A execução da UDF do PySpark foi aprimorada para corresponder ao comportamento exato da execução da UDF na computação de usuário único: As seguintes alterações foram feitas:
    • As UDFs com um tipo de retorno de cadeia de caracteres não convertem mais implicitamente valores que não são cadeias de caracteres em cadeias de caracteres. Anteriormente, as UDFs com um tipo de retorno str aplicariam um wrapper str(..) ao resultado, independentemente do tipo de dados real do valor retornado.
    • As UDFs com tipos de retorno timestamp não aplicam mais implicitamente uma conversão de fuso horário a carimbos de data/hora.