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.
versões de ambiente 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 versão do ambiente ou cliente, que permanece compatível com as versões mais recentes do servidor.
A versão mais recente do ambiente continua a receber atualizações até que uma nova versão seja lançada. Os usuários podem selecionar qualquer uma das seguintes versões de ambiente 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.
- Configuração de alta memória disponível em notebooks sem servidor (visualização pública)
- Versão 16.1
- Versão 15.4
- O JDK é atualizado do JDK 8 para o JDK 17
- Versão 15.1
- Versão 14.3
Configuração de alta memória disponível em notebooks sem servidor (Visualização pública)
7 de fevereiro de 2025
Agora você pode configurar um tamanho de memória maior para suas tarefas de notebooks serverless. Esta configuração pode ser aplicada a cargas de trabalho de notebooks interativos e agendados.
O uso sem servidor com alta memória tem uma taxa de emissão de DBU mais alta do que a memória padrão.
Para obter mais informações, consulte Configurar alta memória para suas cargas de trabalho sem servidor.
Versão 16.1
5 de fevereiro de 2025
Esta versão de computação sem servidor corresponde aproximadamente ao Databricks Runtime 16.0 e Databricks Runtime 16.1.
Novas funcionalidades
Suporte Avro para esquema recursivo: Agora você pode usar a opção
recursiveFieldMaxDepth
com a funçãofrom_avro
e a fonte de dadosavro
. Esta opção define a profundidade máxima para recursão de esquema na fonte de dados Avro. Consulte Ler e gravar dados Avro de streaming.Suporte expandido para o Confluent Schema Registry para Avro: Serverless agora oferece suporte à referência de esquema Avro com o Confluent Schema Registry. Consulte Autenticar em um registro de esquema confluente externo.
Força o reagrupamento em tabelas com agrupamento líquido: Agora é possível usar a sintaxe
OPTIMIZE FULL
para forçar o reagrupamento de todos os registos numa tabela com agrupamento líquido ativado. Consulte Força reagrupamento para todos os registros.As APIs Delta para Python agora suportam colunas de identidade: Agora você pode usar as APIs Delta para Python para criar tabelas com colunas de identidade. Consulte Usar colunas de identidade no Delta Lake.
Criar tabelas clusterizadas líquidas durante gravações de streaming: Agora você pode usar
clusterBy
para habilitar o clustering líquido ao criar novas tabelas com gravações de streaming estruturado. Consulte Ativar agrupamento de líquidos.Suporte para a cláusula OPTIMIZE FULL: computação sem servidor agora suporta a cláusula OPTIMIZE FULL. Esta cláusula otimiza todos os registros em uma tabela que usa clustering líquido, incluindo dados que podem ter sido agrupados anteriormente.
Suporte para especificação de opções WITH em INSERT e referência de tabela: computação sem servidor agora suporta um de especificação de opções de para referências de tabela e nomes de tabela de uma instrução
INSERT
que pode ser usada para controlar o comportamento de fontes de dados.Novas funções SQL: As seguintes funções SQL agora estão disponíveis na computação sem servidor:
- try_url_decode é uma versão tolerante a erros do url_decode.
-
zeroifnull retornará 0 se a expressão de entrada para a função
zeroifnull()
forNULL
. -
nullifzero retorna
NULL
se a entrada for 0 ou retorna a própria entrada se esta não for 0. - dayname(expr) retorna o acrônimo inglês de três letras para o dia da semana para a data determinada.
- uniforme(expr1, expr2 [,semente]) retorna um valor aleatório com valores independentes e distribuídos de forma idêntica dentro do intervalo especificado de números.
-
randstr(length) retorna uma sequência aleatória de caracteres alfanuméricos
length
.
Habilite a evolução automática do esquema ao mesclar dados em uma tabela Delta: Suporte foi adicionado para o membro
withSchemaEvolution()
da classeDeltaMergeBuilder
. UsewithSchemaEvolution()
para habilitar a evolução automática do esquema duranteMERGE
as operações. Por exemplo,mergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}
.Suporte para agrupamentos no Apache Spark está em Visualização pública: Agora você pode atribuir agrupamentos com reconhecimento de idioma, sem diferenciação de maiúsculas e minúsculas e sem acesso a
STRING
colunas e expressões. Esses agrupamentos são usados em comparações de cadeia de caracteres, classificação, operações de agrupamento e muitas funções de cadeia de caracteres. Consulte Classificação.O suporte para agrupamentos no Delta Lake está em Visualização pública: Agora você pode definir agrupamentos para colunas ao criar ou alterar uma tabela Delta. Consulte Suporte de agrupamento para Delta Lake.
LITE
modo para vácuo está em Visualização pública: Agora você pode usarVACUUM table_name LITE
para executar uma operação de vácuo mais leve que aproveita metadados no log de transações Delta. Consulte modo completo vs. modo ligeiro e VACUUM.Suporte para parametrizar a cláusula
USE CATALOG with IDENTIFIER
: A cláusula IDENTIFIER agora é suportada para a instrução USE CATALOG. Com esse suporte, você pode parametrizar o catálogo atual com base em uma variável de cadeia de caracteres ou marcador de parâmetro.COMMENT ON COLUMN suporte para tabelas e exibições: A instrução COMMENT ON agora suporta a alteração de comentários para colunas de exibição e tabela.
Invocação de parâmetro nomeado para mais funções: As seguintes funções suportam invocação de parâmetro nomeado:
O parâmetro
SYNC METADATA
para o comando REPAIR TABLE é suportado com o metastore do Hive: Agora você pode usar o parâmetroSYNC METADATA
com o comandoREPAIR TABLE
para atualizar os metadados de uma tabela gerenciada do metastore do Hive. Consulte REPAIR TABLE.Integridade de dados aprimorada para lotes de seta Apache compactados: Para proteger ainda mais contra corrupção de dados, cada lote de seta compactado
LZ4
agora inclui o conteúdoLZ4
e as somas de verificação de bloco. Consulte LZ4 Frame Format Description.Driver Oracle JDBC integrado: A computação serverless agora tem o Driver Oracle JDBC embutido. Se usares um JAR de driver JDBC carregado pelo cliente via
DriverManager
, deves reescrever os scripts para usar explicitamente o JAR personalizado. Caso contrário, o driver interno é usado. Este driver suporta apenas Lakehouse Federation. Para outros casos de uso, você deve fornecer seu próprio driver.Erros mais detalhados para tabelas Delta acessadas com caminhos: Uma nova experiência de mensagem de erro para tabelas Delta acessadas usando caminhos já está disponível. Todas as exceções agora são encaminhadas para o usuário. A exceção
DELTA_MISSING_DELTA_TABLE
agora está reservada para quando os arquivos subjacentes não podem ser lidos como uma tabela Delta.
Alterações de comportamento
Alteração crítica: o RStudio hospedado atingiu o fim do seu ciclo de vida.: Com esta versão, o RStudio Server hospedado no Databricks atingiu o fim do seu ciclo de vida e está indisponível em qualquer espaço de trabalho do Azure Databricks que utilize computação sem servidor. Para saber mais e ver uma lista de alternativas ao RStudio, consulte Hosted RStudio Server deprecation.
Alteração de rutura: Remoção do suporte para alterar os tipos
byte
,short
,int
elong
para tipos mais abrangentes: Para garantir um comportamento consistente nas tabelas Delta e Iceberg, as seguintes alterações de tipo de dados não podem mais ser aplicadas a tabelas com o recurso de ampliação de tipos de habilitada:-
byte
,short
,int
elong
adecimal
. -
byte
,short
, eint
adouble
.
-
Análise correta de padrões regex com negação no agrupamento de caracteres aninhados: Esta versão inclui uma alteração para suportar a 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]]
.Melhorar a deteção de correspondências duplicadas no Delta Lake
MERGE
:MERGE
agora leva em consideração as condições especificadas na cláusulaWHEN MATCHED
. Veja Upsert em uma tabela Delta Lake usando mesclagem.A funcionalidade
addArtifact()
agora é consistente entre os tipos de computação: Quando você usaaddArtifact(archive = True)
para adicionar uma dependência à computação sem servidor, o arquivo é automaticamente descompactado. Essa alteração torna o comportamentoaddArtifact(archive = True)
consistente com a computação de usuário único, que já suporta descompactar arquivos automaticamente.O tipo de dados
VARIANT
não pode mais ser usado com operações que exigem comparações: Não é possível usar as seguintes cláusulas ou operadores em consultas que incluam um tipo de dadosVARIANT
:DISTINCT
INTERSECT
EXCEPT
UNION
DISTRIBUTE BY
Além disso, você não pode usar essas funções de DataFrame:
df.dropDuplicates()
df.repartition()
Essas operações executam comparações e as comparações que usam o tipo de dados
VARIANT
produzem resultados indefinidos e não são suportadas no Databricks. Se você usar o tipoVARIANT
em suas cargas de trabalho ou tabelas do Azure Databricks, o Databricks recomenda as seguintes alterações:- Atualize consultas ou expressões para converter explicitamente valores de
VARIANT
para tipos de dados diferentes deVARIANT
. - Se você tiver campos que devem ser usados com qualquer uma das operações acima, extraia esses campos do tipo de dados
VARIANT
e armazene-os usando tipos de dados nãoVARIANT
.
Consulte Dados da variante de consulta.
Correções de erros
- Os deslocamentos de fuso horário agora incluem segundos quando serializados para CSV, JSON e XML: Os carimbos de data/hora com deslocamentos de fuso horário que incluem segundos (comuns para carimbos de data/hora anteriores a 1900) omitiam os segundos quando serializados para CSV, JSON e XML. O formatador de carimbo de data/hora padrão foi corrigido e agora retorna os valores de deslocamento corretos para esses carimbos de data/hora.
Outras alterações
-
Códigos de erro renomeados para a fonte
cloudFiles
Structured Streaming: Os seguintes códigos de erro foram renomeados:-
_LEGACY_ERROR_TEMP_DBR_0143
é renomeado paraCF_INCORRECT_STREAM_USAGE
. -
_LEGACY_ERROR_TEMP_DBR_0260
é renomeado paraCF_INCORRECT_BATCH_USAGE
.
-
Versão 15.4
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.
- Ativar UniForm Iceberg usando ALTER TABLE: Agora você pode habilitar o UniForm Iceberg em tabelas existentes sem reescrever arquivos de dados. Consulte Ativar leituras do Iceberg numa 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 aplicadas: Para melhorar o desempenho da consulta, agora pode especificar a palavra-chave
RELY
nas restrições deFOREIGN KEY
quando CRIAR ou ALTERAR uma tabela. -
Execução de trabalho paralelizado para substituições seletivas: As 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: 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 utilizam uma coluna_change_type
oculta nos ficheiros de dados Parquet subjacentes para registar alterações sem aumento no volume de escrita. -
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 remover o recurso de restrições de verificação da tabela: Agora é possível eliminar o recurso de tabela
checkConstraints
de uma tabela Delta usandoALTER TABLE table_name DROP FEATURE checkConstraints
. Consulte Desativar restrições de verificação.
Alterações de comportamento
Alteração de vinculação de esquema para vistas: Quando os tipos de dados na consulta subjacente de uma vista mudam dos usados quando a vista foi criada pela primeira vez, o Databricks deixou de lançar erros para referências à vista quando nenhuma conversão segura pode ser executada.
Em vez disso, o modo de exibição
compensa usando regras de de transmissão deregulares 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 de coluna ou campo,! IN
e ! BETWEEN deve ser substituído por:CREATE ... IF NOT EXISTS
,IS NOT NULL
, coluna ou campo de propriedadeNOT NULL
,NOT IN
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: Databricks oferece suporte a CREATE VIEW com colunas nomeadas e comentários de coluna.
A especificação de tipos de coluna, restrições de
NOT NULL
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 restrição de
CHECK
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 instruçãoALTER TABLE ADD CONSTRAINT
que inclui uma restrição deCHECK
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:
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 cláusula WHERE
: Agora você pode usar a sintaxe de estrela (*
) na cláusula WHERE
para fazer referência a 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 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 serverless 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 do arquivo para recuperar informações de metadados do 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.
-
Verificações de tabela com campos de tipo
CHAR
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. -
As conversões de BIGINT/DECIMAL para TIMESTAMP lançam uma exceção para valores em excesso: Azure Databricks permite a conversão de BIGINT e DECIMAL para TIMESTAMP, tratando o valor como o número de segundos desde a Unix epoch. Anteriormente, o Azure Databricks devolvia valores em overflow, mas agora gera uma exceção em casos de overflow. 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 do tipo cadeia de caracteres não convertem mais implicitamente valores que não sejam desse tipo 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 tipos de retorno
timestamp
já não aplicam implicitamente uma conversão de fuso horário a timestamps.
- UDFs com um tipo de retorno do tipo cadeia de caracteres não convertem mais implicitamente valores que não sejam desse tipo em cadeias de caracteres. Anteriormente, UDFs com um tipo de retorno de aplicavam um