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.

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 (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ção from_avro e a fonte de dados avro. 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() for NULL.
    • 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 classe DeltaMergeBuilder. Use withSchemaEvolution() para habilitar a evolução automática do esquema durante operações MERGE. 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 usar VACUUM 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âmetro SYNC METADATA com o comando REPAIR 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údo LZ4 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 e long 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, shorte intlong para decimal.
    • byte, short e int para double.
  • 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áusula WHEN MATCHED. Confira Executar upsert em uma tabela do Delta Lake usando mesclagem.

  • A funcionalidade addArtifact() agora é consistente entre tipos de computação: Quando você usa addArtifact(archive = True) para adicionar uma dependência à computação sem servidor, o arquivo é extraído automaticamente. Essa alteração torna o comportamento addArtifact(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 dados VARIANT:

    • 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 tipo VARIANT 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ão VARIANT.

    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 para CF_INCORRECT_STREAM_USAGE.
    • _LEGACY_ERROR_TEMP_DBR_0260 foi renomeado para CF_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 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 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 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.