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 Databricks lança periodicamente atualizações para computação sem servidor, atualizando automaticamente o tempo de execução de computação sem servidor para suportar aprimoramentos e atualizações para a plataforma. Todos os usuários recebem as mesmas atualizações, implementadas em um curto período de tempo.

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 em FOREIGN 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 o COPY 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 usando ALTER TABLE table_name DROP FEATURE checkConstraintso . 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 ! para NOT lógica booleana externa: Databricks não tolerará mais o uso de ! como sinônimo para NOT 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 propriedade NOT IN de coluna ou campo e NOT 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 ou DEFAULT 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 ou ConversionInvalidInputError. 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, uma ALTER TABLE ADD CONSTRAINT instrução que inclui uma CHECK restrição fazendo referência a um nome de coluna inválido retorna o UNRESOLVED_COLUMN. WITH_SUGGESTION classe de erro. Anteriormente, um INTERNAL_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 2024.30

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 de comportamento

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 2024.15

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 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 é EXCEPTION)
  • 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 produz x'0ABC' em vez de x'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 Databricks agora preencherá os dados com espaços para o comprimento declarado para garantir a semântica correta.
  • Casts de BIGINT/DECIMAL para TIMESTAMP lançam uma exceção para valores transbordados: 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 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.

Ambiente do sistema

A computação sem servidor inclui o seguinte ambiente de sistema:

  • Sistema Operacional: Ubuntu 22.04.3 LTS
  • Píton: 3.10.12
  • Lago Delta: 3.1.0

Bibliotecas Python instaladas

As seguintes bibliotecas Python são instaladas na computação sem servidor por padrão. Dependências adicionais podem ser instaladas usando o painel lateral Ambiente. Consulte Instalar dependências do bloco de anotações.

Biblioteca Versão Biblioteca Versão Biblioteca Versão
Anyio 3.5.0 Argônio2-CFFI 21.3.0 argon2-cffi-ligações 21.2.0
AstTokens 2.0.5 Astunparse 1.6.3 ATRs 22.1.0
Backcall 0.2.0 sopa bonita4 4.11.1 preto 22.6.0
lixívia 4.1.0 pisca-pisca 1.4 boto3 1.24.28
botocore 1.27.96 Ferramentas de cache 5.3.2 certifi 2022.12.7
cffi 1.15.1 chardet 4.0.0 Normalizador de Charset 2.0.4
clicar 8.0.4 Comm 0.1.2 contorno 1.0.5
criptografia 39.0.1 cycler 0.11.0 Quisto 0.29.32
Databricks-Connect 14.3.1 Databricks-SDK 0.20.0 dbus-python 1.2.18
depuração 1.6.7 decorador 5.1.1 DeUsedXML 0.7.1
Distlib 0.3.8 docstring-para-markdown 0,11 pontos de entrada 0.4
execução 0.8.3 facetas-visão geral 1.1.1 fastjsonschema 2.19.1
filelock 3.13.1 Fonttools 4.25.0 Google-Auth 2.28.1
googleapis-comuns-protos 1.62.0 Grpcio 1.62.0 grpcio-status 1.62.0
httplib2 0.20.2 idna 3.4 importlib-metadados 4.6.4
ipyflow-núcleo 0.0.198 Ipykernel 6.25.0 ipython 8.14.0
ipython-genutils 0.2.0 ipywidgets 7.7.2 Jedi 0.18.1
Jeepney 0.7.1 Jinja2 3.1.2 jmespath 0.10.0
Joblib 1.2.0 jsonschema 4.17.3 jupyter-cliente 7.3.4
jupyter-servidor 1.23.4 jupyter_core 5.2.0 Jupyterlab-Pygments 0.1.2
jupyterlab-widgets 1.0.0 porta-chaves 23.5.0 Kiwisolver 1.4.4
launchpadlib 1.10.16 lazr.restfulclient 0.14.4 lazr.uri 1.0.6
lxml 4.9.1 MarkupSafe 2.1.1 matplotlib 3.7.0
matplotlib-em linha 0.1.6 Mccabe 0.7.0 Mistune 0.8.4
mais-itertools 8.10.0 mypy-extensões 0.4.3 NBMédico 0.5.2
nbclient 0.5.13 nbconvert 6.5.4 nbformat 5.7.0
Ninho-Asyncio 1.5.6 nodeenv 1.8.0 bloco de notas 6.5.2
notebook_shim 0.2.2 numpy 1.23.5 OAuthlib 3.2.0
embalagem 23.2 pandas 1.5.3 PandocFilters 1.5.0
Parso 0.8.3 PathSpec 0.10.3 patsy 0.5.3
pexpect 4.8.0 pickleshare 0.7.5 Travesseiro 9.4.0
pip 22.3.1 plataformadirs 2.5.2 enredo 5.9.0
pluggy 1.0.0 Prometheus-cliente 0.14.1 prompt-toolkit 3.0.36
protobuf 4.25.3 PSUTIL 5.9.0 psycopg2 2.9.3
ptyprocess 0.7.0 puro-eval 0.2.2 py4j 0.10.9.7
pyarrow 8.0.0 pyarrow-hotfix 0.5 pyasn1 0.5.1
pyasn1-módulos 0.3.0 Pyccolo 0.0.52 pycparser 2.21
Pidântico 1.10.6 Pyflakes 3.1.0 Pygments 2.11.2
PyGObject 3.42.1 PyJWT 2.3.0 Pyodbc 4.0.32
pyparsing 3.0.9 Pyright 1.1.294 pirsistent 0.18.0
python-dateutil 2.8.2 python-lsp-jsonrpc 1.1.1 python-lsp-servidor 1.8.0
pytoolconfig 1.2.5 pytz 2022.7 Pyzmq 23.2.0
pedidos 2.28.1 corda 1.7.0 RSA 4,9
s3transferir 0.6.2 scikit-learn 1.1.1 scipy 1.10.0
seaborn 0.12.2 Armazenamento Secreto 3.3.1 Enviar2Lixo 1.8.0
setuptools 65.6.3 seis 1.16.0 sniffio 1.2.0
Soupsieve 2.3.2.post1 ssh-import-id 5.11 dados de pilha 0.2.0
statsmodels 0.13.5 tenacidade 8.1.0 terminado 0.17.1
ThreadPoolCtl 2.2.0 tinycss2 1.2.1 tokenize-rt 4.2.1
Tomli 2.0.1 tornado 6.1 traços 5.7.1
typing_extensions 4.4.0 Ujson 5.4.0 Upgrades autônomos 0.1
urllib3 1.26.14 virtualenv 20.16.7 wadllib 1.3.6
largura de wc 0.2.5 WebEncodings 0.5.1 Websocket-cliente 0.58.0
whatthepatch 1.0.2 roda 0.38.4 widgetsnbextension 3.6.1
Yapf 0.33.0 Zipp 1.0.0