Notas de versão da computação sem servidor
Este artigo explica os recursos e comportamentos que estão atualmente disponíveis e futuros na computação sem servidor para blocos de anotações 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 tempo de execução 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, implementadas em um curto período de tempo.
Imagens de cliente sem servidor
A computação sem servidor 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 versionada, conhecida como imagem do cliente ou cliente, que permanece compatível com versões mais recentes do servidor.
A imagem mais recente do cliente 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 de versão para computação sem servidor. As notas de lançamento 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
Outubro 28, 2024
Esta versão de computação sem servidor corresponde aproximadamente ao Databricks Runtime 15.4
Novas funcionalidades
- Funções de validação UTF-8: Esta versão apresenta as seguintes funções para validar cadeias de caracteres UTF-8:
- is_valid_utf8 verificado se uma cadeia de caracteres é uma cadeia de caracteres 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 gera um erro se a entrada não for uma cadeia de caracteres UTF-8 válida.
- try_validate_utf8 retorna
NULL
se a entrada não for uma cadeia de caracteres 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 Ativar alterando uma tabela existente.
- Função try_url_decode: Esta versão introduz a função try_url_decode , que decodifica uma cadeia de caracteres 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 dependa de restrições de chave estrangeira não impostas: para melhorar o desempenho da consulta, agora você pode especificar a
RELY
palavra-chave emFOREIGN KEY
restrições ao CRIAR ou ALTER uma tabela. - Execuções de tarefas paralelas para substituições seletivas: substituições seletivas usando
replaceWhere
trabalhos agora executados 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: as substituições seletivas usando
replaceWhere
em 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 subjacentes do Parquet para registrar alterações sem amplificação de gravação. - Latência de consulta melhorada para o
COPY INTO
comando: esta versão inclui uma alteração que melhora a latência de consulta para oCOPY INTO
comando. Essa melhoria é implementada tornando o carregamento do estado pelo armazenamento de estado RocksDB assíncrono. Com essa alteração, você verá 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 soltar o
checkConstraints
recurso de tabela de uma tabela Delta usandoALTER TABLE table_name DROP FEATURE checkConstraints
o . Consulte Desativar restrições de verificação.
Alterações de comportamento
Alteração de associação de esquema para modos de exibição: quando os tipos de dados na consulta subjacente de um modo de exibição mudam daqueles usados quando o modo de exibição foi criado pela primeira vez, o Databricks não gera mais erros para referências ao modo de exibição quando nenhuma conversão segura pode ser executada.
Em vez disso, a exibição compensa usando regras de transmissão regulares sempre que possível. Essa alteração permite que o Databricks tolere alterações de esquema de tabela mais prontamente.
Não permitir tolerância de sintaxe não documentada
!
paraNOT
lógica booleana externa: Databricks não tolerará mais o uso de!
como sinônimo paraNOT
fora da lógica booleana. 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
, É! NULL,! NULL
propriedade! IN
de coluna ou campo e ! BETWEEN deve ser substituído por:CREATE ... IF NOT EXISTS
,IS NOT NULL
,NOT NULL
propriedadeNOT IN
de coluna ou campo eNOT BETWEEN
.O operador
!
do prefixo booleano (por exemplo,!is_mgr
ou!(true AND false)
) não é afetado por esta alteração.Não permitir partes não documentadas e não processadas da sintaxe de definição de coluna em modos de exibição: o Databricks suporta CREATE VIEW com colunas nomeadas e comentários de coluna.
A especificação de tipos de coluna,
NOT NULL
restrições ouDEFAULT
foi tolerada na sintaxe sem ter qualquer efeito. O Databricks removerá essa tolerância de 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 Photon: Esta versão altera como o Photon lida com erros de decodificação Base64 para corresponder ao tratamento Spark desses erros. Antes dessas alterações, o caminho de geração de código do Photon e do Spark às vezes falhava em gerar exceções de análise, enquanto o Spark interpretava a execução corretamente gerada
IllegalArgumentException
ouConversionInvalidInputError
. Esta atualização garante que o Photon gere consistentemente as mesmas exceções que o Spark durante erros de decodificação Base64, fornecendo 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, umaALTER TABLE ADD CONSTRAINT
instrução que inclui umaCHECK
restrição fazendo referência a um nome de coluna inválido retorna o UNRESOLVED_COLUMN. WITH_SUGGESTION classe de erro. Anteriormente, umINTERNAL_ERROR
foi devolvido.
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. Esta atualização inclui as seguintes alterações comportamentais:
Correções de erros
Análise correta de padrões regex com negação no agrupamento de caracteres aninhados: 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 personagem que NÃO seja um de 'abc'".
Além disso, o comportamento do Fóton foi inconsistente com o Spark para classes de caracteres aninhados. Os padrões Regex contendo classes de caracteres aninhadas não usarão mais o Photon e, em vez disso, usarão o Spark. Uma classe de caractere aninhada é qualquer padrão que contenha colchetes entre colchetes, como [[a-c][1-3]]
.
Versão 15.1
Julho 23, 2024
Esta versão de computação sem servidor corresponde aproximadamente ao Databricks Runtime 15.1
Novas funcionalidades
Suporte para sintaxe de estrela (*
) na WHERE
cláusula: Agora você pode usar a sintaxe de estrela (*
) na WHERE
cláusula para fazer referência a todas as colunas da SELECT
lista.
Por exemplo, SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*)
.
Alterações
Recuperação de erros aprimorada para análise JSON: o analisador JSON usado para from_json()
expressões de caminho JSON agora se recupera mais rapidamente da sintaxe malformada, resultando em menos perda de dados.
Ao encontrar sintaxe JSON malformada em um campo struct, um valor de matriz, uma chave de mapa ou um valor de mapa, o analisador JSON retornará NULL
apenas 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, struct ou mapa e retornou NULL
para o conteúdo restante.
Versão 14.3
15 de abril de 2024
Esta é a versão inicial de computação sem servidor. Esta versão corresponde aproximadamente ao Databricks Runtime 14.3 com algumas modificações que removem o suporte para alguns recursos não sem servidor e herdados.
Parâmetros de configuração do Spark suportados
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 predefinido éCORRECTED
)spark.sql.session.timeZone
(o valor predefinido éEtc/UTC
)spark.sql.shuffle.partitions
(o valor predefinido éauto
)spark.sql.ansi.enabled
(o valor predefinido étrue
)
O trabalho executado na computação sem servidor falhará se você definir uma configuração do Spark que não esteja nesta lista.
Para obter mais informações sobre como configurar as propriedades do Spark, consulte Definir propriedades de configuração do Spark no Azure Databricks.
input_file funções 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 de arquivo para recuperar informações de metadados de arquivo.
Mudanças comportamentais
A versão de computação sem servidor 2024.15 inclui as seguintes alterações comportamentais:
- unhex(hexStr) bug fix: Ao usar a função, hexStr é sempre acolchoado
unhex(hexStr)
à esquerda para um byte inteiro. Anteriormente, a função unhex ignorava o primeiro meio byte. Por exemplo:unhex('ABC')
agora produzx'0ABC'
em vez dex'BC'
. - Os aliases de coluna gerados automaticamente agora sã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 mudança nos nomes gerados automaticamente anteriormente usados em recursos como visualizações materializadas.
- As varreduras de tabela com
CHAR
campos de tipo agora são sempre acolchoadas: tabelas delta, determinadas tabelas JDBC e fontes de dados externas armazenam dados CHAR em formato não acolchoado. Durante a leitura, o Azure Databricks agora preencherá os dados com espaços para o comprimento declarado para garantir a semântica correta. - Transmissões de BIGINT/DECIMAL para TIMESTAMP lançam 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 Unix. Anteriormente, o Azure Databricks retornava valores estourados, mas agora lança uma exceção em casos de estouro. Use
try_cast
para retornar NULL em vez de uma exceção. - A execução UDF do PySpark foi melhorada para corresponder ao comportamento exato da execução UDF na computação de um único usuário: Foram introduzidas as seguintes alterações:
- UDFs com um tipo de retorno de cadeia de caracteres não convertem mais implicitamente valores que não sejam de cadeia de caracteres em cadeias de caracteres. Anteriormente, UDFs com um tipo de retorno de aplicavam um
str(..)
wrapper ao resultado, independentemente do tipo de dados real do valor retornadostr
. - UDFs com
timestamp
tipos de retorno não aplicam mais implicitamente uma conversão de fuso horário a carimbos de data/hora.
- UDFs com um tipo de retorno de cadeia de caracteres não convertem mais implicitamente valores que não sejam de cadeia de caracteres em cadeias de caracteres. Anteriormente, UDFs com um tipo de retorno de aplicavam um