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.
Versões de ambiente 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 a versão do ambiente ou cliente, que permanece compatível com versões de servidor mais recentes.
A versão mais recente do ambiente continua recebendo atualizações até que uma nova versão seja lançada. Os usuários podem selecionar entre qualquer uma das versões de ambiente com suporte a seguir:
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.
- Configuração de memória alta disponível em notebooks sem servidor (versão prévia 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 memória alta disponível em notebooks sem servidor (Visualização Pública)
7 de fevereiro de 2025
Agora você pode configurar um tamanho de memória mais alto para suas cargas de trabalho de notebook de computação sem servidor. Essa configuração pode ser aplicada a cargas de trabalho de notebook interativas e agendadas.
O uso sem servidor com memória alta tem uma taxa de emissão de DBU maior do que a memória padrão.
Para obter mais informações, consulte Configurar memória alta para suas cargas de trabalho sem servidor.
Versão 16.1
5 de fevereiro de 2025
Essa versão de computação sem servidor corresponde aproximadamente ao Databricks Runtime 16.0 e Databricks Runtime 16.1.
Novos recursos
Suporte do Avro para esquema recursivo: agora você pode usar a opção
recursiveFieldMaxDepth
com a funçãofrom_avro
e a fonte de dadosavro
. Essa opção define a profundidade máxima para a recursão de esquema na fonte de dados Avro. Confira Ler e gravar dados de streaming do Avro.Suporte expandido para o Registro de Esquema do Confluent para Avro: sem servidor agora dá suporte à referência de esquema do Avro com o Registro de Esquema Confluent. Consulte Autenticar em um Registro de Esquema Confluent externo.
Forçar o reagrupamento em tabelas com clustering líquido: É possível usar a sintaxe
OPTIMIZE FULL
para forçar o reagrupamento de todos os registros em uma tabela com clustering líquido habilitado. Consulte Forçar reagrupamento para todos os registros.As APIs Delta para Python agora dão suporte a 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 clusteradas 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 Habilitar o clustering líquido.Suporte para a cláusula OPTIMIZE FULL: Computação sem servidor agora dá suporte à cláusula OPTIMIZE FULL. Essa 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: execução sem servidor agora dá suporte a uma especificação de opções para referências de tabela e nomes de tabela de uma instrução
INSERT
e pode ser utilizada para controlar o comportamento das 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 retornará
NULL
se a entrada for 0 ou sua entrada se não for 0. - dayname(expr) retorna o acrônimo inglês de três letras para o dia da semana referente à data determinada.
- uniform(expr1, expr2 [,seed]) retorna um valor aleatório com valores independentes e distribuídos de forma idêntica dentro do intervalo de números especificado.
- randstr(length) retorna uma cadeia de caracteres aleatória de
length
caracteres alfanuméricos.
Habilitar a evolução automática do esquema ao mesclar dados em uma tabela Delta: o suporte foi adicionado para o membro
withSchemaEvolution()
da classeDeltaMergeBuilder
. UsewithSchemaEvolution()
para habilitar a evolução automática do esquema durante operaçõesMERGE
. Por exemplo,mergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}
.Suporte para ordenações no Apache Spark está em Visualização Pública: Agora você pode atribuir ordenações que não diferenciam maiúsculas de minúsculas e não diferenciam o acesso a colunas e expressões
STRING
. Essas ordenações são usadas em comparações de cadeia de caracteres, classificação, operações de agrupamento e muitas funções de cadeia de caracteres. Consulte Ordenação.Suporte para ordenações no Delta Lake está em Visualização Pública: agora você pode definir ordenações para colunas ao criar ou alterar uma tabela Delta. Consulte Suporte de ordenação para Delta Lake.
LITE
modo de vácuo está em Visualização Pública: Agora você pode usarVACUUM table_name LITE
para executar uma operação de vácuo de peso mais leve que aproveita os metadados no log de transações Delta. Consulte modo completo versus modo leve e VACUUM.Suporte para parametrização da cláusula
USE CATALOG with IDENTIFIER
: agora é suportada a IDENTIFIERcláusula 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 dá suporte à 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 tem suporte 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 de metastore do Hive. Consulte REPAIR TABLE.Integridade de dados aprimorada para lotes compactados do Apache Arrow: Para proteger ainda mais contra corrupção de dados, cada lote compactado do Apache Arrow
LZ4
agora inclui as somas de verificação de conteúdoLZ4
e de bloco. Consulte a descrição do formato de quadro LZ4.Driver JDBC do Oracle interno: computação sem servidor agora tem o Driver JDBC Oracle integrado. Se você usar um JAR de driver JDBC carregado pelo cliente por meio de
DriverManager
, será necessário reescrever scripts para usar explicitamente o JAR personalizado. Caso contrário, o driver interno será usado. Este driver só suporta a Federação Lakehouse. Para outros casos de uso, você precisa 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 está disponível agora. Todas as exceções agora são encaminhadas para o usuário. A exceção
DELTA_MISSING_DELTA_TABLE
agora está reservada para quando não for possível ler os arquivos subjacentes como uma tabela Delta.
Alterações de comportamento
Alteração significativa: o RStudio hospedado está descontinuado: Com esta versão, o Servidor RStudio hospedado pelo Databricks está descontinuado e indisponível em qualquer workspace do Azure Databricks em execução na computação sem servidor. Para saber mais e ver uma lista de alternativas ao RStudio, consulte Substituição do RStudio Server hospedado.
(Mudança decisiva): remoção do suporte para alteração de 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 habilitado:byte
,short
eint
long
paradecimal
.byte
,short
eint
paradouble
.
Análise correta de padrões regex com negação no agrupamento de caracteres aninhados: esta versão inclui uma alteração para dar 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]]
.Aprimorar a detecção de correspondência duplicada no Delta Lake
MERGE
:MERGE
agora considera as condições especificadas na cláusulaWHEN MATCHED
. Confira Executar upsert em uma tabela do Delta Lake usando mesclagem.A funcionalidade
addArtifact()
agora é consistente entre tipos de computação: Quando você usaaddArtifact(archive = True)
para adicionar uma dependência à computação sem servidor, o arquivo é extraído automaticamente. Essa alteração torna o comportamentoaddArtifact(archive = True)
consistente com a computação de usuário único, que já dá suporte ao desempacotamento automático de arquivos.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 incluem um tipo de dadosVARIANT
:DISTINCT
INTERSECT
EXCEPT
UNION
DISTRIBUTE BY
Além disso, você não pode usar essas funções DataFrame:
df.dropDuplicates()
df.repartition()
Essas operações executam comparações e comparações que usam o tipo de dados
VARIANT
produzem resultados indefinidos e não têm suporte 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
VARIANT
para tipos de dados que não sãoVARIANT
. - 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
.
Confira Consultar os dados de variantes.
Correções de bug
- Deslocamentos de fuso horário agora incluem segundos quando serializados para CSV, JSON e XML: Timestamps com deslocamentos de fuso horário que incluem segundos (comuns para timestamps anteriores a 1900) estavam omitindo os segundos quando serializados para CSV, JSON e XML. O formatador de timestamp padrão foi corrigido e agora retorna os valores de deslocamento corretos para esses timestamps.
Outras alterações
- Códigos de erro renomeados para a fonte de streaming estruturado do
cloudFiles
: os seguintes códigos de erro foram renomeados:_LEGACY_ERROR_TEMP_DBR_0143
foi renomeado paraCF_INCORRECT_STREAM_USAGE
._LEGACY_ERROR_TEMP_DBR_0260
foi renomeado paraCF_INCORRECT_BATCH_USAGE
.
Versão 15.4
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 Iceberg UniForm usando ALTER TABLE: agora você pode habilitar o Iceberg UniForm em tabelas existentes sem regravar arquivos de dados. Consulte Habilitar as leituras do Iceberg em 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 emFOREIGN 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 oCOPY 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 usandoALTER 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
!
paraNOT
lógica booliana externa: o Databricks não tolerará mais o uso de!
como sinônimo deNOT
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 colunaNOT NULL
,NOT IN
eNOT BETWEEN
.O operador de prefixo booliano
!
(por exemplo,!is_mgr
ou!(true AND false)
) não é afetado por essa alteração.Não permite 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
ouDEFAULT
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
ouConversionInvalidInputError
. 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, umaALTER TABLE ADD CONSTRAINT
instrução que inclui umaCHECK
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 umINTERNAL_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 produzx'0ABC'
em vez dex'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 wrapperstr(..)
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.
- 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