Limitações da computação sem servidor

Este artigo explica as limitações atuais da computação sem servidor para notebooks e trabalhos. Começa com uma visão geral das considerações mais importantes e, em seguida, fornece uma lista de referência abrangente de limitações.

Visão geral das limitações

Antes de criar novas cargas de trabalho ou migrar cargas de trabalho para computação sem servidor, primeiro considere as seguintes limitações:

  • Python e SQL são as únicas linguagens suportadas.
  • Apenas as APIs do Spark connect são suportadas. As APIs RDD do Spark não são suportadas.
  • As bibliotecas JAR não são suportadas. Para obter soluções alternativas, consulte Práticas recomendadas para computação sem servidor.
  • A computação sem servidor tem acesso irrestrito para todos os usuários do espaço de trabalho.
  • Não há suporte para tags de bloco de anotações.
  • Para streaming, apenas a lógica de lote incremental pode ser usada. Não há suporte para intervalos de gatilho padrão ou baseados em tempo. Consulte Limitações de streaming.

Lista de referências de limitações

As seções a seguir listam as limitações atuais da computação sem servidor.

A computação sem servidor é baseada na arquitetura de computação compartilhada. As limitações mais relevantes herdadas da computação compartilhada estão listadas abaixo, juntamente com limitações adicionais específicas sem servidor. Para obter uma lista completa das limitações de computação compartilhada, consulte Limitações do modo de acesso de computação para o Unity Catalog.

Limitações gerais

  • Scala e R não são suportados.

  • ANSI SQL é o padrão ao escrever SQL. Desative o modo ANSI definindo spark.sql.ansi.enabled como false.

  • As APIs RDD do Spark não são suportadas.

  • Spark Context (sc), spark.sparkContexte sqlContext não são suportados.

  • Os Serviços de Contêiner Databricks não são suportados.

  • O terminal web não é suportado.

  • Nenhuma consulta pode ser executada por mais de 48 horas.

  • Você deve usar o Unity Catalog 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 funções definidas pelo utilizador (UDFs) não podem aceder à Internet. Devido a isso, o comando CREATE FUNCTION (External) não é suportado. O Databricks recomenda o uso de CREATE FUNCTION (SQL e Python) para criar UDFs.

  • As linhas individuais não devem exceder o tamanho máximo de 128MB.

  • 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. Consulte Perfil de consulta.

  • O acesso entre espaços de trabalho só é permitido se os espaços de trabalho estiverem na mesma região e o espaço de trabalho de destino não tiver uma ACL IP ou um PrivateLink front-end configurado.

  • Não há suporte para exibições temporárias globais. O Databricks recomenda o uso de exibições temporárias de sessão ou a criação de tabelas onde a passagem de dados entre sessões é necessária.

Limitações de streaming

Limitações do aprendizado de máquina

Limitações dos blocos de notas

  • Os notebooks têm acesso a 8 GB de memória que não pode ser configurada.
  • As bibliotecas com escopo de bloco de anotações não são armazenadas em cache nas sessões de desenvolvimento.
  • Não há suporte para o compartilhamento de tabelas e exibições TEMP ao compartilhar um bloco de anotações entre usuários.
  • O Preenchimento Automático e o Explorador de Variáveis para quadros de dados em blocos de notas não são suportados.

Limitações do fluxo de trabalho

  • O tamanho do driver para computação sem servidor para trabalhos está atualmente fixo e não pode ser alterado.
  • Os logs de tarefas não são isolados por tarefa executada. Os logs conterão a saída de várias tarefas.
  • As bibliotecas de tarefas não são suportadas para tarefas do bloco de notas. Em vez disso, use bibliotecas com escopo de bloco de anotações. Veja Bibliotecas em Python com âmbito de bloco de notas.

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 bloco de anotações.
  • Configurações de acesso a dados em nível de computação, incluindo perfis de instância. Como consequência, o acesso a tabelas e arquivos via HMS em caminhos de nuvem, ou com montagens DBFS que não têm credenciais incorporadas, não funcionará.
  • Conjuntos de instâncias
  • Computar logs de eventos
  • A maioria das configurações de computação do Apache Spark. Para obter uma lista de configurações suportadas, consulte Parâmetros de configuração do Spark suportados.
  • Variáveis de ambiente. Em vez disso, o Databricks recomenda o uso de widgets para criar parâmetros de trabalho e tarefa.

Limitações de cache

As APIs de dataframe e cache SQL não são suportadas na computação sem servidor. O uso de qualquer uma dessas APIs ou comandos SQL resultará em uma exceção.

Limitações do Hive

  • As tabelas Hive SerDe não são suportadas. Além disso, o comando LOAD DATA correspondente que carrega dados em uma tabela Hive SerDe não é suportado. 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 Hive (por exemplo${env:var}, , ${configName}${system:var}, e spark.sql.variable) ou referências de variáveis de configuração usando a ${var} sintaxe. 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âmetro ('?', ou ':var') para declarar, modificar e referenciar o estado da sessão. Você também pode usar a cláusula IDENTIFIER para parametrizar nomes de objetos em muitos casos.