Limitações de computação sem servidor
Este artigo explica as limitações atuais da computação sem servidor para notebooks e trabalhos. Ele 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 de limitações
Antes de criar novas cargas de trabalho ou migrar cargas de trabalho para a computação sem servidor, primeiro considere as seguintes limitações:
- Python e SQL são os únicos idiomas com suporte.
- Há suporte apenas para APIs de conexão do Spark. Não há suporte para as APIs RDD do Spark.
- Não há suporte para bibliotecas JAR. Para obter soluções alternativas, consulte Melhores práticas para computação sem servidor.
- A computação sem servidor tem acesso irrestrito para todos os usuários do workspace.
- Não há suporte para marcas de bloco de anotações.
- Para streaming, somente a lógica incremental do lote pode ser usada. Não há suporte para intervalos de gatilho baseados em tempo ou padrão. Consulte Limitações de streaming.
Lista de referência de limitações
As seções a seguir listam as limitações atuais da computação sem servidor.
A computação sem servidor baseia-se na arquitetura de computação compartilhada. As limitações mais relevantes 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.
O SQL ANSI é o padrão ao escrever SQL. Opt-out do modo ANSI definindo
spark.sql.ansi.enabled
comofalse
.Não há suporte para as APIs RDD do Spark.
Contexto do Spark (sc),
spark.sparkContext
esqlContext
não possuem suporte.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. Por isso, o comando CREATE FUNCTION (Externo) não é suportado. O Databricks recomenda usar CREATE FUNCTION (SQL e Python) para criar UDFs.
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.
O acesso entre workspaces só será permitido se os workspaces estiverem na mesma região e o workspace 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 usar exibições temporárias de sessão ou criar tabelas em que a passagem de dados entre sessões é necessária.
Limitações de streaming
- Não há suporte para intervalos de gatilho baseados em tempo ou padrão. Apenas
Trigger.AvailableNow
tem suporte. Confira Configurar intervalos de gatilho do Streaming Estruturado - Todas as limitações para streaming no modo de acesso compartilhado também se aplicam. Confira Limitações de streaming e requisitos para o modo de acesso compartilhado do Catálogo do Unity.
Limitações de aprendizado de máquina
- Não há suporte para o Databricks Runtime para Machine Learning e Apache Spark MLlib.
- Não há suporte para GPUs.
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 trabalhos 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
- A maioria das configurações de computação do Apache Spark. Para obter uma lista de configurações com suporte, consulte Parâmetros de configuração do Spark com suporte.
- 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
Não há suporte para APIs de Dataframe e cache SQL na computação sem servidor. Usar qualquer uma dessas APIs ou comandos SQL resultará em uma exceção.
- df.cache(), df.persist()
- df.unpersist()
- spark.catalog.cacheTable()
- spark.catalog.uncacheTable()
- spark.catalog.clearCache()
- CACHE TABLE
- UNCACHE TABLE
- REFRESH TABLE
- CLEAR CACHE
Limitações do Hive
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 (por exemplo
${env:var}
,${configName}
,${system:var}
espark.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.