Compartilhar via


Notas sobre a versão da computação sem servidor

Importante

Esse recurso está em uma versão prévia. Para obter informações sobre qualificação e habilitação, confira Habilitar a visualização pública 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 fluxos de trabalho.

O Databricks libera periodicamente atualizações para a computação sem servidor. Todos os usuários recebem as mesmas atualizações, distribuídas por um curto período de tempo. Confira Como as versões são distribuídas?.

Próximas alterações de comportamento

Esta seção destacará as alterações de comportamento que virão na próxima versão da computação sem servidor. Quando as alterações forem enviadas para a produção, elas serão adicionadas às notas sobre a versão.

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.

Computação sem servidor versão 2024.15

15 de abril de 2024

A versão de computação sem servidor 2024.15 foi lançada em produção. Esta é a versão inicial da computação sem servidor que corresponde aproximadamente ao Databricks Runtime 14.3 com algumas modificações que removem o suporte para algumas características não relacionadas à computação sem servidor e herdadas.

Esta versão inclui as seguintes atualizações:

Parâmetros de configuração do Spark com suporte

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 padrão é EXCEPTION)
  • spark.sql.session.timeZone (O valor padrão é Etc/UTC)
  • spark.sql.shuffle.partitions (O valor padrão é auto)

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.

API de cache e comandos SQL sem suporte

O uso das APIs de cache de Dataframe e SQL não possui suporte. Usar qualquer uma dessas APIs ou comandos SQL resultará em uma exceção.

APIs sem suporte:

Comandos SQL sem suporte:

Exibições temporárias globais sem suporte

Não há suporte para a criação de exibições temporárias globais. Usar um desses comandos resultará em uma exceção:

Em vez disso, o Databricks recomenda usar exibições temporárias de sessão ou criar tabelas nas quais a passagem de dados entre sessões é necessária.

CREATE FUNCTION (Externa) sem suporte

Não há suporte para o comando CREATE FUNCTION (Externa). Usar esse comando resultará em uma exceção.

Em vez disso, o Databricks recomenda usar CREATE FUNCTION (SQL e Python) para criar UDFs.

Não há suporte para tabelas Hive SerDe

Não há suporte para tabelas Hive SerDe. Além disso, não há suporte para o comando LOAD DATA correspondente que carrega dados em uma tabela Hive SerDe. Usar o comando resultará em uma exceção.

O suporte para fontes de dados é limitado a AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT e XML.

Não há suporte para variáveis do Hive

Não há suporte para variáveis do Hive (por exemplo ${env:var}, ${configName}, ${system:var} e spark.sql.variable) ou referências de variável de configuração usando a sintaxe ${var}. O uso de variáveis do Hive resultará em uma exceção.

Em vez disso, use DECLARE VARIABLE, SET VARIABLE e referências de variáveis de sessão SQL, e marcadores de parâmetros (“?” ou “:var”) para declarar, modificar e referenciar o estado de sessão. Você também pode usar a cláusula IDENTIFIER para parametrizar nomes de objeto em muitos casos.

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.

Alterações de comportamento

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 Databricks agora preencherá os dados com espaços no comprimento declarado para garantir a semântica correta.
  • As conversões de BIGINT/DECIMAL para TIMESTAMP geram uma exceção para valores excedidos: o Databricks permite a conversão de BIGINT e DECIMAL para TIMESTAMP tratando o valor como o número de segundos a partir da época do Unix. Anteriormente, o Databricks retornava os valores excedidos, 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 do 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.

Ambiente do sistema

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

  • Sistema operacional: Ubuntu 22.04.3 LTS
  • Python: 3.10.12
  • Delta Lake: 3.1.0

Bibliotecas Python instaladas

Biblioteca Versão Biblioteca Versão Biblioteca Versão
anyio 3.5.0 argon2-cffi 21.3.0 argon2-cffi-bindings 21.2.0
asttokens 2.0.5 astunparse 1.6.3 attrs 22.1.0
backcall 0.2.0 beautifulsoup4 4.11.1 black 22.6.0
bleach 4.1.0 blinker 1.4 boto3 1.24.28
botocore 1.27.96 cachetools 5.3.2 certifi 2022.12.7
cffi 1.15.1 chardet 4.0.0 charset-normalizer 2.0.4
clique 8.0.4 comm 0.1.2 contourpy 1.0.5
criptografia 39.0.1 cycler 0.11.0 Cython 0.29.32
databricks-connect 14.3.1 databricks-sdk 0.20.0 dbus-python 1.2.18
debugpy 1.6.7 decorator 5.1.1 defusedxml 0.7.1
distlib 0.3.8 docstring-to-markdown 0,11 entrypoints 0,4
em execução 0.8.3 facets-overview 1.1.1 fastjsonschema 2.19.1
filelock 3.13.1 fonttools 4.25.0 google-auth 2.28.1
googleapis-common-protos 1.62.0 grpcio 1.62.0 grpcio-status 1.62.0
httplib2 0.20.2 idna 3.4 importlib-metadata 4.6.4
ipyflow-core 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-client 7.3.4
jupyter-server 1.23.4 jupyter_core 5.2.0 jupyterlab-pygments 0.1.2
jupyterlab-widgets 1.0.0 keyring 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-inline 0.1.6 mccabe 0.7.0 mistune 0.8.4
more-itertools 8.10.0 mypy-extensions 0.4.3 nbclassic 0.5.2
nbclient 0.5.13 nbconvert 6.5.4 nbformat 5.7.0
nest-asyncio 1.5.6 nodeenv 1.8.0 notebook 6.5.2
notebook_shim 0.2.2 numpy 1.23.5 oauthlib 3.2.0
empacotando 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 Pillow 9.4.0
pip 22.3.1 platformdirs 2.5.2 plotly 5.9.0
pluggy 1.0.0 prometheus-client 0.14.1 prompt-toolkit 3.0.36
protobuf 4.25.3 psutil 5.9.0 psycopg2 2.9.3
ptyprocess 0.7.0 pure-eval 0.2.2 py4j 0.10.9.7
pyarrow 8.0.0 pyarrow-hotfix 0.5 pyasn1 0.5.1
pyasn1-modules 0.3.0 pyccolo 0.0.52 pycparser 2.21
pydantic 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 pyrsistent 0.18.0
python-dateutil 2.8.2 python-lsp-jsonrpc 1.1.1 python-lsp-server 1.8.0
pytoolconfig 1.2.5 pytz 2022.7 pyzmq 23.2.0
solicitações 2.28.1 rope 1.7.0 rsa 4.9
s3transfer 0.6.2 scikit-learn 1.1.1 scipy 1.10.0
seaborn 0.12.2 SecretStorage 3.3.1 Send2Trash 1.8.0
setuptools 65.6.3 six 1.16.0 sniffio 1.2.0
soupsieve 2.3.2.post1 ssh-import-id 5.11 stack-data 0.2.0
statsmodels 0.13.5 tenacity 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 traitlets 5.7.1
typing_extensions 4.4.0 ujson 5.4.0 unattended-upgrades 0,1
urllib3 1.26.14 virtualenv 20.16.7 wadllib 1.3.6
wcwidth 0.2.5 webencodings 0.5.1 websocket-client 0.58.0
whatthepatch 1.0.2 wheel 0.38.4 widgetsnbextension 3.6.1
yapf 0.33.0 Zipp 1.0.0

Limitações

A computação sem servidor baseia-se na arquitetura de computação compartilhada. As limitações mais importantes herdadas da computação compartilhada são listadas abaixo, juntamente com limitações adicionais específicas sem servidor. Para obter uma lista completa das limitações da computação compartilhada, consulte Limitações do modo de acesso da computação para o Catálogo do Unity.

Limitações gerais

  • Não há suporte para Scala e R.
  • Somente o SQL ANSI tem suporte ao escrever SQL.
  • Não há suporte para as APIs RDD do Spark.
  • Contexto do Spark (sc), spark.sparkContext e sqlContext não possuem suporte.
  • Você não pode acessar o DBFS.
  • Não há suporte para os Serviços de Contêiner do Databricks.
  • Não há suporte para o terminal Web.
  • Nenhuma consulta pode ser executada por mais de 48 horas.
  • Você deve usar o Catálogo do Unity para se conectar a fontes de dados externas. Use locais externos para acessar o armazenamento em nuvem.
  • O suporte para fontes de dados é limitado a AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT e XML.
  • As UDFs (funções definidas pelo usuário) não podem acessar a Internet.
  • As linhas individuais não devem exceder o tamanho máximo de 128 MB.
  • A interface do usuário do Spark não está disponível. Em vez disso, use o perfil de consulta para exibir informações sobre suas consultas do Spark. Confira Perfil de consulta.
  • Os clientes Python que usam pontos de extremidade do Databricks podem encontrar erros de verificação SSL, como "CERTIFICATE_VERIFY_FAILED". Para contornar esses erros, configure o cliente para confiar no arquivo de AC localizado em /etc/ssl/certs/ca-certificates.crt. Por exemplo, execute o seguinte comando no início de um notebook ou trabalho sem servidor: import os; os.environ['SSL_CERT_FILE'] = '/etc/ssl/certs/ca-certificates.crt'
  • Não há suporte para solicitações de API entre workspaces.

Limitações de streaming

Limitações de aprendizado de máquina

Limitações de notebooks

  • Os notebooks têm acesso à memória de 8 GB que não pode ser configurada.
  • Bibliotecas com escopo de notebook não são armazenadas em cache em sessões de desenvolvimento.
  • Não há suporte para o compartilhamento de tabelas temporárias e exibições ao compartilhar um notebook entre os usuários.
  • Não há suporte para Preenchimento Automático e Gerenciador de Variáveis para dataframes em notebooks.

Limitações de fluxo de trabalho

  • O tamanho do driver para a computação sem servidor para fluxos de trabalho está fixo no momento e não pode ser alterado.
  • Os logs de tarefas não são isolados por execução de tarefa. Os logs conterão a saída de várias tarefas.
  • Não há suporte para bibliotecas de tarefas para tarefas de notebook. Em vez disso, use bibliotecas com escopo de notebook. Confira as bibliotecas Python no escopo do notebook.

Limitações específicas da computação

Não há suporte para os seguintes recursos específicos de computação:

  • Políticas de computação
  • Scripts de inicialização com escopo de computação
  • Bibliotecas com escopo de computação, incluindo fontes de dados personalizadas e extensões do Spark. Em vez disso, use bibliotecas com escopo de notebook.
  • Configurações de acesso a dados em nível de computação, incluindo perfis de instância. Como consequência, acessar tabelas e arquivos via HMS em caminhos na nuvem, ou com montagens do DBFS que não possuem credenciais incorporadas, não funcionará.
  • Pools da instância
  • logs de eventos de computação
  • Configurações de computação do Apache Spark e variáveis de ambiente

Perguntas frequentes

Como as versões são distribuídas?

A computação sem servidor é um produto sem versão, o que significa que o Databricks atualiza automaticamente o runtime da 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.

Como fazer para determinar qual versão sem servidor estou executando?

As cargas de trabalho sem servidor sempre são executadas na versão de runtime mais recente. Confira as Notas sobre a versão da versão mais recente.

Como fazer para estimar os custos da versão sem servidor?

O Databricks recomenda executar e fazer benchmark de uma carga de trabalho representativa ou específica e, em seguida, analisar a tabela do sistema de cobrança. Confira Referência da tabela do sistema de uso faturável.

Como fazer para analisar o uso de DBU para uma carga de trabalho específica?

Para ver o custo de uma carga de trabalho específica, consulte a tabela do sistema system.billing.usage. Consulte Monitorar o custo da computação sem servidor para consultas de exemplo e baixe nosso painel de observabilidade de custos.

Não habilitei a computação sem servidor para fluxos de trabalho e notebooks, por que vejo registros de cobrança para fluxos de trabalho sem servidor?

O Monitoramento do Lakehouse e a otimização preditiva também são cobrados no SKU de fluxos de trabalho sem servidor.

A versão prévia de computação sem servidor não precisa ser habilitada para usar esses dois recursos.

A computação sem servidor dá suporte a repositórios privados?

Repositórios podem ser privados ou exigir autenticação. Por motivos de segurança, uma URL pré-assinada é necessária ao acessar repositórios autenticados.

Como fazer para instalar bibliotecas para minhas tarefas de trabalho?

O Databricks recomenda o uso de ambientes para instalar e gerenciar bibliotecas para seus fluxos de trabalho. Confira Configurar ambientes e dependências para tarefas que não são de notebook.

Posso me conectar a fontes de dados personalizadas?

Não, só há suporte para as fontes que usam a Lakehouse Federation. Confira Fontes de dados com suporte.

Posso configurar a computação sem servidor para fluxos de trabalho com DABs?

Sim, os DABs podem ser usados para configurar trabalhos que usam computação sem servidor. Confira Configurar um trabalho que usa computação sem servidor.